LLM 앙상블을 활용한 고성능 자동화 Abstract Screening
High-performance automated abstract screening with large language model ensembles
TL;DR Highlight
GPT-4, Claude, Gemini 등 6개 LLM으로 논문 초록 스크리닝을 자동화했더니 인간 연구자보다 정확하고 워크로드를 최대 99% 줄였다.
Who Should Read
체계적 문헌 고찰(Systematic Review) 파이프라인을 구축하거나, 대량의 문서를 기준에 따라 자동 분류하는 시스템을 개발하는 백엔드/ML 개발자. 의료·연구 도메인에서 LLM 기반 문서 필터링 자동화를 검토 중인 팀.
Core Mechanics
- GPT-3.5 Turbo, GPT-4 Turbo, GPT-4o, Llama 3 70B, Gemini 1.5 Pro, Claude Sonnet 3.5 총 6개 모델을 23개 Cochrane 체계적 문헌 고찰에 적용해 비교
- Zero-shot(예시 없이 바로 분류) 방식으로 이진 분류(포함/제외)를 수행했는데, 민감도(Sensitivity) 최대 1.000으로 인간 연구자(0.775)를 압도
- 균형 잡힌 개발 데이터셋(n=800)에서는 정밀도(Precision)도 최대 0.927로 인간(0.911)보다 높음
- 실제 검색 결과(n=119,695, 클래스 불균형 심각)에서는 정밀도가 0.004~0.096으로 급락 — 실전 적용 시 false positive 주의 필요
- LLM 단독이 아닌 LLM-인간, LLM-LLM 앙상블(여러 모델/사람 판단을 조합하는 방식) 66가지를 실험했고, 앙상블은 완벽한 민감도(1.0) 유지하면서 워크로드 37~99% 감소
- 도메인마다 성능 편차가 크기 때문에 자율 배포 전에 도메인별 검증 필수
Evidence
- 개발 데이터셋(n=800)에서 LLM 최고 민감도 1.000 vs 인간 최고 0.775, 균형 정확도(Balanced Accuracy) 0.904 vs 0.865
- 전체 데이터셋(n=119,695)에서 LLM-LLM 앙상블 최대 정밀도 0.1450, 워크로드 감소 범위 37.55%~99.11%
- 앙상블 66개 조합 모두 개발 데이터셋 기준 완벽한 민감도(1.0) 달성, 최대 정밀도 0.458
How to Apply
- 대량 논문 스크리닝 시스템을 만든다면, 단일 LLM 대신 2개 이상의 LLM을 앙상블로 구성해 둘 다 '제외' 판정할 때만 제외 처리 → 민감도 100% 유지하면서 검토 물량을 절반 이하로 줄일 수 있음
- 클래스 불균형(관련 논문이 전체의 1% 미만)이 심한 실전 환경에서는 정밀도가 급락하므로, 모델 출력에 신뢰도 임계값(threshold)을 설정하고 도메인별로 따로 캘리브레이션(조정)해야 함
- 완전 자동화가 부담스럽다면 LLM-인간 앙상블 방식 적용 — LLM이 '포함' 판정한 것만 인간이 재검토하면 되므로, 인간 검토 물량을 대폭 줄이면서 최종 결정권은 사람이 유지
Code Example
# LLM 앙상블 방식 Abstract Screening 예시 (OpenAI + Anthropic)
import openai
import anthropic
INCLUSION_PROMPT = """
You are a systematic review assistant. Given the following abstract, decide if it meets the inclusion criteria.
Inclusion criteria:
- {inclusion_criteria}
Exclusion criteria:
- {exclusion_criteria}
Abstract:
{abstract}
Respond with ONLY 'INCLUDE' or 'EXCLUDE'.
"""
def screen_with_gpt4o(abstract, inclusion_criteria, exclusion_criteria):
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": INCLUSION_PROMPT.format(
abstract=abstract,
inclusion_criteria=inclusion_criteria,
exclusion_criteria=exclusion_criteria
)}],
temperature=0
)
return response.choices[0].message.content.strip()
def screen_with_claude(abstract, inclusion_criteria, exclusion_criteria):
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-3-5-20241022",
max_tokens=10,
messages=[{"role": "user", "content": INCLUSION_PROMPT.format(
abstract=abstract,
inclusion_criteria=inclusion_criteria,
exclusion_criteria=exclusion_criteria
)}]
)
return response.content[0].text.strip()
def ensemble_screen(abstract, inclusion_criteria, exclusion_criteria):
"""
앙상블 전략: 하나라도 INCLUDE면 포함 (민감도 최대화)
두 모델 모두 EXCLUDE여야 최종 제외
"""
gpt_result = screen_with_gpt4o(abstract, inclusion_criteria, exclusion_criteria)
claude_result = screen_with_claude(abstract, inclusion_criteria, exclusion_criteria)
# 보수적 앙상블: 하나라도 INCLUDE면 포함 (민감도 우선)
if "INCLUDE" in gpt_result or "INCLUDE" in claude_result:
return "INCLUDE", {"gpt4o": gpt_result, "claude": claude_result}
return "EXCLUDE", {"gpt4o": gpt_result, "claude": claude_result}
# 사용 예시
result, details = ensemble_screen(
abstract="This RCT evaluated...",
inclusion_criteria="Randomized controlled trials in adult patients with Type 2 diabetes",
exclusion_criteria="Non-English studies, animal studies, reviews"
)
print(f"Decision: {result}, Details: {details}")Terminology
Original Abstract (Expand)
Abstract Objective Abstract screening is a labor-intensive component of systematic review involving repetitive application of inclusion and exclusion criteria on a large volume of studies. We aimed to validate large language models (LLMs) used to automate abstract screening. Materials and Methods LLMs (GPT-3.5 Turbo, GPT-4 Turbo, GPT-4o, Llama 3 70B, Gemini 1.5 Pro, and Claude Sonnet 3.5) were trialed across 23 Cochrane Library systematic reviews to evaluate their accuracy in zero-shot binary classification for abstract screening. Initial evaluation on a balanced development dataset (n = 800) identified optimal prompting strategies, and the best performing LLM-prompt combinations were then validated on a comprehensive dataset of replicated search results (n = 119 695). Results On the development dataset, LLMs exhibited superior performance to human researchers in terms of sensitivity (LLMmax = 1.000, humanmax = 0.775), precision (LLMmax = 0.927, humanmax = 0.911), and balanced accuracy (LLMmax = 0.904, humanmax = 0.865). When evaluated on the comprehensive dataset, the best performing LLM-prompt combinations exhibited consistent sensitivity (range 0.756-1.000) but diminished precision (range 0.004-0.096) due to class imbalance. In addition, 66 LLM-human and LLM-LLM ensembles exhibited perfect sensitivity with a maximal precision of 0.458 with the development dataset, decreasing to 0.1450 over the comprehensive dataset; but conferring workload reductions ranging between 37.55% and 99.11%. Discussion Automated abstract screening can reduce the screening workload in systematic review while maintaining quality. Performance variation between reviews highlights the importance of domain-specific validation before autonomous deployment. LLM-human ensembles can achieve similar benefits while maintaining human oversight over all records. Conclusion LLMs may reduce the human labor cost of systematic review with maintained or improved accuracy, thereby increasing the efficiency and quality of evidence synthesis.