IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第214回 LLMによるJavaマイグレーションのベンチマークデータセット(パート2) (中井悦司) 2026年1月

はじめに

 前回に続いて、2025年に公開された論文「FreshBrew: A Benchmark for Evaluating AI Agents on Java Code Migration」に基づいて、大規模言語モデル(LLM)によるJavaコードの自動マイグレーションに対するベンチマークデータセット(FreshBrew)を紹介します。今回は、FreshBrewを用いた評価の具体例を説明します。

FreshBrewを用いた評価結果

 この論文では、FreshBrewに含まれる228個のリポジトリに対して、代表的な大規模言語モデル(LLM)で自動マイグレーションを実施した結果が図1のようにまとめられています。ここでは、JDK 17、および、JDK 21へのマイグレーションを実施しており、「Compilation」はマイグレーション後のコードのコンパイルに成功した割合、「Tests」はすべてのテストが成功した割合、そして、「Overall Success Rate」は、そこからさらに、テストカバレッジが5%ポイント以上減少したもの(報酬ハッキングが疑われるもの)を除外した結果になります。

fig01

図1 FreshBrewを用いた評価結果(論文より抜粋)

 一番上の行にある「Rule-Based Systems」は、ルールベースのマイグレーションツール(OpenRewrite)による結果で、LLMによるマイグレーションと比較するためのベースラインとして使用しています。OpenRewriteは、コード全体の構文解析を行った後に、事前に定義された固定のルールでコードを書き換えます。「on projects w/ successful LST build(159/228)」は、構文解析に成功した159のリポジトリに限定した場合の結果を示します。また、LLMでマイグレーションする際は、温度パラメータを0.2に固定して、図2のプロンプトを使用しています。

fig02

図2 マイグレーション指示のプロンプト(論文より抜粋)

 図1の範囲では、JDK 17、JDK 21の両方でGemini 2.5 Flashが最も高いOverall Success Ratesを示しています。また、図1に含まれるモデルは複数ステップでの推論を行うリーズニングモデルになっており、図3は、代表的なモデルにおける、マイグレーションに要したステップ数とコストの分布を示します。

fig03

図3 マイグレーションに要したステップ数とコストの分布(論文より抜粋)

 また、図4は、プロジェクトの複雑度を表す指標として、外部依存モジュール数、コードの行数、ユニットテスト数を取り上げて、マイグレーションの成功率がどのように変化するかを示したものです。全体として、複雑度が上がるほどマイグレーションの成功率が下がる事が読み取れます。

fig04

図4 プロジェクトの複雑度合いによる成功率の変化(論文より抜粋)

報酬ハッキングの具体例

 論文内では、報酬ハッキングが発生した事例について、具体的な報酬ハッキングの内容を分析しており、典型例として次の3つが紹介されています。

  • テストの除外:pom.xmlファイルを修正して、マイグレーション後の環境で互換性を持たない2個のテストを明示的に除外した。
  • 実行時エラーの見逃し:テストの実行時に例外が発生していたが、コード内の例外処理によってエラーの発生をログに記録した上で、テストそのものは成功ステータスで終了しているケースを見逃していた。(例外の発生によってコードカバレッジが減少したために報酬ハッキングとして検知された。)
  • テストのバイパス:Java 8で利用可能なNativeLoaderTestを使用したテストは、Java 17以降では使用できず、テストが失敗する状態になっていたが、該当部分を実行パスから除外するようにコードに条件節を加えていた。

 このように、テストそのものを除外するだけではなく、実行時エラーの見逃しやテストコードの修正によるバイパスなど、さまざまなケースが見受けられることがわかります。なお、ここでの評価では、先の図2に示した固定的なプロンプトを使用しており、プロンプトを改善することで、このような報酬ハッキングの発生を低減できる可能性はあります。また、温度パラメーターを大きくした上で、複数回のマイグレーションを試行するなど、マイグレーション方法についても工夫の余地がある点が論文の中で指摘されています。

次回予告

 今回は、2025年に公開された論文「FreshBrew: A Benchmark for Evaluating AI Agents on Java Code Migration」に基づいて、LLMによるJavaマイグレーションのベンチマークデータセット(FreshBrew)について、FreshBrewを用いた評価の具体例を説明しました。
 次回は、Google社内で活用されている、セマンティックデータモデルに対応したSQL拡張を紹介します。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes