mllm-eval について
mllm-evalは、臨床 LLM/MLLM 評価の設計と監査を支援するモデル非依存のスキルです。主要な評価軸を整理し、決定的な完全性チェックを行いますが、モデル実行や指標計算は行いません。
主な機能
- 01臨床評価設計の監査
- 02裁定済み参照基準と指標の指針
- 03忠実性と汚染の確認
- 04プロンプト感度と読者研究の計画
- 05マニフェストによる完全性チェック
活用シーン
- 01臨床レポート生成研究の監査
- 02臨床 VQA または分類評価の計画
- 03結果執筆前の評価計画の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill mllm-evalインストール後、Claude Code で/mllm-evalを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.ymlreferences/eval_manifest_schema.mdevaluation_axes.mdscripts/check_mllm_eval_completeness.pyscripts/mllm_eval_completeness_challenge/problem.mdverify.shscripts/mllm_eval_completeness_challenge/fixture/manifest_bad.jsonmanifest_good.jsonplan_bad.mdplan_good.mdtemplates/eval_manifest.jsontests/test_mllm_eval_completeness.sh詳細
MLLM-Eval スキル
目的
このスキルは、LLM / MLLM の臨床評価を擁護可能にします。具体的には、実際に裁定された参照標準、仮定ではなく測定された忠実性、n-gram の一致を超える臨床有効性指標、事前学習データへの混入チェック、開示されたプロンプト感度、そしてテキストが生成される場合の読者研究を扱います。モデルに依存しません。すべてのチェックはクローズド API とオープンウェイトの両方に適用されます。また、(助言を目的とする設計/監査スキルとして)読み取り専用です。評価設計を監査し、臨床有効性指標(公開済みの抽出器を用いる RadGraph-F1 / CheXbert-F1)を指定して振り分けますが、モデルの実行や指標の計算は行いません。
これはこの領域における LLM/MLLM の評価設計に関する対となるスキルです。指定された指標を抽出器と /analyze-stats に渡す監査役として、/model-assessment が画像モデルの設計を監査し、指標を計算するのと並行して機能します。完成した論文に対するレビュアー側の監査では、/self-review と /peer-review を通じて mllm_evaluation.md(ME0–ME8)のプローブを使用します。このスキルは著者側の評価ハーネス設計です。読者研究を /design-ai-benchmarking に、サンプルサイズの算出を /calc-sample-size に、TRIPOD-LLM / MI-CLEAR-LLM の遵守状況チェックを /check-reporting に振り分けます。
使用する場面
- 臨床タスクにおける LLM/MLLM の評価を設計または監査しており、レビュアーが確認する観点(参照標準、忠実性、混入、プロンプト感度、読者研究)を網羅したい場合。
使用しない場面
- 評価ルーブリックを用いる AI と人間の専門家のベンチマーク →
/design-ai-benchmarking。 - 画像予測/セグメンテーションモデル →
/model-assessment。 - 画像から画像を生成するモデル →
image_synthesisプローブ。 - LLM のトレーニング/サービング → 対象外です。
- 完成した論文に対する項目単位の TRIPOD-LLM / MI-CLEAR-LLM 監査 →
/check-reporting。
ワークフロー
フェーズ 1 — タスク、モデル、比較対象、デコーディングを明確にする(ME0)
タスク(レポート生成/VQA/抽出・分類)、正確なモデル名とバージョン/日付(クローズド API またはオープンウェイト ID)、デコーディング設定(temperature、seed、max tokens)、および出力のスコアリング対象を明記します。
フェーズ 2 — 参照標準と指標(ME1、ME2)
専門家が裁定した参照データ(検証されていない単一のレポートやモデル由来のラベルではありません)を必須とします。レポート生成では、BLEU/ROUGE と併せて、臨床有効性指標である RadGraph-F1(Jain et al.、NeurIPS 2021)、CheXbert-F1(Smit et al.、2020)、または複合指標 RadCliQ(Yu et al.、Patterns 2023)のいずれかを信頼区間(CI)付きで報告します。VQA/分類では、回答の一致ルールを明記し、クラスごとの感度/特異度(または適合率/再現率/F1)と、実際の有病率における**陽性的中率(PPV)**を信頼区間付きで報告します。正解率はこれらと併記する場合に限ります。有病率が 2% の場合、「陰性」と常に回答するだけで正解率は 98% になります。
フェーズ 3 — 忠実性と混入(ME3、ME4)
原子レベルの事実忠実性指標と、誤った前提/回答保留プローブ(MedVH、Med-HALT)を追加し、正解率だけでなく幻覚率を報告します。公開ベンチマーク(VQA-RAD、SLAKE、MIMIC-CXR-由来、MedQA)を使用する場合は、混入に関する説明を追加します。たとえば、トレーニングのカットオフとベンチマークの公開日の比較、カットオフ後の保留セット、または混入プローブを示します。
フェーズ 4 — プロンプト感度と読者研究(ME5、ME7)
正確なプロンプト、temperature/seed、分散を伴う3 回以上の実行、およびプロンプト頑健性チェックを開示します。導入/有用性を主張する場合は、エラー分類を用いた盲検読者研究を設計します(評価ルーブリック/評価者間信頼性(IRR)は /design-ai-benchmarking、ICC/κ は /analyze-stats、サンプルサイズの算出は /calc-sample-size に振り分けます)。
フェーズ 5 — 計画をゲートに通します(決定論的)
eval_manifest.json に評価軸を宣言します(${CLAUDE_SKILL_DIR}/templates/eval_manifest.json をコピーしてください。
フィールドと許可される値は references/eval_manifest_schema.md に記載されています)。次に:
python3 ${CLAUDE_SKILL_DIR}/scripts/check_mllm_eval_completeness.py \
--manifest eval_manifest.json --strict
未実施の評価軸には "none" を、一覧にない手法には "other:<description>" を使用してください。それ以外の値の場合は、終了コード 2 で終了します。--plan plan.md --task report_generation|vqa|classification を指定すると、従来のキーワードチェックが文章に対して実行されます(「既知の制限」を参照してください)。
NGRAM_ONLY / FAITHFULNESS_MISSING / REFERENCE_STANDARD_MISSING / CONTAMINATION_UNADDRESSED /
READER_STUDY_MISSING は解決する必要があります。分類のマニフェストでは、必ず CLASSIFICATION_METRICS_NOT_ASSESSED(軽微)が報告されます。マニフェストにはそのための指標フィールドがないため、クラスごとの感度/特異度と、実際の有病率における陽性的中率(PPV)を目視で確認してください。
フェーズ 6 — 引き継ぎ
Methods/Results → /write-paper;コンプライアンス(TRIPOD-LLM / MI-CLEAR-LLM)→ /check-reporting;レビュアー監査 → /self-review(ME0–ME8 を読み込みます)。
ハルシネーション防止
- モデル出力、参照ラベル、指標スコアを決して捏造しないでください。 提供された出力で可能なことだけを計算し、参照基準または出力が不足している場合は、その旨を伝えて停止してください。
- n-gram の重なり(BLEU/ROUGE)を臨床的な正しさとして報告しないでください。臨床有効性の指標と併せて示し、n-gram スコアが何を表すかを明記してください。
- 公開ベンチマークを使用する場合、明示されたチェックなしに**「汚染なし」と主張しないでください**。
- 指標(RadGraph-F1/CheXbert-F1)またはその抽出器に不確かな点があれば、
[VERIFY]を付け、数値を捏造せずに確認を求めてください。
決定論的ゲート
scripts/check_mllm_eval_completeness.py — 評価計画に対するタスク対応の存在チェックです(標準ライブラリを使用し、ネットワーク接続は不要です)。再現可能なチャレンジ:
bash ${CLAUDE_SKILL_DIR}/scripts/mllm_eval_completeness_challenge/verify.sh。
既知の制限。 マニフェストモードでは、宣言された内容をチェックしますが、実際に実施されたかどうかは確認しません。マニフェストは Methods の記述に合わせてください。また、宣言された指標がタスクに適しているかどうかもチェックしません。たとえば、VQA タスクに対してレポート生成の指標(BLEU、RadGraph F1)を宣言しても、コメントなしで受け入れられます。文章モード(--plan)では、用語が存在するかどうかをチェックしますが、否定表現や意味は読み取りません。「人による評価は実施しなかった」や「ハルシネーションは評価しなかった」も、その評価軸を扱ったものとしてカウントされます。また、別の意味で使われた語でも評価軸を満たします。どこかに「green」があれば臨床指標のチェックを、「unsupported」があれば忠実性のチェックを、患者分割に関する「data leakage」があれば汚染のチェックを、「ground truth」があれば何を指していても参照基準のチェックを通過します。終了コード 0 を問題なしと見なす前に、通過した各評価軸を計画内で自分で確認してください。
境界
mllm-eval (this skill: harness design + completeness gate, model-agnostic)
├─ design-ai-benchmarking (reader-study rubric / IRR)
├─ calc-sample-size (reader + case sizing)
├─ write-paper + check-reporting (TRIPOD-LLM / MI-CLEAR-LLM)
└─ self-review / peer-review (ME0–ME8 reviewer probe)
参照ファイル
${CLAUDE_SKILL_DIR}/references/evaluation_axes.md— ME2–ME7 の評価軸が必要な理由を説明します。n-gram の重なりを超える臨床有効性の指標(例:RadGraph-F1/CheXbert-F1 と BLEU/ROUGE の比較)、忠実性とハルシネーション、事前学習/ベンチマークの汚染、プロンプト感度と決定性、回答の照合、読者調査が、それぞれゲートの判定に対応付けられています。フェーズ 2–4 で必要に応じて読み込んでください。