「AIコーディング」がたった5年で急進化したワケ NTT「tsuzumi 2」開発者が分析:Interop Tokyo 2026(2/2 ページ)
コーディングに長けた大規模言語モデル(LLM)が登場したのは2021年ごろだ。それから5年で、競技プログラミングの問題を解けるレベルにまで成長した。なぜAIはコーディングがこれほど得意になったのか──「Interop Tokyo 2026」(幕張メッセ)で、LLM「tsuzumi」のコーディング能力向上を担当するNTT人間情報研究所の風戸広史さんが解説した。
“問題集”が無限に作れるように
次いで登場したインストラクションモデルは、学習に当たって数万〜数十万件規模の「問題集」を解かせる必要があった。ベースモデルのように人手で集めるのは難しくなり、問題作り自体をLLMに任せる手法が主流になった。
この段階ではコード特有の性質が活きた。自然言語と違い、正しさをテストで機械的に検証できるため、量産が容易だったのだ。
例えば「SelfCodeAlign」と呼ばれる手法では、まずソースコードの断片から「関数定義」「引数」といった概念をLLMに抽出させる。その概念を基に新しい問題を作らせ、回答とテストケースの両方を生成させた後、実行環境で動かし、テストを通過したものだけを問題集に採用する。
結果、約24万6000件のコード片から、検証済みの問題が約5万件できた。風戸さんは「ソースコードの切れっ端を入力するだけ」で問題集が作れると説明する。
ベンチマークも「タスクの解決能力」を見るように
そして推論モデルは、単にコードを書くだけでなく、仕様やテスト結果を読み解きながらバグを直す作業もこなせるようになった。
これに伴い、評価の主戦場もタスクの解決能力に移っている。例えばベンチマーク「SWE-Bench」では、GitHub上で実際に行われたバグ修正の課題(Issue)を使ってLLMに修正パッチを作らせ、人間が用意したテストで検証する。約2000問あるが、問題文やテストの品質にばらつきがあるため、OpenAIらが全問を人手で精査し、500問に絞った「SWE-Bench Verified」が広く使われているという。
一方で、学習データを作る側には逆転の発想が生まれた。論文「SWE-Synth」では、リポジトリ上のコードの一部を隠してLLMに書き直させるアプローチが提案された。この方法を使えば、元のコードとは違う、いかにも人間がやりそうなミスを含んだコードが出てくる。視点を変えれば、このバグ入りコードとテストのログが問題で、変更を元に戻すパッチが正解──という学習データを量産できるわけだ。
他にも、バグを埋め込む役と直す役をLLMに演じさせ、自己対戦の強化学習で双方の能力を鍛える研究も登場している。囲碁や将棋のAIのように、人間が思いつかない能力に達する可能性が論じられているという。
講演の最後、風戸さんはクラウド型のAIに次いで注目される、手元のマシンで動くAIの可能性にも触れた。「tsuzumiも小型モデルを持っているので、エージェンティックAIでも使えるように開発して提供していきたい」という。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
NTT、大規模言語モデル「tsuzumi」開発 24年3月に商用サービス提供へ
NTTは、独自の大規模言語モデル「tsuzumi」を開発したと発表した。2024年3月に商用サービスとして提供を始める。
米Microsoftら、“コーディング専用”大規模言語モデル「WizardCoder」開発 文章から高品質なコード出力
米Microsoftや香港浸会大学に所属する研究者らは、米Hugging Faceが5月に発表したCode LLM(コーディング専用大規模言語モデル)「StarCoder」を軽量で高精度に強化する手法を提案した研究報告を発表した。
Google、オープンな生成AIモデル「Gemma」公開 商用利用OK、Geminiと同じ技術の軽量LLM
米Googleは、大規模言語モデル(LLM)「Gemma」を公開した。同社が開発するLLM「Gemini」に使ったのと同じ技術を活用して開発した軽量版LLMで、同社は「オープンなAIモデル」として位置付けている。商用利用も可能としている。
GPT-4以上? 自分で何度も“推敲”し完成度を上げる言語生成AI「Self-Refine」
米カーネギーメロン大学などの研究者らは、大規模言語モデル(LLM)が、より高品質な出力を生成するために、反復的な改良と自己評価を利用することを可能にする新しいフレームワークを提案した研究報告を発表した。
東大発AIベンチャー、最大級の日本語LLM公開 metaの「Llama 2」を日本語化
AIスタートアップのELYZAは29日、日本語LLM(大規模言語モデル)「ELYZA-japanese-Llama-2-7b」を公開した。

