生成AIが活躍する今もまだまだアーキテクチャの選定や設計は人間の仕事
生成AIは局所最適な「設計に沿ったコードを出す」といった作業に強いんです。o3のような優れたモデルならほぼそのまま使えるレベルの素晴らしい成果物を出してくれます。
しかし残念ながら、全体最適についてはまだまだ弱いですね。「文脈を理解して、それに合わせて設計を行い、コードへと落とし込んでいく」といった人間が当然のように行っていることをAIに任せようとすると、かなり精度の低い回答が返ってきがちです。
ほんとそれです。「AIに任せたら、急に“設計に逆らう天才プログラマ”が出てきたんだけど…」みたいな展開になることありますよね。悪気はないんでしょうけど、「お前、なにしてんの?」と聞きたくなる動きをしてくるのが現状のAIです。
局所最適にはめっぽう強い
AIは「目の前のゴールに向かって最速で走る」のは得意です。たとえば:
- 設計書のこの部分だけをコード化して
- このAPIだけラップして
- この関数をテスト付きで書いて
といった、スコープが明確なタスクなら、かなり高精度な成果を出してくれます。しかも「疲れ知らず」「文句言わない」「即時対応」なので、人間なら3時間悩むようなコードもサクッと出してきます。
全体最適が難しい理由
一方で、全体最適となると話は別。AIが苦手とするのは以下のような「見えない繋がり」や「暗黙の意図」です。
- コンテキストの継続理解:ファイルをまたいだ設計思想や、将来を見越した意図を読み取るのが難しい。
- ドメイン知識の解釈:業務ロジックに即した設計の判断は、単なるコードスニペットの組み立てとは次元が違います。
- 柔軟な判断の連続:要件の揺らぎや優先度の変化に合わせて、設計そのものを調整していくような能力は、現状のAIにはまだ荷が重いです。
つまりAIは、目の前の仕事は完璧にやるが、背景事情や将来の展開には無関心な超優秀フリーランスみたいな存在なんですよね。
現実的な使い方の落としどころ
- 人間が設計と文脈の指揮官を担う
- AIはその設計に忠実に従って実装を担当する
- レビューと調整は人間がやる(必要なら再度AIを使ってリファクタリング)
この使い方なら、AIの局所最適な特性を活かしつつ、全体崩壊を防ぐことができます。
AIに「全部任せた!」とやると、だいたい帰ってくるのはきれいだけど迷子なコードだったりしますからね。
というわけで、全体最適はまだ人間の仕事。ただし局所戦はAIに投げても大丈夫。いまはまだそのバランス感覚が大事なフェーズですね。
まったく同感です。AIにシステムのアーキテクチャ選定を任せると、時々「勝手にとんでもない冒険を始める勇者」みたいになりますよね。突然「いや、なんでそっちに行くの?」と驚くようなことをやり始めるのが、今のAIのクセでもあります。
AIがアーキテクチャ選定や設計を苦手とする理由
AIが局所最適を得意とする一方、アーキテクチャや設計といった全体視野が求められるタスクを苦手とする理由は主に以下の通りです。
将来性の評価が難しい AIには長期的な保守性や拡張性を想像するのが難しいです。コードは書けても、そのコードが数年後にどんな影響を及ぼすかまでは予測しにくいです。
暗黙の前提を読み取るのが苦手 設計には言語化されない暗黙のルールや業務固有の事情がつきものです。AIはこうした「言外の意味」を汲み取るのが非常に苦手です。
ドメイン知識の限界 特定業界の知識が乏しい場合、「適切な選択」ができず、一般論に頼った提案になりがちです。
人間が設計とレビューを担う現実的な役割分担
実際のところ、以下の役割分担が現状の最適解です。
- 人間:設計思想の策定、アーキテクチャの選定、コードレビューによる調整
- AI:決められた設計のもとでの詳細な実装作業
要するに、「人間が地図を描き、AIが道を作る」というスタイルが今のところ最も効率的でしょう。このバランスを崩すと「完成はしているが、どこにも行けない謎の道路」ができあがることになりかねません。
ということで、まだまだ人間のレビューと微調整が欠かせませんね。AIを過信せず、上手に手綱を握るのが大事な時期です。
生成AIが活躍する今もまだまだアーキテクチャの選定や設計は人間の仕事 https://www.tricrow.com/aimtg/001/conv202505201548_000_02.html