メインコンテンツまでスキップ

評価(Evals)— 感覚に勝る中核スキル

中級
What you'll learn
  • 評価が実際に何であるかを理解する — モデル出力を固定ルーブリックに対して採点する再現可能なテスト
  • 感覚チェックで十分なときと、評価しかないときを知る
  • 実際に使う 4 種類の評価と、それぞれの適用場面を認識する
  • 最小限有効な評価 — 20 ケース、1 ルーブリック、1 スクリプト — を午後の間に構築する
  • 評価にウソをつかせる 6 つの罠を避ける

このサイトから 1 つ習慣を持ち帰るなら、これにしてください。プロンプト設計、モデル選択、ツール接続 — その変更がシステムをより良くしたか悪くしたかを測定できるまで、何一つ蓄積されません。それができれば、あらゆる将来の決定 — Sonnet 5 か Fable 5 か、ツール追加、システムプロンプトの締め付け、思考予算の引き上げ — が 1 週間の議論の代わりに 5 分のチェックになります。

評価は「賢く感じる」を、意見の不一致に耐える数字に置き換える方法です。

評価とは実際何か

評価は 3 つのものを組み合わせたものです:

  1. 固定された入力セット — 通常、実際の使用から抽出された 20 から数百のケース。
  2. ルーブリックまたは正解データ — 各ケースに対して「正しい」とはどう見えるか?
  3. 採点ループ — すべてのケースでモデルを実行し、出力をルーブリックと比較し、合格/不合格(または段階的スコア)とコスト、レイテンシを報告するスクリプト。

それ以外のすべて — ダッシュボード、LLM 判定者、CI ゲート — はその中心の周りのオプションの足場です。

そのループを変更のたびに再実行します。それがゲームのすべてです。

感覚チェックで十分なとき — そうでないとき

すべてのプロンプトに評価が必要なわけではありません。判断を使ってください。

状況感覚チェック OK評価を構築
自分用のワンオフスクリプトはい
5 人の同僚に出荷するプロンプトはい(軽く)信頼性が重要なら
ユーザー向けのもの、あらゆる規模ではい
無人で動くもの(エージェント、バッチジョブ)はい
モデルやプロバイダを切り替える決定はい(そうでなければ推測)
間違った答えがコスト(金銭、安全、法的)を持つものはい(交渉不可)

経験則:**「新しいバージョンの方が感じが良いか?」と自分が言うのを初めて聞いたら、止まって評価を構築してください。**次の 10 個の変更でその代金を払います。

使う 4 種類の評価

Guided walkthrough1 of 4
  1. 出力が特定の文字列と等しい、正規表現に一致する、有効な JSON としてパースされる、またはスキーマに一致する必要がある。安価、高速、明確。分類、抽出、コンパイル必須のコード、ツール呼び出し、構造化出力に使う。

実際のシステムはこれらを混ぜます — JSON スキーマチェックがルーブリック採点をゲートし、それがエンドツーエンドの軌跡チェックをゲートする。安価な層は早く失敗し、高価な層は安価な層が通過したときのみ実行されます。

最小限有効な評価を構築する

午後の間に動く評価が持てます。まずこのリストの他のすべてはスキップしてください。

Guided walkthrough1 of 5
  1. ログ、サポートチケット、自分自身の使用から。一般的な簡単なパス、難しい中間、すでにあなたを焼いた 2〜3 のケースをカバー。20 は本物のリグレッションを検出するのに十分。数百は後のため。

それだけです。この後のすべて — LLM 判定、キャリブレーション、ダッシュボード、コスト追跡、メトリック別スライシング — は、すでに存在し、すでに悪い変更をブロックする評価上に償却されます。

評価にウソをつかせる 6 つの罠

罠 1 — ゴールデンセットが偽物

実際の使用からサンプリングされたのではなく、チームが発明したケース。評価は通るが、ユーザーは評価が見たことのない入力に当たる。修正: 実際のログからケースをマイニング。すべての本番バグは修正する前に新しいケースになる。

罠 2 — ルーブリックが感覚

アンカーなしで「品質を 1〜5 で評価」。2 人のグレーダー — 人間または LLM — は激しく意見が食い違い、スコアは再実行のたびに跳ねる。修正: スケール上の各ポイントを観察可能な行動にアンカー。「5 = すべての主張がソースに追跡可能;3 = サポートされていない主張が 1 つ;1 = サポートされていない主張が 3 つ以上」。

