📊
評価パイプライン — ハーネス品質を測定する方法
勘で判断すると負ける、自動化された評価体系が必須だ
「プロンプトを変えたら体感的に良くなった気がする」— この判断は危険だ。10ケースで良くなっても他の10ケースで悪くなっている可能性がある。
評価パイプラインの構造
テストセット — 入力-期待出力ペアの集合。実際のユースケースから抽出するのが良い。合成データだけでは不十分。
ランナー — ハーネスを通してテストセットを実行。同一条件でのA/B比較が可能であること。
スコアラー — 出力の品質を数値化。正解が明確な場合(コード — テスト通過可否)は自動、自然言語応答はLLM-as-judgeや人間評価を使う。
トラッキング — 各実行の入力、中間過程、出力、スコアを全て記録。何が良くなり何が悪くなったか原因を追跡できること。
評価指標の設計
コード生成ハーネスなら:
テスト通過率(pass@1、pass@5)
パッチ精度(修正したファイルが正しいか)
不要な修正率(関係ないファイルを触ったか)
RAGハーネスなら:
検索精度(取得した文書が関連あるか)
回答忠実度(答えが検索結果に基づいているか)
ハルシネーション率
勘 vs データ
「このプロンプトの方が良い気がする」は勘だ。「pass@1が52%から61%に上がり、失敗ケース分析の結果エラーメッセージ解析の改善が原因」がデータだ。
ハーネスエンジニアリングは勘ではなくデータで意思決定する分野だ。
動作フロー
1
テストセット構築 — 実際のユースケース基盤で入力-期待出力ペアを最低50個以上
2
自動実行 + 採点 — ハーネス変更ごとに全テストセットを回してスコア比較
3
失敗ケース分析 — スコアが落ちたケースを分析して原因特定
4
回帰防止 — 新機能追加時に既存ケースが壊れないか確認
ユースケース
SWE-bench — 実際のGitHub issueを基にコーディングエージェントのハーネスを評価するベンチマーク
RAG評価 — 検索精度、回答忠実度、ハルシネーション率でRAGハーネス品質を測定