LabHub

ブログ

LLM 評価 & 可観測性 完全ガイド: Eval Harness、LLM-as-Judge、Tracing、回帰防止 (2025)

한국어English日本語

Season 4 Ep 6 — Ep 1–5 は「どう作るか」。Ep 6 は「作ったものが本当に動いているか、どうやって知るか」。評価なき LLM プロダクトは目隠し運転の車である。

Prologue — "LGTM 駆動開発" の終わり

2023 年までの LLM プロダクトの多くは "Looks Good To Me" 駆動開発だった。プロンプトを直し、数回動かし、「お、良くなった気がする」と言ってマージ。回帰しても「原因不明」で終わる。

2025 年はもう通用しない。理由は 3 つ:

  1. プロダクト規模: 月数億コール、1 回の回帰で数万ユーザーに影響。
  2. チーム規模: 複数エンジニアが同じプロンプト・モデルを触る → 責任が分散。
  3. 競争: 1 ヶ月の停滞で競合に抜かれる → 高速反復が必須、それを可能にするのは評価基盤のみ。

つまり LLM プロダクトにおける評価は、ML モデル評価ではなくソフトウェアエンジニアリングのテスト自動化レベルで日常化しなければならない。


1. 評価の 4 層

1.1 Layer 0 — 構造 / スモークテスト

基本中の基本。CI で毎 PR に実行。

1.2 Layer 1 — Golden Dataset 正解比較

1.3 Layer 2 — 品質判定

1.4 Layer 3 — 本番指標

Layer が上がるほど シグナルは強いが、頻度・コスト・速度では不利。適切に組み合わせる。


2. Eval Dataset の作り方

2.1 ソースの多様化

2.2 規模

2.3 ラベリング

2.4 分割


3. LLM-as-Judge — 祝福と呪い

3.1 基本アイデア

大規模モデル(GPT-4o、Claude 3.5/4 など)に「この応答は正しいか?」を尋ねて自動評価する。

System: あなたは公正な評価者です。
User:   [質問] [応答]
        この応答は質問に正しく答えていますか? yes/no と理由を一行で。

3.2 メリット

3.3 致命的な落とし穴

  1. Position bias: 「どちらが良いか?」で A/B 位置を入れ替えるだけで結果が反転
  2. Length bias: 長い応答を良いと判定
  3. Self-preference: GPT 生成を GPT がより良く評価(モデル間バイアス)
  4. Rubric 揺れ: 同じ基準説明でも再実行ごとにスコア分散
  5. Easy-to-game: 評価プロンプトが分かれば「判定を騙す」応答を学習

3.4 補正テクニック

3.5 人手評価との併走


4. 可観測性 3 層 — Trace / Span / Metric

4.1 用語

4.2 OpenTelemetry が事実上の標準

2025 年時点、LLM 可観測性も OpenTelemetry スキーマ(OpenLLMetry、OpenInference 等)に収束しつつある。どのベンダーでも OTEL SDK で計装しておけば移行・併用が容易。

4.3 LLM 専用属性

一般 trace に加えて記録:

4.4 集計指標


5. ベンダー比較

5.1 LangSmith

5.2 LangFuse

5.3 Arize Phoenix

5.4 Helicone

5.5 Weights & Biases Weave

5.6 選択ガイド

状況推奨
LangChain/LangGraph スタックLangSmith
セルフホスト必須(規制)LangFuse
RAG 中心、埋め込みドリフト重視Phoenix
ゲートウェイで素早くHelicone
研究・実験を並行W&B Weave
既に Datadog/NewRelic該当ベンダーの LLM 拡張(OpenLLMetry)

6. RAG 評価

6.1 分離測定

Retrieval 失敗か Generation 失敗かを区別できないとチューニングは難しい。

6.2 RAGAS などのフレームワーク

OSS の RAGAS、DeepEval がこれらを自動算出。

6.3 Golden Q&A セット


7. エージェント評価

7.1 メトリクス

7.2 Trajectory 評価

最終結果だけでなく 経路(trajectory) 自体が意味を持つ。

7.3 Replay ベース評価


8. CI/CD への評価組み込み

8.1 PR 段階

8.2 メインマージ後

8.3 週 1 回の大規模

8.4 Shadow & A/B

8.5 Canary


9. 安全・バイアス・ハルシネーション測定

9.1 Safety ベンチ

9.2 Bias

9.3 Hallucination

9.4 Refusal の適正性


10. インシデント対応プレイブック

10.1 SEV 定義

10.2 対応順序

  1. 遮断: 問題モデル / プロンプト / バージョンへのルーティング一時 OFF
  2. 切り分け: どの構成が問題か特定(ログ・Trace から)
  3. 緩和: 直前安定版へロールバック
  4. ルート分析: Eval セット・ログ結合で原因究明
  5. 再発防止: 当該失敗例を Eval セットに恒久追加
  6. ポストモーテム: 24〜72 時間以内に内部公開

10.3 チェックポイント


11. ユーザーフィードバックループ

11.1 収集

11.2 活用

11.3 プライバシー


12. 日本語・現地環境の可観測性

12.1 言語別指標の分離

12.2 評価リソース

12.3 規制・監査

12.4 On-prem 可観測性


13. アンチパターン 10 選

13.1 「数字が良さそう」で意思決定

統計的有意性(サンプル数、分散)未確認で判定。

13.2 LLM-judge 単一モデルのみ使用

Self-preference バイアス。多重 judge + 人手サンプル併用。

13.3 Eval セットと訓練セットの混入

Leakage。ハッシュベースで重複チェック。

13.4 PR に回帰テストなし

回帰が main に入ってから発覚。CI に Layer 0/1 は必須。

13.5 PII をそのまま保存

規制違反 + インシデント時の二次被害。

13.6 コストだけ見て品質を見ない

「安くなったが満足度低下」を見逃す。

13.7 Trace なし

エージェント失敗原因不明。デバッグ不可。

13.8 ユーザーフィードバック未収集

最も貴重なシグナルを無料で捨てる。

13.9 "Test" Eval セットをチューニングに露出

結果が膨らむ。次四半期に失望。

13.10 インシデント再発防止なし

同一失敗を 3 度起こすチームは評価体系が無い。


14. チェックリスト — ローンチ前 12 項目


15. 次回予告 — Season 4 Ep 7: "ローカル LLM 時代"

2025 年は「ローカル LLM が実用圏に入った年」でもある。

「外部 API にすべてを頼る時代」の終わり。 ローカル LLM が成立する条件と成立しない条件を明確に引く。

次回でお会いしましょう。


要約: 評価と可観測性は LLM プロダクトの 基盤インフラ。Layer 0〜3 に分けて頻度・コストを合わせ、LLM-as-judge は position swap・多重 judge・人手検査で補正し、OpenTelemetry ベースの Trace/Span/Metric を初日から仕込む。RAG・エージェント・Fine-tune はそれぞれ別の評価が必要で、インシデント対応プレイブックとユーザーフィードバックループが製品改善のエンジン。「測定なき AI はハンドル無き車」。

コメント

まだコメントはありません。

ログインするとコメントできます