Community研究&データ分析github.com

tidewatch-fish/ai-eval-toolkit

LLMおよびAIエージェントの自動評価のための拡張可能なツールキット。ルーブリック判定、データセット、スコアリングスクリプト、回帰テストを含みます。

ai-eval-toolkit とは?

このスキルは、金融領域に特化したルーブリックベースの自動評価ツールキットです。LLMやAIエージェントの回答を、固定された金融品質ルール(`references/finance-rubric.json`)に従って構造的に評価します。評価は次元(正確性、完全性、有用性など)ごとに独立して行われ、各次元のトリガー条件を満たすかどうか、参照資料や正解と照らし合わせて「正」「誤」「該当なし」の3値で判定します。バッチ処理や回帰テスト、人間との一致率計算など、実践的な評価パイプラインを備えており、金融ドメインにおけるAI応答の品質保証に役立ちます。

対応~Claude Code~Codex CLI~Cursor
npx skills add tidewatch-fish/ai-eval-toolkit

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

金融ルーブリック評価器

固定された金融品質ルールを使用して回答を評価します。問題ごとにその場でクライテリアを生成したり、評価中に新しい金融アドバイスを提供したりしないでください。

評価の実行

1. ルールとデータ契約の読み込み

まず以下を読み込んでください。

  • references/finance-rubric.json:次元のトリガー条件、合格条件、不合格条件、境界ルール。
  • references/data-schema.md:入出力フィールドとデータ制約。

2. タスクの準備

ユーザーが提供した内容を assets/eval-case-template.json の構造に整理します。1つの次元のみを評価する場合は、dimension_id を指定します。

python scripts/prepare_eval.py --input assets/sample-case.json

同じ回答を完全に評価する場合は、3つの互いに独立したタスクを生成します。

python scripts/prepare_eval.py --input assets/sample-case.json --all-dimensions

バッチ入力にはJSON配列またはJSONLを使用できます。各レコードは依然として1つの次元のみに対応します。--all-dimensions を使用する場合、スクリプトは各レコードに対して3つの独立したタスクを展開します。

3. 各タスクの独立した判定

以下の順序に厳密に従って実行してください。

  1. 現在の次元のすべての trigger_conditions を確認し、1つでも満たさない場合は「該当なし」を返します。
  2. 現在の次元の judgment_rule、pass_conditions、fail_conditions、boundary_rules のみを読み取ります。
  3. 入力内の参照資料、正解、会話コンテキスト、タスク要件のみを使用して判定します。
  4. 評価対象の回答からの直接的な証拠を引用し、構造化された判定を出力します。

常に次元を分離してください。

  • 表現された内容の正誤は正確性に属します。
  • 情報の欠落は完全性に属します。
  • 提供された内容が明確で、理解可能であり、実行可能であることは有用性に属します。
  • 同じ問題を複数の次元で同じ理由で繰り返し誤りと判定しないでください。

出力:

{
  "case_id": "fin-001",
  "dimension_id": "accuracy",
  "result": "誤",
  "evidence": ["回答中の原文または正確な位置"],
  "reason": "誤:核心的な結論が参照資料と反対である。"
}

結果の意味:

  • 正:現在の次元を満たしている。
  • 誤:現在の次元に違反している。
  • 該当なし:現在の次元が該当しない、または証拠が不十分。「該当なし」は「正」ではありません。合格率を計算する際には除外する必要があります。

4. 検証と集計

単一の判定を検証します。

python scripts/score_result.py --input assets/sample-judgment.json

バッチ入力にはJSON配列またはJSONLを使用できます。スクリプトは全体および次元ごとの「正」「誤」「該当なし」の数、適用率、合格率を出力します。各判定に human_judgment.result が付随している場合、人機一致率、誤りサンプルの再現率、誤検出率も計算されます。

python scripts/score_result.py --input experiment/judgments.example.jsonl --summary-only

スクリプトは判定をスコアにマッピングしなくなりました。「該当なし」は常に独立したステータスとして保持され、集計統計からは別途除外されます。

金融領域の境界

  • 指定された参照資料、正解、コンテキストのみに基づいて判定します。
  • 正確性について信頼できる検証資料がない場合は「該当なし」を返し、外部の常識で補足判定しないでください。
  • すべての金融回答に免責事項が必要だと想定しないでください。参照資料またはタスク要件で明示的に必要とされる場合にのみ、該当する次元で判定します。
  • 正確性の次元では、根拠のない収益、承認、支払い、期限、または無リスクの保証は直接不合格と判定します。
  • 「金融リスクが高い」という理由で、ユーザーの質問に必要な情報範囲を拡大しないでください。

キャリブレーションルール

  1. experiment/regression-set.example.jsonl を使用して最小回帰セットを作成します。
  2. 開発セットを使用して誤判定を特定し、references/finance-rubric.json を修正します。
  3. rubric_version をインクリメントし、修正に使用していないホールドアウトセットで検収します。
  4. references/report-checklist.md に従って、バージョン、再現率、誤検出率を記録します。

特定の商品の金利、手数料、期間、資格を汎用ルーブリックに記述しないでください。これらの事実はサンプルの reference_context に配置します。

付属リソース

  • assets/sample-case.json:すぐに実行できる定期預金のサンプル。
  • assets/sample-judgment.json:対応する判定例。
  • experiment/regression-set.example.jsonl:金融境界の最小回帰セット。
  • experiment/judgments.example.jsonl:すぐに実行できるバッチ判定と人間によるラベルの例。
  • references/report-checklist.md:報告基準とバージョン追跡のチェックリスト。

関連スキル