Golden Test Setの構築
実際の利用における長い裾野までカバーする、高品質な入力と期待出力のペアを50~200件選定します。
「Golden Test Setの構築」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
ゴールドセットとは
「golden test set」(または「gold set」)とは、良い動作とは何かを定義する、入力と期待される出力のペアを厳選したコレクションです。
すべての変更をこのセットに対して評価します。
優れたゴールドセットの特性
- 多様である — 一般的なケースとエッジケースの両方をカバーする
- 人間が厳選している — 自動生成ではない
- バージョン管理されている — リポジトリ内で固定されている
- 文書化されている — 各ケースに選定理由がある
ケースはいくつ必要か
目安は次のとおりです。
- 50ケース — 実用可能な最小限
- 200ケース — 十分なカバレッジ
- 1000ケース以上 — 成熟した製品
量より品質が重要です。適切に選んだ50ケースは、無作為な500ケースを上回ります。
ケースの収集元
- ユーザーインタビュー — 実際のユーザーが尋ねること
- 本番ログ — 実際に寄せられた質問
- バグレポート — すべてのバグをevalにする
- 敵対的生成 — LLMにエージェントを破綻させるよう依頼する
Mining Bad Production Traces
for trace in last_week_traces():
if trace.has_thumbs_down or trace.had_error:
case = {
'input': trace.input,
'why_bad': trace.feedback_comment,
'expected': None # to be filled by human reviewer
}
save_to_review_queue(case)期待される出力:完全一致とヒューリスティック
期待される出力には、2つの方式があります。
- 完全一致 — 抽出、分類、計算に使用する
- ヒューリスティック — 自由回答のQ&Aに使用し、重要な事実が含まれているかを評価する
Heuristic Scoring
def score_answer(actual, expected_facts):
return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)
case = {
'input': 'What is our refund policy?',
'expected_facts': ['30 days', 'unopened', 'receipt required'],
'min_score': 0.66 # at least 2 of 3 facts mentioned
}
actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")
敵対的なケース
難しいケースを含めてください。
- 対象範囲外の質問(「火星の天気はどうですか?」)
- 曖昧なクエリ
- プロンプトインジェクションの試み
- 外国語の入力
- 非常に長い入力
ゴールドセットのバージョン管理
リポジトリ内にJSONとして保存します。セットを更新するすべてのPRで、更新理由を説明してください。
// gold-set.json
[
{
"id": "refund-policy-001",
"input": "What is your refund policy?",
"expected_facts": ["30 days", "unopened", "receipt required"],
"added_by": "alice@",
"added_at": "2025-08-12",
"reason": "Top customer support question"
}
]テストとホールドアウトの分割
過学習を検出するには、次のように分割します。
- Devセット — 反復改善に使う(内容を確認できる)
- Testセット — 測定に使う(このセットに合わせた調整は行わない)
- Holdout — メジャーリリース前だけに使う
パレートタグ付け
どこで退行が起きたか確認できるよう、ケースをカテゴリ別にタグ付けします。
tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)
# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68 <- regression here")
Evalの評価基準
複雑な出力には評価基準を書きます。何が含まれていなければならないか、何が含まれていてはいけないか、何が望ましいかを定義します。
rubric = {
'must_include': ['30 days'],
'must_not_include': ['no refunds'],
'preferably_includes': ['receipt']
}
for k, v in rubric.items():
print(f"{k}: {v}")
ケースの情報源
評価ケースの情報源として、最もシグナルの強いものは何でしょうか。
まとめ
実際のユーザーと本番環境での失敗から、50件以上のケースを厳選します。バージョン管理し、タグを付け、dev/test/holdoutに分割してください。バグが発生するたびに拡張します。
よくある質問
「Golden Test Setの構築」レッスンは無料ですか?
はい。「Golden Test Setの構築」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「Golden Test Setの構築」で何を学びますか?
実際の利用における長い裾野までカバーする、高品質な入力と期待出力のペアを50~200件選定します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Golden Test Setの構築」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- エージェントのEval-Driven Development
- Golden Test Setの構築
- LLM-as-a-Judgeの落とし穴
- ベンチマークスイート:SWE-Bench、GAIA、ToolBench