AIソフトウェア開発 – データが示すもの
LLMをソフトウェア開発に使うことについて、最近の査読付き研究、業界レポート、実験を基にデータ駆動で考察。信頼できる長期的なエージェント型コーディングはSFに近く、実効コンテキスト上限は宣伝よりはるかに小さく、業界データはコード量増加と成果悪化を示す。AIコーディングは既存の強みと弱みを増幅する。
著者は現在、LLMのソフトウェア開発利用に関する最近の資料を収集している。査読付き研究もあれば、査読を経ていない業界研究もある。統計物理学の論文や、コンテキストサイズの影響に関するブログ記事も含まれる。これらの多くは、著者自身の実験やチームでの観察によって裏付けられている。データが増えるにつれ、全体像はより鮮明になっている。
多忙な経営者のための要点を先に述べると、LLMを使って真に自律的で信頼できる長期的なエージェント型ソフトウェア開発を実現することは、ほぼSFの領域であり、現実的には不可能に近い。LLMの実効的な最大コンテキストウィンドウは、宣伝される数値よりも数桁小さい。それを超えるとモデルの出力は実用にならないほど不正確になる。ベンダーが「圧縮」と呼ぶ仕組みは、コンテキストの一部をモデルが要約するものであり、この要約プロセスは有名なほど損失が大きく信頼性が低い。LLMはコンテキスト内の情報が新しいのか古いのかを区別できず、訓練中に学習した「支配的な事前確率」がユーザー提供の情報を上回ることもある。モデルにとってはすべてがトークン、重み、確率でしかなく、正誤や新旧に関係なく、最も高い確率が勝つ。コンテキストが大きくなると「注意力の希釈」が起こり、コンテキスト内の確率がモデル内の確率と競争できなくなり、問題が悪化する。
リポジトリレベルのMarkdownファイルは、多くの特定タスクでノイズを増やしシグナルを減らすため、モデルのパフォーマンスをむしろ低下させることが多い。モデル生成のMarkdownファイルは特に問題が大きい。つまり、チームのコーディング標準やアーキテクチャ概要を毎タスクに含めるのは逆効果になり得る。LLMは否定表現を苦手としており、「〜するな」と指示することが「〜しろ」と指示するのと同じ効果を持つ場合がある。一部のガードレールがコイントス並みの信頼性しかない理由はここにある。また、LLMの推論は、望む動作を言葉で説明するよりも、例(デモンストレーション)を与えた方が正確になる。彼らはパターンマッチャーであり、「こうしろ」という指示や「こうするな」という禁止よりも、「こういう感じ」の例を与えるのが効果的だ。
大規模な業界研究には明確な傾向がある。アウトプットは増えている(コード量、コミット数、差分サイズが増加)が、成果はその傾向を反映していない。平均的なチームは、むしろソフトウェアの納品に時間がかかり、品質も低下している。ソフトウェア開発が生産工程ではないことを示す証拠である。一部の研究では、少数のチームだけが成果で適度な改善を得ており、それは既存のソフトウェア開発能力と相関している。AIコーディングは開発の強みと弱みを増幅するものであり、修正するものではない。心理的・認知的要因の研究も増えており、AI出力への自信と超常現象への信念との間に有意な相関があるという研究や、LLMへの依存度が高いほど学習・認知・批判的思考に悪影響があるという複数の研究、開発者の意欲低下や燃え尽き症候群の報告にある程度の真実があるという新たな研究がある。
深層ニューラルネットワーク(LLMを含む)は、モデルの規模にかかわらず、長距離依存のパターンを学習するのが苦手である。彼らは常に「霧の中での運転」を強いられ、局所的で短距離の確率が長距離の確率を押しのける。そのため「全体像」を捉えるのが苦手なのは、確率的に見て当然である。LLMの信頼性を一桁向上させる(例えば、失敗率30%から3%へ)ために必要なエネルギーと計算量は、現在のフロンティアモデルの10^20倍に達する。近いうちに劇的に信頼性の高いモデルが登場することは期待できない。今後の信頼性向上は、入力に何を含めるかを決める「コンテキストエンジニアリング」と、出力をどう扱うかを決める「品質ゲート」に依存する。AI企業が現在注力しているのもまさにそこだ。モデルはより強力になるかもしれないが、信頼性が大幅に向上するわけではない。与えられた道具で最善を尽くすしかない。
「モデルの性能は向上している」と主張する人は、公表されているベンチマークを指摘するだろう。しかし、ベンチマークの性能は慎重に解釈すべきだという研究もある。多くの一般的なベンチマークは、アルゴリズム的に測定しやすいものを測っており、現実の問題の複雑さや予測不可能さを反映していない。さらに、「公表されているベンチマーク」という言葉自体が示唆するように、モデルがテストに向けて訓練されている可能性がある。データが公開されていれば、訓練データに含まれ、結果が過大評価される恐れがある。
著者は、この技術を利用するチームへの示唆として、アジャイルソフトウェア開発の技術的実践がAI支援・エージェント型ソフトウェアエンジニアリングと密接に関連する理由について、10月6日18:45(BST)に開催するイベントで、誇張のないエビデンスベースの見解を共有すると述べている。登録リンクは元記事に掲載されている。