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 でも書けます。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "ruff check $CLAUDE_PROJECT_DIR" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "echo Done" }
        ]
      }
    ]
  }
}

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

LLM-as-Judge

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

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "prettier --write $CLAUDE_PROJECT_DIR && eslint --fix $CLAUDE_PROJECT_DIR"
      }]
    }]
  }
}

判定モデルは 被評価モデルと別 にするのが望ましい (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問)

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

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