性能をまったく変えずに、毎日100件で測り直しました。前日より下がった日は46.1%です。
1日20件だと、50.0ポイントの落ち込みまで出ました。何も変えていないのに、です。
変更のあとで悪くなっていないかを確かめます。ただし出力が毎回同じとは限らないので、比べ方に工夫が要ります。
LLM回帰テストは、変更したあとで悪くなっていないかを確かめる仕組みです。指示の書き換えやモデルの入れ替えのあとに走らせます。
普通のプログラムのテストは、同じ入力なら同じ出力になります。違いが出れば、それは変更のせいです。
生成AIでは、同じ入力でも出力が毎回違うことがあります。違いが出ても、変更のせいとは限りません。
この記事の次の節で測るのは2番目です。問題を固定していても、同じ問題を何度も測れば数字は動きます。
1番目については、減らす手立てが知られています。Anthropicの資料は望む出力の例を示すこと。これは抽象的な指示より効果的であるとしています。
ただし出力を安定させても、2番目のばらつきは残ります。別の問題として扱う必要があります。
次の節では性能をまったく変えずに、毎日測り直したときに何が起きるかを数えます。実際のモデルを呼んではおらず、決めた正答率で当たり外れを作っています。見せているのは、測り方だけから生じる上下の大きさです。問題集の規模そのものはゴールデンデータセットの記事で扱っています。
Provide examples of your desired output. This is more effective than abstract instructions.原文Anthropic ドキュメント「Increase output consistency」 この内容の有効期限2027-02-18
性能を固定したまま90日ぶんを測り直しました。半分近くの日が前日より下がります。
LLM回帰テストで毎日の変化を見るとどうなるのかを、実際に走らせて測りました。正答率85%のまま、性能はまったく変えていません。
90日ぶんを測り直し、前日より下がったら悪化として数えました。これを500回繰り返しています。
for (let d = 0; d < DAYS; d++) {
let ok = 0;
for (let i = 0; i < n; i++) if (r() < TRUE_RATE) ok++;
const rate = ok / n;
if (prev !== null && prev - rate > 0) drops++;
prev = rate;
}
1日あたりの件数 「悪化」と判定した日数 そのうち3ポイント以上 最大の落ち込み
20件 41.0% 41.0% 50.0ポイント
50件 44.4% 33.6% 26.0ポイント
100件 46.1% 29.6% 22.0ポイント
300件 47.5% 15.8% 12.3ポイント
1000件 48.6% 3.2% 6.8ポイント
上の表を見てください。1日100件で測ると、46.1%の日が前日より下がっています。
この数字は驚くことではありません。上がるか下がるかは半々なので、下がる日が半分近くあるのは自然です。
問題はそれを悪化として扱うかどうかです。毎日「下がりました」と報告していれば、半分の日は報告することになります。
見るべきは右の2列です。1日100件だと3ポイント以上の落ち込みが29.6%、最大で22.0ポイント落ちました。
1日1000件にすると、3ポイント以上は3.2%、最大でも6.8ポイントです。件数を増やすと、大きな落ち込みが出なくなります。
1日20件では50.0ポイントの落ち込みが出ました。性能は何も変わっていません。この幅で報告していると、毎週のように調査が走ります。
件数が少ないほど、幻の落ち込みが大きくなる。
Precisely define your desired output format using JSON, XML, or custom templates so that Claude follows every output formatting element you require.原文Anthropic ドキュメント「Increase output consistency」 この内容の有効期限2027-02-18
1日の上下ではなく水準を見ます。上下の幅を先に測っておけば、無視してよい範囲が決まります。
LLM回帰テストを運用に載せるには、どこからを悪化と呼ぶかを決める必要があります。
手順は単純です。何も変えずに数日測ると、その環境での上下の幅が分かります。
前の節の条件なら、1日100件で最大22.0ポイント動きました。この幅より小さい変化は、変更のせいだと言えません。
3番目が実務では効きます。2日続けて下がったら見る、といった規則にしておくと、調査の回数が現実的な数に収まります。
測り方の工夫とは別に、出力を安定させる手立てもあります。Anthropicの資料は複雑な作業を、より小さく一貫した下位の作業に分解することを挙げています。
1回の呼び出しでやることを減らせば、結果の振れ幅も小さくなります。ただし前の節で測ったばらつきは、これでは消えません。
幅を測ってから、基準を決める。
Break down complex tasks into smaller, consistent subtasks.原文Anthropic ドキュメント「Increase output consistency」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る