
LLMにコードを書かせるときは、プロンプトをできるだけ詳しく書くべき。多くのエンジニアがそう感じています。関数名、引数の型、入力範囲、エッジケース。書けば書くほど、モデルは要件を正確に汲み取ってくれるはず、と。
ところがその常識が通じない場面が、実験の積み重ねから見えてきました。プロンプトの一部を削ったり、用語を曖昧にしたりすると、なぜか正解率が上がる問題が一定数あるのです。
変数名を一般的なものに変えただけ。制約条件を1行消しただけ。それだけで、誤答していたコードが正答に変わります。同じモデル、同じテスト、変わったのはプロンプトの表現だけ、という具合です。
なぜ手がかりを減らすと正解率が上がるのでしょうか。