| name | llm-eval-designer |
| description | LLM生成システムの検証設計スキル。assay-kitフレームワークを活用し、LLM特有の失敗モード(幻覚、例への過学習、部分的処理)を考慮した総合的なテストケース設計を支援する。 使用タイミング: - LLMベースのワークフロー/エージェントの評価設計時 - ゴールデンデータセット(golden-dataset.yaml)の設計・拡張時 - 既存テストが特定パターンに過学習していないか検証時 - LLM出力の品質スコアラー設計時 - 「なぜこのテストケースが必要か」の根拠を示す時 |
LLM Evaluation Designer
LLM生成システムの検証を設計するためのガイド。
Quick Start
# 1. 検証対象の機能を特定
target_function: "テキスト置換"
# 2. 不変条件を定義
invariant: "入力テキストAをBに変換、他は不変"
# 3. 失敗モードを列挙(→ references/failure-modes.md)
failure_modes:
- example_overfitting # プロンプト例への過学習
- hallucination # 幻覚(存在しない内容の生成)
- partial_processing # 部分的処理
# 4. 汎化テスト設計(→ references/generalization-patterns.md)
# 5. テストケース生成(→ references/test-case-templates.md)
Core Workflow
Step 1: 失敗モード分析
LLM特有の失敗パターンを特定。詳細は failure-modes.md。
| 失敗モード | 検出方法 | 対策テスト |
|---|---|---|
| 例への過学習 | 例と異なる入力でテスト | 同カテゴリ別例、異カテゴリ例 |
| 幻覚 | 入出力差分の厳密検証 | 入力に存在しない内容チェック |
| 部分的処理 | 全マッチの網羅性検証 | 複数出現、複数ブロック |
| 指示誤解釈 | 境界条件テスト | 類似だが異なる指示 |
Step 2: 汎化保証設計
プロンプト例への過学習を防ぐテスト設計。詳細は generalization-patterns.md。
プロンプトに例Xがある場合:
├─ Xと同カテゴリの別例Y, Zでテスト
├─ Xと異なるカテゴリの例A, Bでテスト
└─ テスト入力 ∩ プロンプト例 = ∅ を保証
Step 3: テストマトリクス構築
変数の直交組み合わせでテストケースを生成:
操作種別 × 入力形態 × 出現パターン × ブロック種別
↓
ペアワイズ法で組み合わせ削減
↓
優先度付きテストケース生成
Step 4: スコアラー設計
多面的な品質評価。詳細は scorer-design.md。
| スコアラー | 測定対象 | 閾値例 |
|---|---|---|
| operation-accuracy | 操作種別・数の正確性 | 80% |
| target-block-precision | ターゲット特定の正確性 | 75% |
| content-quality | 生成内容のパターンマッチ | 60% |
| anti-hallucination | 幻覚の不在 | 100% |
References
- failure-modes.md: LLM失敗モード詳細
- generalization-patterns.md: 汎化テスト設計パターン
- test-case-templates.md: テストケーステンプレート
- scorer-design.md: スコアラー設計ガイド
Anti-Patterns
# ✗ Bad: プロンプト例と同じ入力でテスト
prompt_example: "カート → Cart"
test_input: "カート → Cart" # 過学習を検出できない
# ✓ Good: プロンプト例と異なる入力でテスト
prompt_example: "カート → Cart"
test_inputs:
- "ユーザー → 利用者" # 同カテゴリ(カタカナ)別例
- "効率化 → 最適化" # 異カテゴリ(漢字)
- "API → インターフェース" # 異カテゴリ(英語)
# ✗ Bad: 単一パターンのみ許容
expectedContentPatterns:
- "要約"
# ✓ Good: LLMの非決定性を考慮した複数パターン
expectedContentPatterns:
- "要約|まとめ|サマリー"