はじめに
評価は「1 回限りの実行」ではなく、継続的なパイプラインです。この記事では、エンドツーエンドの評価システムを構築します。
1. 多層評価
Layer 1: Automated Metrics (ROUGE, BERTScore)
→ Chạy mỗi training iteration
→ Fast, reproducible
Layer 2: LLM-as-Judge
→ Chạy mỗi version release candidate
→ Quality, relevance, format
Layer 3: Golden Test Set
→ 50+ curated test cases
→ Domain-specific validation
Layer 4: Catastrophic Forgetting Check
→ Test model vẫn giỏi tasks chung
→ Không "quên" kiến thức cũ
Layer 5: Red Teaming
→ Adversarial testing
→ Safety, edge cases, prompt injection
2. 壊滅的な物忘れの検出
GENERAL_KNOWLEDGE_TESTS = [
{"q": "Thủ đô Việt Nam là gì?", "a": "Hà Nội"},
{"q": "1 + 1 = ?", "a": "2"},
{"q": "Ai viết Romeo and Juliet?", "a": "Shakespeare"},
]
def check_forgetting(model, threshold=0.8):
correct = 0
for test in GENERAL_KNOWLEDGE_TESTS:
response = call_model(model, test["q"])
if test["a"].lower() in response.lower():
correct += 1
score = correct / len(GENERAL_KNOWLEDGE_TESTS)
if score < threshold:
print(f"⚠️ CATASTROPHIC FORGETTING DETECTED: {score:.0%}")
return score
3. モデル評価用の CI/CD
# .github/workflows/model-eval.yml
on:
push:
paths: ['training_data/**']
jobs:
evaluate:
runs-on: ubuntu-latest
steps:
- run: python eval/run_metrics.py
- run: python eval/run_llm_judge.py
- run: python eval/check_forgetting.py
- run: python eval/generate_report.py
概要
- 5層評価:メトリクス→LLMジャッジ→ゴールデンセット→忘却→レッドチーム
- 壊滅的な忘却: モデルが一般知識を「忘れていない」ことを確認します。
- CI/CD 評価: データ変更時に自動的に実行
- レッド チーム: 運用前に敵対的な入力をテストします
演習
- モデルの 5 層評価パイプラインを構築する 2.壊滅的な忘却テストスイートを作成する(20以上の一般的な質問)
- レッド チーム シナリオを設計する (10 個以上の敵対的なプロンプト)
- 基本と微調整を比較した評価レポートを作成します。