C
Claude Academy
Iterative Prompt Improvement & Eval

プロンプトの反復改善とEval

約 10 分 · クイズ 4 問 · 演習 1 問
重要キーワード (4 語)
Eval (評価) — プロンプトやモデルの品質を客観的指標で測る仕組み
Goldset (ゴールドセット) — 理想出力付きのテストデータ集
Regression (リグレッション) — 変更により以前の能力が劣化すること
LLM-as-Judge (LLM 採点) — 別の LLM に出力を採点させる評価手法

プロンプトの反復改善 (Iterative Improvement)

最初から完璧なプロンプトは書けません。測定 → 改善 のループを回します。 これは ソフトウェア開発のテスト駆動開発 (TDD) とよく似た考え方です。

反復ステップ

  1. タスクを定義: 何が「成功」か明文化する。
  2. テストケースを 10〜30 件作る: 入力と理想出力のペア。
  3. 初期プロンプトで実行: 失敗ケースを観察する。
  4. 失敗パターンを分類: 抜け漏れ・形式違反・幻覚など。
  5. プロンプトを修正: 失敗パターンに対応する指示を追加。
  6. 再測定: 改善とリグレッションを確認。

Eval (評価) を自動化する

簡単な eval は Python でも書けます。

def eval_prompt(prompt_template: str, cases: list[tuple[str, str]]) -> float:
    correct = 0
    for inp, expected in cases:
        out = run_claude(prompt_template.format(input=inp))
        if expected.strip() in out:
            correct += 1
    return correct / len(cases)

本格的には Anthropic Workbench, promptfoo, LangSmith, Inspect などのツールが使えます。

LLM-as-Judge

採点が難しいタスク (要約の品質など) では、別の Claude (高性能モデル) に 採点役 をさせます。

基準:
- 事実性: 0-2
- 簡潔性: 0-2
- 形式遵守: 0-2

質問: {q}
理想: {gold}
出力: {pred}

採点を JSON で返してください: {"factuality": x, "concision": y, "format": z, "comment": "..."}

判定モデルは 被評価モデルと別 にするのが望ましい (Opus が Sonnet を採点するなど)。

Anti-pattern (やりがち失敗)

  • プロンプトを 1 回見ただけで OK 判定: 入力データの分布を見ていない。
  • 巨大化した system prompt: 矛盾する指示が混在し性能が落ちる。
  • モデルが悪いと早合点: 多くの場合プロンプト側に改善余地がある。
  • 境界条件を忘れる: 空入力・極端に長い入力・想定外の言語など。
  • Eval なしでデプロイ: 後から劣化に気付けない。

「プロンプトを書く」 = 「仕様書を書く」

良いプロンプトは 明確な仕様書 に近づきます。 だから、プロンプト改善はソフトウェア設計のスキルそのものです。

Eval を Claude に手伝ってもらう

テストケース作成は Claude に頼むのが効率的です。

▶ テストケース生成依頼
「住所を JSON {prefecture, city, address1, address2} に分解する」プロンプトの境界ケース テストを 10 件作ってください。普通のケース 5 件、境界ケース (番地なし、ビル名あり、丁目漢数字、英字混在など) 5 件を含めて。

Hands-on 演習

演習 1: 失敗ケースを Goldset 化する

あなたが第 2 章で書いてきたプロンプト (例: 営業時間 JSON 化、メール分類) のうち 1 つを選び、 5 件のテストケース (入力 + 理想出力) を作って Goldset とし、現状のプロンプトの正答率を測定してください。

形式例:

ケース 1:
  入力: ...
  期待: ...
  実際: ...
  判定: ✓/✗
▶ Playground を開いて実行
💡 ヒント

テストデータ生成は Claude に任せると速いですが、生成された期待出力を 必ず人間が検証 すること (Claude が間違った理想出力を生成する可能性)。

進捗保存にはログインが必要 クイズに挑戦 (4問)

💬 このレッスンへの質問 (0)

全質問を見る →
質問の投稿には ログイン が必要です。閲覧は誰でも可能です。

まだ質問はありません。最初の 1 件を投稿してみましょう。