検索
インタビュー

「AIコーディング」がたった5年で急進化したワケ NTT「tsuzumi 2」開発者が分析Interop Tokyo 2026(2/2 ページ)

 コーディングに長けた大規模言語モデル(LLM)が登場したのは2021年ごろだ。それから5年で、競技プログラミングの問題を解けるレベルにまで成長した。なぜAIはコーディングがこれほど得意になったのか──「Interop Tokyo 2026」(幕張メッセ)で、LLM「tsuzumi」のコーディング能力向上を担当するNTT人間情報研究所の風戸広史さんが解説した。

Share
Tweet
LINE
Hatena
前のページへ |       

“問題集”が無限に作れるように

 次いで登場したインストラクションモデルは、学習に当たって数万〜数十万件規模の「問題集」を解かせる必要があった。ベースモデルのように人手で集めるのは難しくなり、問題作り自体をLLMに任せる手法が主流になった。

 この段階ではコード特有の性質が活きた。自然言語と違い、正しさをテストで機械的に検証できるため、量産が容易だったのだ。

 例えば「SelfCodeAlign」と呼ばれる手法では、まずソースコードの断片から「関数定義」「引数」といった概念をLLMに抽出させる。その概念を基に新しい問題を作らせ、回答とテストケースの両方を生成させた後、実行環境で動かし、テストを通過したものだけを問題集に採用する。

 結果、約24万6000件のコード片から、検証済みの問題が約5万件できた。風戸さんは「ソースコードの切れっ端を入力するだけ」で問題集が作れると説明する。

photo
SelfCodeAlignの処理フロー。コード片から概念を抽出し、問題・回答・テストを生成して検証する

ベンチマークも「タスクの解決能力」を見るように

 そして推論モデルは、単にコードを書くだけでなく、仕様やテスト結果を読み解きながらバグを直す作業もこなせるようになった。

 これに伴い、評価の主戦場もタスクの解決能力に移っている。例えばベンチマーク「SWE-Bench」では、GitHub上で実際に行われたバグ修正の課題(Issue)を使ってLLMに修正パッチを作らせ、人間が用意したテストで検証する。約2000問あるが、問題文やテストの品質にばらつきがあるため、OpenAIらが全問を人手で精査し、500問に絞った「SWE-Bench Verified」が広く使われているという。

 一方で、学習データを作る側には逆転の発想が生まれた。論文「SWE-Synth」では、リポジトリ上のコードの一部を隠してLLMに書き直させるアプローチが提案された。この方法を使えば、元のコードとは違う、いかにも人間がやりそうなミスを含んだコードが出てくる。視点を変えれば、このバグ入りコードとテストのログが問題で、変更を元に戻すパッチが正解──という学習データを量産できるわけだ。

photoSWE-Synthはコードの一部をLLMに書き直させてバグを埋め込み、修正パッチとのペアを学習データにする

 他にも、バグを埋め込む役と直す役をLLMに演じさせ、自己対戦の強化学習で双方の能力を鍛える研究も登場している。囲碁や将棋のAIのように、人間が思いつかない能力に達する可能性が論じられているという。

 講演の最後、風戸さんはクラウド型のAIに次いで注目される、手元のマシンで動くAIの可能性にも触れた。「tsuzumiも小型モデルを持っているので、エージェンティックAIでも使えるように開発して提供していきたい」という。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る