罠 3 — LLM 判定がキャリブレーションされていない

安いのでモデルに採点を任せる。判定には既知のバイアスがある:長い回答、最初の選択肢、自分自身の言い回しを繰り返す出力を好む。修正: 人間に 30〜50 ケースを採点させる。判定対人間の合意を測定(Cohen のカッパ少なくとも 0.6)。選択肢の順序をランダム化。毎週判定をスポットチェック。

罠 4 — 評価が過学習

同じ 20 ケースでスコアが最大化するまでプロンプトを微調整し続ける。本番が沈む。修正: dev と holdout セットに分割。反復中は holdout スコアを決して見ない。合成バリエーションではなく、実際の失敗からセットを成長させる。

罠 5 — 1 つの数字、コストなし

スコアが上がる;トークン請求が倍になる。またはレイテンシが 8 秒に跳ね上がる。「改善を出荷した」がプロダクトをリグレッションさせた。修正: すべての実行がスコア、ケースごとのコスト、p50/p95 レイテンシを一緒に報告する。変更は 3 つのうち 2 つを静かにリグレッションさせないときのみ「良い」。

罠 6 — モデルバージョンドリフト

プロンプトをロックするがモデルはロックしない。プロバイダが静かに更新を出荷;あなたのスコアが歩く。修正: モデルバージョンを明示的に固定(フローティングエイリアスではなく、特定の日付付きスナップショット)。すべてのモデル更新で評価を再実行。現在固定されているファミリーはモデルと料金を参照。

労力を下げるツール

始めるのにこれらは何も必要ありません — Python スクリプトと CSV で十分 — しかし動く評価ができたら、これらは時間を節約します:

  • Anthropic の評価ガイド — 標準的な方法論、テストケースの開発に合わせられている。他のプロバイダを使う場合でもここから始める。
  • promptfoo — YAML 定義の評価スイート、Anthropic、OpenAI、Google、オープンモデル間で動作。並列モデル比較に良い。
  • Braintrust / LangSmith / Humanloop — UI、コスト追跡、データセットバージョニング付きのホスト型評価プラットフォーム。週に数百ケースを採点するようになったら有用。
  • カスタムスクリプト — 最も柔軟な選択肢のまま、特にグレーダーが決定論的またはドメイン固有のとき。

何を選んでも、ケースは自分のリポジトリに、バージョン付きで保管。ツールは代替可能;キュレーションされたゴールデンセットが資産。

クロスモデルの注意

一度構築された評価は、モデルポータビリティを無料で買います。Claude Sonnet を採点した同じ 20 ケース + グレーダー + スクリプトは、1 行変更するだけで Fable 5、GPT-5、Gemini 3.6、またはローカル Qwen も採点します。だからこそ、真剣なモデル選択を行う人は誰でも、ベンチマークのリーダーボードではなく、自分の評価の中に住んでいます。

公共ベンチマークは「どのモデルが SWE-bench でトップか?」に答えます。あなたの評価は「どのモデルが私のユーザーのチケットを、私の予算で、ドリフトなく処理するか」に答えます。プロダクトを出荷するのは 2 番目の質問だけです。

クイズ — 自己チェック

Check yourself

0/3
  1. 新しいプロンプトが古いものより良いか知りたい。最小限有効な評価は何か?
  2. チームのルーブリックが「役立ち度を 1〜5 で評価」と言う。スコアは再実行のたびにプラスマイナス 1 ポイント跳ねる。修正は?
  3. 評価スコアが 8 ポイント上がった。レポートの他は何も変わっていない。出荷するか?

主要な要点

Key takeaways
  • 評価は固定されたケースセット + ルーブリック + 採点ループ — それ以外はすべて足場
  • 明確な合格基準を持つ 20 の実ケースが、200 の合成ケースを上回る
  • スコア、コスト、レイテンシを一緒に — 他の犠牲で 1 つを改善するのはリグレッション
  • ルーブリックを観察可能な行動にアンカー;LLM 判定を人間に対してキャリブレーション
  • モデルバージョンを固定;すべてのプロバイダ更新で再実行 — 静かなドリフトは現実
  • 良い評価はポータブル:Claude、GPT、Gemini、ローカルモデルをベンチマークではなくあなたのタスクで比較できる