새로 나온 모델 · 2026.10.05
AstaBrief 8B: 로컬 AI로 논문 근거 보고서 만들기
검색한 논문 근거를 연결해 검토 가능한 보고서로 정리해요.
AstaBrief-8B는 연구 질문과 논문 발췌를 받아 인용이 포함된 보고서를 작성하는 모델이에요. 검색 도구로 자료를 모은 뒤 모델에 전달하면, 여러 논문의 주장과 근거를 한 초안으로 정리해요. 공식 모델은 Apache-2.0으로 공개됐고 Transformers와 vLLM으로 실행할 수 있어요.
연구 질문과 논문 발췌를 넣으면 인용 보고서가 나와요
Ai2는 2026-10-02 `allenai/AstaBrief_8B`를 Apache-2.0으로 공개했어요. 이 모델은 연구 질문과 검색된 과학 문헌 발췌를 받아 근거를 인용한 보고서를 작성해요. 예를 들어 여러 논문에서 배터리 열화 요인을 비교하려면 먼저 검색 도구로 관련 논문과 문단을 모은 뒤 질문과 발췌를 AstaBrief에 전달해요. 모델 자체가 웹이나 학술 데이터베이스를 검색하지는 않아요. Ai2 공식 발표 · 모델 카드
보고서의 비교 대상과 핵심 조건이 검색 결과에 모두 들어 있는지 먼저 확인해요. 그다음 모델이 발췌를 요약하고 인용한 문장을 원문과 대조하면, 검색 누락과 작성 오류를 따로 고칠 수 있어요.
검색 단계와 보고서 작성 단계를 분리해요
작업 예시는 ‘리튬이온 배터리의 고온 보관이 용량 저하에 미치는 영향을 연구한 논문 세 편을 비교하고, 서로 다른 시험 온도와 관찰 기간을 표로 정리한다’로 고정해 볼게요. 검색기가 찾은 자료에서는 제목, 연도, DOI 또는 URL, 실제 발췌 문장을 함께 보관해요. 발췌마다 출처 식별자를 붙이면 보고서의 인용 표식과 원문을 다시 연결하기 쉬워요.
모델 입력에는 연구 질문, 원하는 보고서 절, 각 발췌, 출처 식별자를 함께 넣어요. 공식 SFT 프롬프트는 `[QUERY]`와 `[SECTION_REFERENCES]`를 받도록 만들어져 있어 질문과 근거를 그대로 연결하기 편해요. AstaBrief 모델 카드

인용이 붙은 문장과 근거의 범위를 함께 읽어요
인용 번호가 문장 끝에 있다고 그 문장의 모든 내용이 원문에 들어 있는 것은 아니에요. 배터리 보관 온도가 45°C인 연구 결과를 25°C 환경의 일반적인 열화 속도로 넓혀 쓰면, 출처는 맞아도 결론의 범위가 달라질 수 있어요. 보고서의 비교 문장마다 인용된 논문을 열고 온도, 표본, 기간, 측정 지표가 실제로 같은지 대조해요.
Ai2는 출처에 대한 주장을 평가할 때 citation precision과 citation recall을 별도 지표로 공개했어요. precision은 붙은 인용이 실제 문장을 뒷받침하는지를, recall은 보고서의 주장에 필요한 근거가 빠지지 않았는지를 살펴보는 지표예요. 둘 중 하나가 높아도 다른 하나가 같은 수준이라고 볼 수 없어요. 결과를 검토할 때에는 잘못 연결된 출처와 인용이 빠진 주장을 서로 다른 문제로 기록해요.
| 지표 | 묻는 내용 | 배터리 비교에서 할 일 |
|---|---|---|
| 인용 정밀도 | 붙은 인용이 해당 문장을 뒷받침하나요? | 각 논문에서 온도·기간·측정값을 확인해요. |
| 인용 재현율 | 주장의 근거가 보고서에 빠지지 않았나요? | 표의 각 비교 행에 출처 식별자가 있는지 확인해요. |
보고서 한 문장을 고칠 때 인용의 두 지표를 구분해요.
인용 정밀도
- 묻는 내용
- 붙은 인용이 해당 문장을 뒷받침하나요?
- 배터리 비교에서 할 일
- 각 논문에서 온도·기간·측정값을 확인해요.
인용 재현율
- 묻는 내용
- 주장의 근거가 보고서에 빠지지 않았나요?
- 배터리 비교에서 할 일
- 표의 각 비교 행에 출처 식별자가 있는지 확인해요.

