TL;DR

RepoReasonerは、LLMが複数ファイルにまたがるコードの実行結果を予測する「Output Prediction」と、実行時に呼ばれるファイルの連鎖を特定する「Call Chain Prediction」の2タスクで、リポジトリレベルの推論能力を評価するベンチマークです。7モデルを評価した結果、最良モデルでもOutput Predictionの正解率は69.1%にとどまり、長いコンテキストが逆効果になるケースや、記憶に頼った推論の限界が明らかになりました。

解説

AMI HAPPY

ねえ智也くん、今日のブログの「RepoReasoner」って何?なんか難しそうなタイトルだけど…

TOMOYA NEUTRAL

ああ、リポジトリ全体のコード推論を評価するベンチマークだよ。LLMが複数ファイルにまたがるコードを理解できるかどうかを測るんだ。

AMI SURPRISED

へえ、普通のコード生成ベンチマークとは違うの?

TOMOYA NEUTRAL

そう。既存のは単一ファイルや関数単位が多いけど、現実の開発では複数ファイルを跨いで処理を追う必要がある。そこでRepoReasonerは2つのタスクを用意したんだ。

AMI HAPPY

2つ?どんなタスク?

TOMOYA NEUTRAL

一つは「Output Prediction」で、コード全体を実行した結果を予測する。もう一つは「Call Chain Prediction」で、実行時にどのファイルがどう呼ばれるかの連鎖を特定する。

AMI HAPPY

なるほど!それで、どんなモデルを試したの?

TOMOYA NEUTRAL

GPT-4やClaude、Llama系など7モデル。結果は最良でもOutput Predictionの正解率が69.1%だった。

AMI SURPRISED

え、意外と低いんだね。もっとできると思ってた。

TOMOYA NEUTRAL

ああ。特に長いコンテキストを与えると逆に精度が下がるケースがあった。あと、モデルが記憶に頼って推論する限界も見えた。

AMI HAPPY

記憶に頼るって、どういうこと?

TOMOYA NEUTRAL

例えば、よくあるパターンを覚えていて、実際のコードの流れを無視して答える感じ。リポジトリ全体をちゃんと読めてないんだ。

AMI HAPPY

じゃあ、このベンチマークの意義は、そういう弱点を可視化したってこと?

TOMOYA NEUTRAL

そう。リポジトリレベルの推論能力を評価する枠組みを提供したのが大きい。今後のモデル改善に役立つはず。

AMI HAPPY

でも、まだ限界もあるんでしょ?

TOMOYA NEUTRAL

うん。評価に使ったリポジトリの規模が限られてるし、タスクも2つだけ。もっと多様なシナリオが必要だと思う。

AMI HAPPY

ふーん…じゃあ、このベンチマークで満点取れたら、AIはもう人間のプログラマーを超えるのかな?

TOMOYA NEUTRAL

いや、まだまだ。コードの意図や設計思想を理解するのは別問題だよ。

AMI HAPPY

そっか。でも、もしAIがRepoReasonerで100%取ったら、智也くんの仕事がなくなるかもね?

TOMOYA NEUTRAL

…その前に、まずはお前がコード書けるようになれよ。