記述変換の新たな挑戦
AIを使ったプログラム記述の変換は、これまでC++やJava、Pythonといった主要な言語に集中していました。そのため、あまり使われない言語同士での変換、いわゆる「多対多」の状況では、適切なデータが不足しがちでした。結果として、見た目はそれらしいけれど、実際に動かない変換結果が多く生まれていました。
この課題に対し、私達は実行結果に基づく強化学習という手法で取り組みました。これは、変換された内容が正しく動くかどうかを重視するやり方です。多くの言語間で、実際に使える仕組みを生み出すことを目指しています。
実行結果に基づく学習の仕組み
私達の手順は、まずPythonで書かれた検証済みの元となる内容を増やし、複数言語に対応した実行可能な記述集を作るところから始まります。この記述集を使い、基盤となるLLM(大規模言語モデル)が様々な言語間の変換候補を生み出します。
次に、これらの変換候補を、その実行結果によって評価します。正しく動くものは良い、動かないものは悪い、という形で優先順位をつけます。この優先順位を使って、言語間の変換品質を評価する報酬モデルを学習させます。最後に、この報酬モデルからの信号を使い、GRPOという手法でLLMの性能を最適化しました。これにより、600もの異なる言語間の組み合わせで学習を進めています。
評価基準と成果
今回の多対多変換の能力を測るため、私達はHumanEval-X++という新しい評価基準を導入しました。これは、既存のHumanEval-Xを拡張し、より幅広い言語空間での実行に基づいた評価ができるものです。
Qwen-3.5の4Bモデルと9Bモデルを使ってこの手法を評価しました。その結果、学習前のモデルと比べて、一貫して性能が向上することが分かりました。特に4Bモデルでは、HumanEval-X++の全ての言語で平均13%の改善を達成しています。中程度の利用言語では、21%もの大きな向上が見られました。この研究は、データ作り、学習、そして性能評価の一連の流れにおいて、信頼できる方法を示しています。様々な言語間の記述変換の品質をさらに高める道を開くものです。
私の見方
プログラム記述の多様な言語変換は、AI開発において非常に重要な領域です。特に、人気のない言語や特定の分野での利用は、これまで手薄でした。今回の実行結果に基づく強化学習は、この課題に対する有効な解決策を示しています。
単に文法的に正しいだけでなく、実際に動く内容を生成できる点が重要です。これは、AIがより実用的なツールとして機能するための大きな一歩と言えます。今後、様々な開発現場でこの技術が活用されることを期待します。
PR
文賢 →
動かない記述はゴミです。AIが作るものは特にそうです。実行検証で品質を担保するのは当然。私はこの仕組みを自社開発にすぐ取り入れます。最速で一次情報を取りに行きます。