paper-autoraters について
paper-autoratersは、PaperOrchestraの論文評価用スキルで、LLMによる4種類の評価方法を実装しています。生成論文の採点や執筆パイプラインの比較に使え、引用分類や文献レビュー評価のプロンプト、引用F1計算スクリプトを備えています。
主な機能
- 01LLMによる4種類の評価
- 02P0/P1参考文献分類
- 03文献レビューの6軸採点
- 04論文の並列比較
- 05引用の適合率・再現率・F1計算スクリプト
活用シーン
- 01生成論文を基準論文と比較採点
- 022つの論文執筆パイプラインを比較
- 03PaperOrchestraのエージェント実行を検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ar9av/ paperorchestra --skill paper-autoratersインストール後、Claude Code で/paper-autoratersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/citation-f1-prompt.mdlitreview-quality-prompt.mdsxs-litreview-prompt.mdsxs-paper-quality-prompt.mdscripts/compute_f1.py詳細
論文自動評価器(付録 F.3)
PaperOrchestra(Song et al., 2026, arXiv:2604.05018, §5 および付録 F.3)で使用されている、LLM を評価者とする 4 種類の自動評価器を忠実に実装したものです。
この評価指標は、PaperOrchestra が単一エージェントおよび AI-Scientist-v2 のベースラインを上回ることを示すために論文で使用されています。次の用途にお使いください。
- 生成された論文を正解論文と照合して採点する。
- 2 つの論文執筆パイプラインを並べて比較する。
- paper-orchestra パイプラインのホストエージェントによる実行を検証する。
4 種類の自動評価器
| 自動評価器 | 機能 | 入力 | 出力 |
|---|---|---|---|
| Citation F1 — P0/P1 分類 | 論文の本文に基づいて、参考文献リストを P0(必ず引用)と P1(引用が望ましい)に分類します | 論文の本文 1 件とその参考文献リスト | JSON {ref_num: "P0"|"P1"} |
| 文献レビューの品質 | 序論+関連研究を 6 軸で 0〜100 点評価し、スコアの過度な上昇を防ぐ厳格な上限を設けます | 論文の PDF/テキスト 1 件+参考文献の平均引用数 | axis_scores、penalties、summary、overall_score を含む JSON |
| SxS 論文全体の品質 | 2 件の論文を並べた総合的な優劣判定 | 論文 2 件(PDF またはテキスト) | winner ∈ {paper_1, paper_2, tie} を含む JSON |
| SxS 文献レビューの品質 | 序論+関連研究のみを対象とした、2 件の論文の並列評価 | 論文 2 件 | winner ∈ {paper_1, paper_2, tie} を含む JSON |
論文では、Gemini-3.1-Pro と GPT-5 を評価者として使用し、temperature は 0.0(Gemini)または既定値の 1.0(temperature の調整に対応していない GPT-5)に設定しています。ホスト環境で利用できる LLM をお使いください。
ワークフロー
Citation F1(正解データに対する Precision/Recall/F1 の計算)
次の 2 段階で行います。
ステップ 1:参考文献リストを P0/P1 に分類する
正解論文と生成論文の両方について、LLM に references/citation-f1-prompt.md を渡して実行します。
inputs:
paper_text: full paper LaTeX or markdown
references_str: numbered reference list (e.g., "1. Vaswani et al. (2017)
Attention Is All You Need. NeurIPS. 2. He et al. (2016)
Deep Residual Learning for Image Recognition. CVPR. ...")
output: JSON {"1": "P0", "2": "P1", "3": "P0", ...}
次の場所に両方の分類結果を保存します。
bench/<paper_id>/gt_partition.jsonbench/<paper_id>/gen_partition.json
ステップ 2:参考文献をエンティティ ID に解決し、F1 を計算する
論文では、2 つのリストの参考文献を照合するために Semantic Scholar の論文 ID を使用しています。compute_f1.py スクリプトは、2 つの入力リストに基づいて決定論的に計算します。
python skills/paper-autoraters/scripts/compute_f1.py \
--gt-partition gt_partition.json \
--gt-refs gt_refs.json \
--gen-partition gen_partition.json \
--gen-refs gen_refs.json \
--out f1_report.json
ここで、gt_refs.json と gen_refs.json は、ホスト環境の S2 解決処理(literature-review-agent/scripts/ で使用されるものと同じファジーマッチング+S2 検証)で生成した {ref_num, paper_id, title} のリストです。
出力 JSON には、P0/P1/全体の Precision、Recall、F1 が含まれます。
文献レビューの品質(論文 1 件、6 軸)
references/litreview-quality-prompt.md を読み込みます。入力は次のとおりです。
- 論文全体の PDF(または、ホスト環境で PDF 入力に対応していない場合は LaTeX/Markdown)
- 該当する学会・分野の
avg_citation_count(引用数の基準値として使用します。論文によると、例として CVPR 2025 は 58.52、ICLR 2025 は 59.18 です)
このプロンプトは、論文の文献レビューとしての機能のみ(序論+関連研究/背景の各セクション)を評価するようモデルに指示します。軸ごとのスコアと根拠を含む、厳密な形式の JSON 出力を生成します。
プロンプトには、スコアの過度な上昇を防ぐため、次の重要なルールが組み込まれています。
| ルール | 上限 |
|---|---|
| 既定の想定 | 全体スコアは 45〜70 |
| すべての軸で強い根拠がなければ 85 超にはならない | — |
| 90 超は極めてまれ(サーベイ論文に匹敵する習熟度が必要) | — |
| いずれかの軸が 50 未満 → 全体スコアが 75 超になることはまれ | — |
| 主に説明に終始するレビュー | 批判的分析は 60 以下 |
| 比較なしに新規性を主張 | 位置づけは 60 以下 |
| 引用が少ない/一貫性がない | 引用の厳密さは 60 以下 |
| 引用数が平均の 50%未満 | 網羅性は 55 以下 |
| 引用数が平均の 120%超 | 網羅性は「強い」 |
さらに、ペナルティ表は次のとおりです。
| ペナルティ | 範囲 |
|---|---|
| 新規性の過大な主張 | -5〜-15 |
| 重要な最新研究の欠落 | -5〜-15 |
| 主に説明に終始するレビュー | -5〜-10 |
| 研究上のギャップに関する記述の弱さ | -5〜-10 |
| 引用の羅列 | -5〜-10 |
出力は litreview_quality_score.json に保存します。スコア JSON は content-refinement-agent/scripts/score_delta.py と同じ形式なので、反復間の比較に停止ルールのロジックを再利用できます。
SxS 論文全体の品質(サイドバイサイド、論文全体)
references/sxs-paper-quality-prompt.md を読み込みます。入力:
- 2 つの論文 PDF または LaTeX ファイル(
paper_1とpaper_2と呼びます)
プロンプトは、paper_1_holistic_analysis、
paper_2_holistic_analysis、comparison_justification、
および winner ∈ {paper_1, paper_2, tie} を含む JSON を生成します。
LLM の位置バイアスを軽減するため(この論文では §5.4 で触れています)、順序を入れ替えて比較を2 回実行します。
call_1: paper_A → paper_1, paper_B → paper_2 → winner1
call_2: paper_B → paper_1, paper_A → paper_2 → winner2
最終結果は、win(どちらの呼び出しでも論文 A が勝者)、tie(一方が勝者で一方が引き分け、または両方が引き分け)、または loss(どちらの呼び出しでも論文 B が勝者)です。この論文では、まさにこの順序入れ替えプロトコルを使用しています。
SxS 文献レビューの品質(サイドバイサイド、序論+関連研究のみ)
references/sxs-litreview-prompt.md を読み込みます。SxS 論文品質自動評価器と同じ入力/出力形式ですが、モデルは各論文の序論と関連研究/背景のセクションのみを評価するよう指示されています。位置バイアスを軽減する方法も同じで、順序を入れ替えて 2 回実行します。
リソース
references/citation-f1-prompt.md— 付録 F.3 の P0/P1 分類プロンプト(原文そのまま)references/litreview-quality-prompt.md— 付録 F.3 の 6 軸文献レビュー評価基準(原文そのまま)references/sxs-paper-quality-prompt.md— 付録 F.3 の SxS 論文品質プロンプト(原文そのまま)references/sxs-litreview-prompt.md— 付録 F.3 の SxS 文献レビュー用プロンプト(原文そのまま)scripts/compute_f1.py— 2 つの分類 JSON から Precision/Recall/F1 を算出します