컴퓨터과학 질문 100개에서 보고서 품질을 평가했어요.
Ai2는 사용자가 작성한 컴퓨터과학 질문 100개로 구성된 ScholarQA-CS2에서 보고서를 평가했어요. 최종 AstaBrief-8B의 평균 점수는 87.0으로, 같은 표의 Qwen3-8B 77.3과 AstaBrief-8B-SFT 83.7보다 높았어요. 질문에 필요한 내용을 다루는지와 인용이 주장을 뒷받침하는지를 함께 살펴본 결과예요. 공식 모델 카드의 평가표
인용 정밀도는 90.5, 인용 재현율은 78.2였어요. 필요한 주장에 근거가 빠지지 않았는지를 확인하는 재현율이 더 낮았으니, 초안을 검토할 때 인용이 없는 핵심 주장부터 찾아보면 좋아요. 평가는 이 질문 집합에서 나온 결과이며 한국어 문헌의 품질은 별도로 확인해야 해요.
| 모델 | 평균 점수 | 평가 범위 |
|---|---|---|
| Qwen3-8B | 77.3 | 사용자 작성 CS 질문 100개 |
| AstaBrief-8B-SFT | 83.7 | 같은 질문 집합 |
| AstaBrief-8B | 87.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·런타임·작업 공간 추가 |
가중치를 올린 뒤에도 입력과 생성에 쓸 메모리를 남겨야 해요.
모델
- 확인된 값
- 8B, BF16
- 판단할 때 남는 조건
- 모델 카드에 추론 최소 VRAM 없음
가중치 계산
- 확인된 값
- 약 16GB (8B × 2 bytes)
- 판단할 때 남는 조건
- KV cache·런타임·작업 공간 추가
Python에서 공식 모델 카드를 따라 실행해요
공식 모델 카드는 Transformers와 vLLM Python 예시, 권장 프롬프트 파일을 제공해요. 연구 질문과 검색한 발췌를 `[QUERY]`, `[SECTION_REFERENCES]` 자리에 넣고, 아래 코드는 카드 권장값인 temperature 0.7·top_p 0.95·최대 출력 4,096 token4을 사용해요. vLLM의 배치 입력은 `LLM5.generate`를 사용해요. 모델 카드 · 공식 SFT 프롬프트 · vLLM generate API
정상 실행되면 터미널에 모델이 작성한 보고서 본문이 출력돼요. `sft_prompt.txt`를 찾지 못한다는 오류가 나면 파일을 내려받은 작업 폴더에서 실행하는지 확인하고, `ModuleNotFoundError`는 현재 가상 환경에 패키지가 설치됐는지 확인해요. 모델을 불러오는 중 메모리 부족이 나면 생성 길이만 줄여 해결됐다고 단정하지 말고, GPU6 종류·실행기·입력 문맥 길이를 기록해 더 작은 정밀도 또는 모델 선택을 다시 검토해요. vLLM 설치·지원 환경
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.txtimport 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())
완성된 보고서는 세 편의 원문과 대조해요
배터리 비교 작업에서는 먼저 보고서의 표에 논문 세 편이 모두 들어갔는지 확인해요. 다음으로 각 행의 온도와 관찰 기간을 원문과 비교하고, 마지막으로 본문에서 표의 값을 근거로 쓴 문장이 같은 출처를 가리키는지 확인해요. 수치가 하나라도 달라지면 원문 표·본문 중 어느 부분에서 가져왔는지 찾을 수 있도록 출처 식별자를 그대로 유지해요.
한 논문에 시험 온도와 용량 측정 시점이 여러 개면 모델이 하나만 선택해 보고서에 적을 수 있어요. 이 경우 ‘모델이 틀렸다’고만 기록하지 말고, 연구 질문에 필요한 조건이 입력 발췌에 포함되어 있었는지 먼저 봐요. 조건이 빠졌다면 검색 단계에서 관련 문단을 더 가져오고, 조건이 이미 있는데 값이 바뀌었다면 인용 문장을 고쳐요.
| 발견한 문제 | 먼저 볼 곳 | 다음 조치 |
|---|---|---|
| 비교해야 할 논문이 빠짐 | 검색 결과와 발췌 목록 | 검색 질의를 고치고 관련 문단을 추가해요. |
| 온도·기간이 원문과 다름 | 인용된 표·본문 문장 | 조건을 다시 추출하고 해당 문장을 고쳐요. |
| 주장에 인용이 없음 | 보고서 문장과 출처 식별자 | 근거가 있는 문장으로 제한하거나 인용을 붙여요. |
초안 검토에서 검색 누락과 보고서 오류를 구별해요.
비교해야 할 논문이 빠짐
- 먼저 볼 곳
- 검색 결과와 발췌 목록
- 다음 조치
- 검색 질의를 고치고 관련 문단을 추가해요.
온도·기간이 원문과 다름
- 먼저 볼 곳
- 인용된 표·본문 문장
- 다음 조치
- 조건을 다시 추출하고 해당 문장을 고쳐요.
주장에 인용이 없음
- 먼저 볼 곳
- 보고서 문장과 출처 식별자
- 다음 조치
- 근거가 있는 문장으로 제한하거나 인용을 붙여요.
검색 결과가 충분하고 메모리 여유가 있을 때 로컬로 옮겨요
기관 안에서 공개 전 연구나 내부 문헌을 다루고 외부 API7로 보내지 않아야 한다면, 공개 가중치를 자체 장비에서 실행할 수 있어요. 먼저 공개 논문 세 편으로 검색·작성·인용 확인 흐름을 점검하고, 실제 입력 길이에서 모델 로드 메모리와 전체 보고서 완료 시간을 기록해요. 이 결과와 기관의 데이터 정책을 확인한 뒤 내부 자료를 넣으면 돼요.
반복해서 연구 초안을 만들고 사람이 인용을 검토하는 업무라면, 검색기와 AstaBrief를 연결해 세 편의 공개 논문으로 시험해요. 검색 누락, 비교 표의 조건, 인용이 본문을 뒷받침하는지를 통과 기준으로 두면 실제 업무에 넣기 전 개선 지점을 찾을 수 있어요.
용어 각주
BF16 — 모델의 수를 저장하고 계산하는 16비트 부동소수점 형식입니다. 사용 가능 여부는 하드웨어와 실행 프로그램에 달려 있습니다.
본문으로 돌아가기KV 캐시 — 어텐션에서 이전 토큰의 키·값을 저장해 다음 토큰 생성 때 재사용하는 메모리입니다. 문맥 길이와 배치 크기에 따라 용량이 달라집니다.
본문으로 돌아가기VRAM — 그래픽카드의 GPU가 사용하는 메모리입니다. 모델 가중치와 계산 중간값을 저장합니다.
본문으로 돌아가기토큰 — 모델이 입력이나 출력을 나누어 처리하는 단위입니다.
본문으로 돌아가기대규모 언어 모델 — 대량의 텍스트 데이터로 학습해 텍스트를 처리하고 생성하는 언어 모델입니다. 기능과 지원 입력은 모델마다 다릅니다.
본문으로 돌아가기GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.
본문으로 돌아가기API — 프로그램의 기능을 다른 코드에서 호출하기 위한 약속된 인터페이스입니다.
본문으로 돌아가기
