BACE: LLM-based Code Generation through Bayesian Anchored Co-Evolution of Code and Test Populations

本論文は、コードとテストの生成を相互に更新されるベイズ推定に基づく共進化プロセスとして再定義し、公的サンプルを基準として誤ったテストによるドリフトを防ぐことで、LLM によるコード生成の精度を飛躍的に向上させるフレームワーク「BACE」を提案しています。

原著者: Kaushitha Silva, Srinath Perera

公開日 2026-04-15
📖 1 分で読めます☕ さくっと読める

これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

Each language version is independently generated for its own context, not a direct translation.

🍳 料理の例え:「味見するシェフ」と「レシピ」

AI に料理(コード)を作らせようとしたとき、従来のやり方では以下のような問題がありました。

  1. AI が料理を作る(コード生成)。
  2. AI が「味見テスト」を作る(テスト生成)。
  3. AI がそのテストで料理をチェックする

【従来の問題点:悪循環】
もし、AI が作った「味見テスト」が間違っていたらどうなるでしょう?

  • 失敗例 1:料理がまずいのに、「美味しい!」と誤って判定してしまう(テストが甘すぎる)。
  • 失敗例 2:美味しい料理なのに、「まずい!」と誤って判定してしまう(テストが厳しすぎる)。

AI は「テストの結果」を絶対的な正解だと思って信じてしまうため、まずい料理を「正解」として進化させたり、美味しい料理を「失敗」として捨ててしまったりするという、最悪の悪循環に陥ってしまいました。


🌟 BACE の解決策:「3 つの柱」で支える賢い進化

BACE は、この問題を**「3 つの柱」**を使って解決します。

1. 「大勢で試す」こと(集団進化)

一人のシェフ(AI)に任せるのではなく、「料理の候補」も「味見テスト」も、それぞれ大勢(集団)で用意します

  • もし、あるテストが間違っていて「まずい料理」を「美味しい」と評価しても、他のテストや他の料理の候補が「いや、これはまずいよ」と言ってくれば、その間違いはすぐにバレます。
  • 大勢がいるおかげで、間違った判断に全体が引きずり込まれるのを防ぎます。

2. 「ノイズのあるセンサー」として扱う(ベイズ更新)

BACE は、テストの結果を「100% 正しい神の言葉」だとは考えません。**「少し耳が遠い、ノイズの多いセンサー」**だと考えます。

  • 「美味しい」と言われたら、「あ、たぶん美味しいかもしれないけど、そのテスト自体が間違っている可能性もあるな」と確率(信念)で調整します。
  • 「まずい」と言われたら、「もしかしたらそのテストが壊れているだけかも」と考え、すぐに諦めません。
  • これを数学的に計算し、「どの料理が本当に美味しいか」「どのテストが信頼できるか」を、お互いに教え合いながら更新していくのです。

3. 「絶対の基準」を置く(アンカー)

ここが最も重要なポイントです。
AI が作ったテストは信用できないけれど、問題文に書かれている「1〜3 個の簡単な例(入力と出力)は、人間が作った**「絶対の正解**(アンカー)です。

  • BACE は、すべての進化をこの「絶対の基準」に**「アンカー**(錨)します。
  • もし、どんなに美味しい料理(コード)が作れても、この「絶対の基準」に合わなければ、即座に「それは間違いだ」と判断します。
  • これにより、AI が勝手に間違った方向に進化してしまう(ドリフトする)のを防ぎます。

🎮 ゲームで例えると?

このシステムは、**「AI 同士が対戦するゲーム」**のようなものです。

  • プレイヤー A(コード集団):新しい攻撃パターン(コード)を開発します。
  • プレイヤー B(テスト集団):新しい防御壁(テスト)を作ります。
  • ルール
    • 攻撃が防御を破れば「勝ち」、破れなければ「負け」。
    • しかし、「ゲームの最初のチュートリアル(アンカー)だけは、絶対にクリアできなければなりません。
    • もし「防御壁」がバグっていて、敵を簡単に倒せてしまったとしても、チュートリアルをクリアしていないなら「それは不正解」として扱われます。

このようにして、「コード」と「テスト」がお互いを高め合いながら、間違いを排除し、最終的に完璧なプログラム(料理)に到達します。


🏆 結果:どれくらいすごいのか?

この「BACE」という方法を使って、最新の AI モデル(GPT-5 やオープンソースの巨大モデルなど)にテストさせました。

  • 結果:これまでの最高峰の技術(AgentCoder や CodeSIM など)をすべて上回る成績を収めました。
  • 特に、「難しい問題」「小さなモデル(70 億パラメータなど)でも、劇的に性能が向上しました。

💡 まとめ

この論文が伝えているのは、「AI が作ったテストは信用できないから捨てよう」ではなく、「AI が作ったテストはノイズだらけだが、正しい方法(ベイズ推定とアンカー)という新しい視点です。

まるで、「耳が遠い大勢の味見係(テスト)のように、AI の能力を最大限に引き出した画期的な仕組みなのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →