新規モデル · 2026.10.05

AstaBrief 8B:論文の根拠を引用したレポートをローカルで作る

検索した論文の根拠をつなぎ、確認できるレポートにまとめます。

AstaBrief-8Bは研究上の質問と論文抜粋を受け取り、引用付きのレポートを作るモデルです。検索ツールで集めた資料を渡すと、複数論文の主張と根拠を一つの下書きに整理します。Apache-2.0で公開され、TransformersやvLLMで実行できます。

実行条件と要点
  • 研究質問と検索済み抜粋をモデルに渡し、論文検索は別のツールで行います。
  • 公式モデルIDは`allenai/AstaBrief_8B`、ライセンスはApache-2.0です。
  • 公開された100件の質問による評価では、citation precisionが90.5、citation recallが78.2でした。
  • 公式カードに最低メモリやローカルtok/sはありません。引用先を開き、根拠が主張を支えているか確認します。

研究質問と論文抜粋を渡すと引用付きレポートができます

Ai2は2026-10-02に`allenai/AstaBrief_8B`をApache-2.0で公開しました。このモデルは研究質問と検索済みの科学文献抜粋を受け取り、根拠を引用したレポートを書きます。複数の論文から電池劣化の要因を比較する場合は、検索ツールで関連論文と段落を集めてから質問と抜粋をAstaBriefに渡します。モデル自身はウェブや学術データベースを検索しません。Ai2公式発表 · モデルカード

まず検索結果に比較対象と重要な条件がすべて含まれているか確認します。次にモデルの要約と引用を原文と照合すれば、検索漏れと記述の誤りを分けて修正できます。

検索とレポート作成を別の段階にします

一つの作業を通して使います。「高温保管がリチウムイオン電池の容量低下に与える影響を扱う論文3本を比較し、異なる試験温度と観察期間を表にする」です。検索した論文ごとに、タイトル・年・DOIまたはURL・実際の抜粋を保存します。抜粋に識別子を付けると、レポートの引用を原文へ戻しやすくなります。

モデル入力には研究質問、希望するレポート構成、抜粋、出典識別子を一緒に入れます。公式SFT promptには`[QUERY]`と`[SECTION_REFERENCES]`の欄があり、質問と根拠を対応づけられます。AstaBriefモデルカード

論文と研究ノートが置かれた机のノートパソコン
検索は根拠となる論文や段落を集め、AstaBriefはその資料からレポートを書きます。

引用された文と根拠の範囲を一緒に確認します

文末に引用番号があっても、文のすべての内容が原文に書かれているとは限りません。45°C保管の研究結果を25°C環境での一般的な劣化速度に広げると、出典が正しくても結論の範囲が変わります。比較文ごとに引用論文を開き、温度・標本・期間・測定指標が一致しているか照合します。

Ai2はcitation precisionとcitation recallを別々の指標として公開しています。precisionは付けた引用が実際に文を支えているか、recallはレポートの主張に必要な根拠が抜けていないかを見ます。一方が高くても、もう一方も同じ水準とは限りません。確認時は、根拠が合わない引用と、引用が抜けた主張を別の問題として記録します。

レポートの一文を確認するとき、二つの引用指標を区別します。
指標確認すること電池比較で行うこと
Citation precision付けた引用はその文を裏付けていますか?各論文の温度・期間・測定値を確認します。
Citation recall主張に必要な根拠がレポートから漏れていませんか?比較表の各行に出典識別子があるか確認します。

レポートの一文を確認するとき、二つの引用指標を区別します。

Citation precision

確認すること
付けた引用はその文を裏付けていますか?
電池比較で行うこと
各論文の温度・期間・測定値を確認します。

Citation recall

確認すること
主張に必要な根拠がレポートから漏れていませんか?
電池比較で行うこと
比較表の各行に出典識別子があるか確認します。
机に並べて広げた三組の論文と筆記具
引用先を開き、条件と主張の範囲が原文と合うか確認します。

100件のコンピューター科学の質問でレポート品質を評価

Ai2は、利用者が作成したコンピューター科学の質問100件からなるScholarQA-CS2でレポートを評価しました。最終版AstaBrief-8Bの平均は87.0で、同じ表のQwen3-8Bの77.3、AstaBrief-8B-SFTの83.7を上回りました。質問に必要な内容と、引用が主張を支えるかを確認した結果です。公式モデルカードの評価表

引用精度は90.5、引用再現率は78.2でした。必要な根拠の欠落を確認する再現率の方が低いため、下書きの確認では引用のない重要な主張から探すとよいでしょう。この質問集の結果であり、韓国語文献の品質は別に確認する必要があります。

同じScholarQA-CS2評価表で比較したスコア
モデル平均スコア評価範囲
Qwen3-8B77.3利用者作成のCS質問100件
AstaBrief-8B-SFT83.7同じ質問集
AstaBrief-8B87.0同じ質問集

同じScholarQA-CS2評価表で比較したスコア

Qwen3-8B

平均スコア
77.3
評価範囲
利用者作成のCS質問100件

AstaBrief-8B-SFT

平均スコア
83.7
評価範囲
同じ質問集

AstaBrief-8B

平均スコア
87.0
評価範囲
同じ質問集

重みと入力文脈を合わせてメモリを準備

BF161は通常、一つのパラメーターを2バイトで保存し、8Bの重みは単純計算で約16GBです。論文抜粋が長くなるとKVキャッシュ2も増えるため、重みを読み込んだ後の空きメモリを確認します。公式カードには推論の最小VRAM3が示されていません。

まず一つの論文の短い抜粋で、モデルの読み込みと回答生成を確認します。その後、論文と抜粋を増やしながらピークメモリを記録すると、機器で扱える分量を見つけやすくなります。

重みを読み込んだ後も入力と生成用のメモリを残します。
項目確認できた値判断時に残る条件
モデル8B, BF16カードに推論最低VRAMの記載なし
重みの計算約16GB(8B×2 bytes)KV cache・runtime・作業領域が追加

重みを読み込んだ後も入力と生成用のメモリを残します。

モデル

確認できた値
8B, BF16
判断時に残る条件
カードに推論最低VRAMの記載なし

重みの計算

確認できた値
約16GB(8B×2 bytes)
判断時に残る条件
KV cache・runtime・作業領域が追加

公式カードのPython経路で実行します

公式モデルカードにはTransformersとvLLMのPython例、推奨prompt fileがあります。研究質問と検索抜粋を`[QUERY]`と`[SECTION_REFERENCES]`へ入れ、コードはカード推奨のtemperature 0.7・top_p 0.95・最大出力4,096 token4を使います。vLLMのbatch入力には`LLM5.generate`を使います。モデルカード · 公式SFT prompt · vLLM generate API

正常に実行されると、生成したレポート本文がterminalに表示されます。`sft_prompt.txt`が見つからない場合は、ダウンロード先のfolderで実行しているか確認します。`ModuleNotFoundError`なら、現在の仮想環境6にpackageが入っているか確認します。モデル読み込み時にメモリ不足になった場合、生成長を短くすれば重みの読み込みも解決すると決めつけず、GPU7・runtime8・入力context長を記録して、精度やモデル選択を再検討します。vLLMのインストールと対応環境

runtimeと公式prompt fileを準備
python -m venv .venv
source .venv/bin/activate
python -m pip install -U transformers accelerate vllm
curl -L -o sft_prompt.txt https://huggingface.co/datasets/allenai/AstaBrief_prompts/resolve/main/sft_prompt.txt
対応GPU・driverのPython環境にvLLMをインストールします。事前に[公式vLLMインストールガイド](https://docs.vllm.ai/en/stable/getting_started/installation/)とモデルカードを確認してください。
検索抜粋からレポートを1回生成
import json
from pathlib import Path

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

model_name = "allenai/AstaBrief_8B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(model=model_name)

query = "Compare the outcomes reported in these papers and state which conditions differ."
section_references = {
    "[P1]": "Paste a relevant quotation from paper 1 here.",
    "[P2]": "Paste a relevant quotation from paper 2 here.",
    "[P3]": "Paste a relevant quotation from paper 3 here.",
}
formatted_sft_prompt = (
    Path("sft_prompt.txt").read_text(encoding="utf-8")
    .replace("[QUERY]", query)
    .replace("[SECTION_REFERENCES]", json.dumps(section_references, ensure_ascii=False))
)
messages = [{"role": "user", "content": formatted_sft_prompt}]
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
sampling = SamplingParams(
    temperature=0.7, top_p=0.95, max_tokens=4096,
    stop_token_ids=[tokenizer.eos_token_id],
)
outputs = llm.generate([text], sampling)
print(outputs[0].outputs[0].text.strip())
`sft_prompt.txt`の二つのplaceholderに実際の質問と文献抜粋を入れます。`[P1]`と`[P2]`は出典IDの例です。snippetをそのまま実行すると説明用placeholderが送られるため、レポートに使う資料へ置き換えてください。
論文の隣のノートパソコンに開いたレポートと比較メモ
比較表の各値を、根拠となる論文と一緒に確認します。

完成したレポートを3本の原文と照合します

電池の比較では、まずレポートの表に論文3本すべてが含まれているか確認します。次に各行の温度と観察期間を原文と照合し、最後に本文の記述が表の数値を支える論文を引用しているか確認します。値に違いがあれば原文の表や本文までたどれるよう、出典識別子を残します。

論文に複数の試験温度や容量測定時点がある場合、モデルが一つだけ選んで記載することがあります。「モデルが誤った」とだけ記録せず、研究質問に必要な条件が入力抜粋に含まれていたか確認します。抜けていれば検索段階で該当箇所を追加し、入力にあった条件がレポートで変わっていれば引用文を修正します。

レビューでは検索漏れとレポート記述の誤りを区別します。
見つかった問題最初に確認する場所次の対応
比較対象の論文が抜けている検索結果と抜粋一覧検索語を修正し関連箇所を追加します。
温度・期間が原文と異なる引用された表・本文条件を抽出し直し、該当文を修正します。
主張に引用がないレポート文と出典識別子根拠のある内容に限定するか引用を付けます。

レビューでは検索漏れとレポート記述の誤りを区別します。

比較対象の論文が抜けている

最初に確認する場所
検索結果と抜粋一覧
次の対応
検索語を修正し関連箇所を追加します。

温度・期間が原文と異なる

最初に確認する場所
引用された表・本文
次の対応
条件を抽出し直し、該当文を修正します。

主張に引用がない

最初に確認する場所
レポート文と出典識別子
次の対応
根拠のある内容に限定するか引用を付けます。

検索結果とメモリを確認してからローカルへ移します

未公開研究や内部文献を外部API9へ送れない場合、公開重みを自前の機材で動かせます。まず公開論文3本で検索・作成・引用確認の流れを試し、実際の入力長でモデル読み込み時のメモリとレポート全体の時間を記録します。その結果と組織のデータ方針を確認してから内部資料を使います。

人が引用を確認する研究下書きを繰り返し作るなら、検索システムとAstaBriefを接続し、公開論文3本で試します。検索範囲・比較表の条件・引用が各文を支えているかを合格基準にすると、実務へ入れる前に改善点を特定できます。

用語の注釈

  1. BF16 — モデルの数値を保存・計算する16ビット浮動小数点形式です。利用可否はハードウェアと実行環境によります。

    本文に戻る
  2. KVキャッシュ — 過去トークンのAttention用キー・バリューを保存し、後続トークン生成で再利用するメモリです。容量はコンテキスト長やバッチサイズで変わります。

    本文に戻る
  3. VRAM — グラフィックカードのGPUが使うメモリです。モデルの重みや計算途中の値を保存します。

    本文に戻る
  4. トークン — モデルが入力や出力を分けて処理する単位です。

    本文に戻る
  5. 大規模言語モデル — 大量のテキストデータで学習し、テキストを処理・生成する言語モデルです。機能や対応入力はモデルごとに異なります。

    本文に戻る
  6. Python仮想環境 — プロジェクトごとにPythonパッケージを分けて導入する環境です。パッケージのバージョンの衝突を減らせます。

    本文に戻る
  7. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  8. ランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあります。

    本文に戻る
  9. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る