あなたの評価も不安定だ:再現できない合格率を信じるのはやめよう
ほとんどの人は、AIエージェントが非決定論的であることを知っています。同じプロンプトを送っても、出力は異なります。
私たちはこれを受け入れました。そして、これらのエージェントを採点するために、LLMをジャッジとして使い始めました。
しかし、私たちは大きな間違いを犯しました。ジャッジが決定論的であると思い込んでいたのです。実際にはそうではありません。
あなたの評価スイートは、あるランダムなシステムを別のランダムなシステムで採点している状態です。もし、評価者がどれほど揺らぐかを測定していなければ、それはクオリティゲートではありません。ただのコイン投げです。
私はこれをサポートエージェントで目にしました。ダッシュボードは数週間、緑色のまま(正常)でした。ところが、顧客からの苦情が急増したのです。200件の過去の回答に対して同じ評価を実行したところ、そのうち14件で判定が変わっていました。エージェントが変わったのではありません。ジャッジの判断が変わったのです。
不安定なゲートは、ゲートがないことよりも質が悪いです。誤った自信を与えてしまうからです。
評価が失敗する理由は3つあります:
- ジャッジモデル:すべてのLLMジャッジにはばらつきがあります。temperature 0であっても、プロバイダーは同じ結果を保証しません。サイレントなモデルアップデートによって、一晩でベースラインが台無しになることもあります。
- ハーネス:実行ごとにコンテキストやツールの出力が変わると、ジャッジは異なる問いに直面することになります。入力がドリフトしているのです。
- ルーブリック:「これは良いか?」といった曖昧なルールは、ばらつきを生みます。厳格で具体的なルールにすることで、ばらつきを抑えられます。
不安定な評価は、不安定なソフトウェアテストと同じように扱う必要があります。そのままリリースしてはいけません。隔離し、フレーキー率を測定してください。
単一の合格率を報告するのはやめましょう。一致率を報告し始めてください。
各ジャッジの呼び出しを複数回実行してください。もしジャッジが自分自身と一致できないのであれば、その判定はシグナルではありません。それはUNSTABLE(不安定)なのです。
UNSTABLEな結果は、CI/CDパイプラインにおける第一級の結果として扱うべきです。明確に失敗を知らせる(fail loud)ようにしてください。
不安定な評価を修正するには、2つのものが必要です:
- スコアリング層:安定性を計算し、結果をPASS、FAIL、またはUNSTABLEに変換します。
- トレーシング層:すべての実行において、生のバイト列、正確なプロンプト、およびツールの出力を確認できなければなりません。
トレースがなければ、モデルが単にランダムであると考えてしまうでしょう。temperatureを下げて、修正したと思い込むかもしれません。しかし、修正できていません。単にバグを静かにしただけなのです。
真の品質を構築するために、以下のルールに従ってください:
- 平均だけでなく、一致率を報告する。
- パイプラインにおいて、UNSTABLEを失敗状態にする。
- ジャッジモデルのバージョンを固定する。
- チェックが失敗したときはトレースを確認する。
再現できない「緑色のダッシュボード」はシグナルではありません。それは自分自身に言い聞かせている物語に過ぎません。
Optional learning community: https://t.me/GyaanSetuAi
