コードを書けるAIは増えましたが、そのコードが実際にどう動くかを正確に理解できているかは別問題です。カナダの研究チームが発表した新しいベンチマーク「SWE-Flux」は、この「実行時の挙動を推論する力」だけを切り出して測る仕組みです。5つの大規模言語モデルを評価したところ、最も成績の良かったモデルでも正答率はわずか37%にとどまりました。

背景と文脈
これまでのリポジトリ単位のコード理解ベンチマークは、静的なコード読解(ソースコードを実際に動かさず、書かれた内容だけから意味を把握する力)を測るものが中心でした。しかも採点方法として、別のLLM(Large Language Model、大規模言語モデル)に判定させる手法が使われることも多く、評価そのものの信頼性に疑問符がついていました。一方で、実行に基づく推論を測るベンチマークは、単一の関数やコード断片を対象にしたものにとどまり、実際の開発現場にある大規模なリポジトリ全体を扱うものはほとんどありませんでした。
今回発表された「Can LLMs Reason About Runtime Behavior? A Repository-Level Dynamic Benchmark」という論文は、この隙間を埋めるものです。著者らはHamed Taherkhani氏らのチームで、実在する12個のPythonリポジトリから480件の実行に基づく設問を作成しました。
技術/ビジネス面

SWE-Fluxの大きな特徴は、正解データの作り方にあります。人手による注釈やLLMによる採点に頼らず、実際にテストを計測用のコードで包んで実行し、その結果から正解を自動的に取得しています。これにより、採点者側の主観やAIの判定ミスが入り込む余地を減らしています。設問は制御フロー、ループ処理、プログラムの状態、データフロー、例外処理、そしてプログラム不変条件(処理の前後で常に成り立つべき性質)といった項目を幅広くカバーしており、1つのテストだけで答える問題と複数のテストにまたがる問題の両方が含まれます。
評価の結果、モデルはコード内で完結する局所的な処理、たとえば不変条件のチェックや、1つの関数の中だけで完結する制御フロー、例外処理、単純なループなどは比較的得意でした。一方で、データが関数をまたいでどう流れるか(データフロー)、複数の関数を横断する実行の流れ、処理の途中経過を正確に追う状態推論、複数テストの結果を集約する処理などは、いずれのモデルも大きく苦戦しています。最高性能のモデルでも正答率37%という数字は、コード生成の得意さとは裏腹に、実行の中身を正確に追う力がまだ発展途上であることを示しています。
研究チームはさらに、入力を少し変えることで新しいベンチマーク問題を自動生成できる仕組みも用意しました。対象となった問題の約9割で有効な派生問題を作ることに成功しており、しかもその派生問題は元の問題よりもさらに難しくなる傾向が確認されています。単発の評価だけでなく、繰り返し使える評価基盤としての実用性も意識した設計です。
これからどうなるか
この結果は、AIコーディングアシスタントを実務で使う開発者にとって具体的な示唆を持ちます。関数単体のコード生成やバグ修正の提案は得意でも、複数ファイルにまたがる複雑なデータフローや、実行時に初めて表面化する不具合の原因特定をAIに丸投げするのはまだ危険だということです。CI(継続的インテグレーション)パイプラインにAIエージェントを組み込む際も、実行結果の検証は人間かテストコードでしっかり担保する設計が引き続き必要になりそうです。
今後は、このベンチマークをファインチューニング(既存のモデルを特定タスク向けに追加学習させる手法)の目標指標として使う研究や、実行推論に特化した学習データの構築が進む可能性があります。コード生成の精度競争から、実行理解の精度競争へと、評価軸が一歩進む契機になるかもしれません。
まとめ
新ベンチマークSWE-Fluxは、AIがコードの実行時の挙動をどこまで正確に推論できるかを測る仕組みです。最高性能のモデルでも正答率は37%にとどまり、特に複数の関数をまたぐデータフローの理解に課題が残ることが分かりました。コード生成の見た目の巧さと、実行を正確に理解する力は別物だと改めて示す結果です。
参考リンク
アイキャッチ画像: Photo by Jantine Doornbos on Unsplash

