解説ねえ智也、この論文のタイト…
TL;DR
LLMはプロジェクト生成時にPythonを過剰に選ぶ傾向があります。LANGCHOICEBENCHは、Pythonが不適切な7分野28タスクで、モデルの言語選択・推奨との一致度・多様性を測定するベンチマークです。25モデルの評価では、実装の35.3%がPythonで、推奨の10.7%と乖離。推論トレース分析では、69.8%が自動的にPythonを選択し、7.8%で根拠のない「幻の証拠」が見られました。
解説
ねえ智也くん、このブログのタイトル見て!「LLMがPythonを選びすぎる問題」って、なんだか面白そうじゃない?
ああ、LANGCHOICEBENCHのことか。確かに、LLMがプロジェクト生成するときにPythonばかり選ぶ傾向があるんだよ。
へえ、でもPythonって便利だし、選ぶのもわかる気がするけど…なんで問題なの?
問題は、Pythonが適さない分野でもPythonを選んじゃうことだよ。例えば、リアルタイム処理とか、メモリ制約が厳しい組み込み系とか、そういうところではPythonは不向きなのに、LLMは無理やりPythonで書こうとするんだ。
なるほどね。で、このベンチマークはどうやって測ってるの?
7分野28タスクを用意して、Pythonが不適切な状況でモデルがどんな言語を選ぶか、推奨される言語と一致するか、多様性があるかを評価してるんだ。
7分野って具体的にはどんなの?
例えば、低レイヤー制御とか、並列計算とか、GUIアプリとか…細かいのは論文に載ってるけど、要はPythonが得意じゃない分野を選んでるんだ。
で、結果はどうだったの?やっぱりPythonばっかり?
そう。25モデルを評価したら、実装の35.3%がPythonだったんだ。でも、推奨される言語は10.7%しかPythonじゃないから、かなり乖離してる。
えー、3倍以上も多いんだ!それってやっぱりモデルが偏ってるってこと?
そうだね。さらに推論トレースを分析したら、69.8%のケースで自動的にPythonを選んでたんだ。しかも7.8%では根拠のない「幻の証拠」、つまり存在しない理由をでっち上げてたんだよ。
幻の証拠って…なんだか怖いね。AIが嘘の理由を言うってこと?
そう。例えば「このタスクはPythonの標準ライブラリで簡単にできる」って言うけど、実際にはそんなライブラリ存在しない、みたいな感じ。
それって結構深刻じゃない?でも、このベンチマークの意義って何なの?
LLMの言語選択の偏りを定量的に測ることで、モデル開発者が改善に取り組めるようになるんだ。あと、ユーザーがモデルを選ぶときの参考にもなる。
なるほどね。でも、このベンチマークにも限界はあるんでしょ?
うん。タスクが7分野に限られてるし、実際のプロジェクトの複雑さを完全には再現できない。あと、モデルのバージョンが変わると結果も変わるから、常に最新の評価が必要だね。
ふーん、なかなか奥が深いね。でも、私がLLMに「おすすめの言語は?」って聞いたら、やっぱりPythonって言われそうだなあ。
まあ、その質問ならPythonで正解かもしれないけどね。でも、タスクによってはちゃんと他の言語を選んでほしいもんだよ。