TL;DR

LLM開発エージェントが仕様書をどれだけ守るかを、実行結果で判定するベンチマークを提案。Oracle→PostgreSQL移行タスクで検証したところ、仕様書は「実行可能なコードが生成される確率」を72.0%→97.3%に向上させた一方、実装者間の合意率は83.1%→83.8%とほぼ変わらず、データ正解率も42件中19件のままでした。つまり、仕様書は「動くコード」には効くが、「実装者間の一致」や「データの正しさ」には効かないという重要な示唆が得られています。

解説

AMI HAPPY

ねえ智也くん、このブログのタイトル見て!「仕様書がLLMの出力を本当に決めるのか?」って。なんか面白そうじゃない?

TOMOYA NEUTRAL

ああ、それね。要するに、LLMにコード生成させる時に仕様書を渡すと、ちゃんと守ってくれるのかを実行結果で確かめた研究だよ。

AMI SURPRISED

へー、実行結果で判定するんだ。でも、なんでわざわざ実行する必要があるの?

TOMOYA NEUTRAL

だって、LLMが生成したコードが仕様書と合ってるかどうか、見た目だけじゃわからないからね。実際に動かしてみて、正しい結果が出るかどうかを見るのが一番確実なんだ。

AMI NEUTRAL

なるほどね。で、どんなタスクで試したの?

TOMOYA NEUTRAL

OracleからPostgreSQLへの移行タスクだよ。データベースの移行って、仕様書が重要そうな典型的な例だからね。

AMI CURIOUS

それで、結果はどうだったの?

TOMOYA HAPPY

仕様書があると、実行可能なコードが生成される確率が72%から97.3%に上がったんだ。つまり、仕様書は「動くコード」を作るのにはかなり効果があるってこと。

AMI HAPPY

おー、すごい!じゃあ仕様書はやっぱり大事なんだね。

TOMOYA SURPRISED

でも、ここからが面白いところで、実装者間の合意率は83.1%から83.8%にしか上がらなかったんだ。つまり、仕様書があっても、人によって解釈が違って、結果がばらつくってこと。

AMI SURPRISED

え、そうなの?じゃあ、仕様書があってもみんな同じコードを作るわけじゃないんだね。

TOMOYA NEUTRAL

そう。さらに、データの正解率も42件中19件のままで、全然変わらなかったんだ。つまり、仕様書は「動くコード」には効くけど、「実装者間の一致」や「データの正しさ」には効かないってこと。

AMI CURIOUS

へー、それは意外だね。仕様書って万能じゃないんだね。でも、なんでデータの正しさには効かないの?

TOMOYA NEUTRAL

たぶん、仕様書がデータの詳細まで細かく指定してないからだと思う。移行タスクだと、データの変換ルールとかが曖昧だと、正しい結果にならないんだよ。

AMI CURIOUS

なるほどね。じゃあ、この研究の限界って何かあるの?

TOMOYA NEUTRAL

まず、タスクがOracleからPostgreSQLへの移行だけだから、他のタスクでも同じことが言えるかはわからない。あと、使ったLLMが特定のものだけだから、他のモデルでも結果が同じかは不明だね。

AMI HAPPY

なるほどね。でも、仕様書が「動くコード」には効くってのは、結構実用的な発見だと思うよ。

TOMOYA NEUTRAL

そうだね。ただ、仕様書を書くのも大変だから、そのコストと効果を天秤にかける必要があるね。

AMI HAPPY

うーん、でも仕様書を書くのが大変なら、AIに仕様書を書かせればいいんじゃない?

TOMOYA NEUTRAL

それだと、また仕様書の品質が問題になるから、結局同じことになるよ。

AMI HAPPY

あはは、確かに。じゃあ、仕様書を書くAIとコードを書くAIが喧嘩しないように、仲裁AIも必要だね!

TOMOYA NEUTRAL

それ、結局人間がやるべきことだと思うけどね。