무엇인가
Claimify는 Microsoft Research의 Dasha Metropolitansky와 Jonathan Larson이 2025년 2월 arXiv에 올린 「Towards Effective Extraction and Evaluation of Factual Claims」(arXiv 2502.10855, ACL 2025 본회의 장문 논문)의 주장 추출기입니다. LLM의 긴 답변을 사실 확인하려면 먼저 문장을 '확인할 수 있는 주장'으로 쪼개야 하는데(분해 후 검증), 쪼개는 방법에 따라 같은 답변의 사실성 점수가 달라진다는 보고가 이어졌고 쪼개기 자체를 재는 표준은 없었습니다. 논문은 두 가지를 내놓습니다.
- 평가 틀. 좋은 주장의 세 조건 — 수반(원문이 참이면 주장도 참), 커버리지(확인 가능한 정보는 빠짐없이, 확인 불가 정보는 대놓고 넣지 않기), 탈맥락화(떼어 놓아도 같은 뜻) — 를 LLM 프롬프트로 자동 측정합니다.
- 추출기. 문장마다 결과는 확인할 내용 없음, 모호성 해소 불가, 주장 목록 중 하나입니다. 해석이 갈리는데 문맥으로도 정할 수 없으면 뽑지 않고 물러섭니다. 기존 방법들은 모호성을 무시하거나 언제나 풀 수 있다고 가정했습니다.
주장의 기준은 '확인할 가치'가 아니라 '확인할 수 있음'이고, 참일 필요는 없습니다. FActScore 이래의 원자성은 끝없이 쪼갤 수 있고 판정 성능을 일관되게 올리지 못했다며 평가에서 뺐습니다. Microsoft는 "연구 목적으로만 쓰이며 상용 제공되지 않는다"고 밝혔고 공식 코드는 없지만, 프롬프트 전문이 부록 N.1에 있습니다. 사내에서는 GraphRAG 논문 2판(주장 47,075개로 포괄성·다양성 측정)과 환각 추적기 VeriTrail(ICLR 2026)의 첫 단계로 쓰였습니다.
어떻게 동작하나
답변을 문단·문장으로 자르고(NLTK), 문장마다 앞뒤 문장으로 문맥을 만들어 세 관문을 통과시킵니다.
| 논문 설정 | 선별 | 모호성 해소 | 분해 |
|---|---|---|---|
| 앞 문장 / 뒤 문장 | 5 / 5 | 5 / 0 | 5 / 0 |
| 생성 횟수 / 통과에 필요한 성공 | 3 / 2 | 3 / 2 | 1 / 1 |
| temperature · 형식 오류 재시도 | 0.2 · 2 | 0.2 · 2 | 0 · 2 |
머리말인지는 뒤를 봐야 알기에 선별에만 뒷문장을 주고, 나머지 단계는 뒤 정보로 뜻을 바꾸지 않게 뺍니다. 문장 하나에 LLM 호출은 최대 7번입니다. 평가 틀에서는 커버리지를 문장 속 요소 단위로 세고(확인 불가 요소는 대놓고 넣었을 때만 벌점), 탈맥락화를 맥락을 최대한 넣은 판본 cmax와 원래 주장 c로 각각 증거를 찾아 판정이 뒤집히는지로 잽니다.
논문 결과(코파일럿 영어 답변 396개·6,490문장, 사람 라벨로 63%가 '사실 있음', 추출·채점 모두 GPT-4o):
| 방법 | 주장 뽑은 문장 | 수반률 | 문장 재현율 V / UV |
|---|---|---|---|
| Claimify | 58.3% | 99.0% | 93.9 / 88.3 |
| DnD | 96.5% | 89.1% | 99.6 / 2.7 |
| SAFE | 98.7% | 96.6% | – |
| VeriScore | 40.4% | 99.2% | 67.8 / 97.9 |
DnD·SAFE는 의견·조언까지 뽑는 '다 뽑는 기계', VeriScore는 사실 있는 문장 셋 중 하나를 버리는 '아끼는 기계'였고, 두 재현율이 함께 높은 것은 Claimify뿐이었습니다(요소 매크로 F1 83.7, 2위 VeriScore 62.5). 단계 제거에서는 선별을 빼면 83.7 → 54.4로 가장 크게 무너졌고, 모호성 해소 없이 75.9, 다시 쓰기 없이 74.7이었습니다. 탈맥락화는 바람직한 결과 80.6% 대 78.2~78.4%의 접전이었고 판정이 어긋나는 결과는 모든 방법에 11.5~13.5% 남았습니다. '해소 불가' 비율은 GPT-4o 3.2%, Mistral-large 5.4%, DeepSeek-V3 2.4%였습니다.
빠른 시작
공식 코드는 없으므로 부록 N.1의 세 프롬프트와 위 설정표로 구성합니다. 사람 문장 라벨(주장 목록은 없음)은 공개돼 있습니다.
huggingface-cli download microsoft/claimify-dataset --repo-type dataset --local-dir claimify-dataset
코어닷투데이는 프롬프트를 영어 원문 그대로 두고 "출력은 한국어로" 한 줄만 덧붙여 로컬 Ollama 모델로 돌렸습니다. 분해 프롬프트는 영어 예시 열 개가 붙은 약 1만 7천 자라 출력 한도 1,500토큰에서는 잘려 파싱이 실패했습니다. 잘린 출력을 '보류'로 세지 말고 한도 3,000토큰 이상과 재시도를 둡니다. 번호 목록의 '2.'가 한 문장으로 잘리는 문장 분리 오류도 확인합니다.
코어닷투데이 실측
2026년 11월, 로컬 qwen3.5 9B(Ollama, 생각 모드 끔)로 쟀습니다. 정답 라벨과 채점은 사람이 아니라 Claude 서브에이전트가 부록 C.4 지침으로, 추출 결과와 방법을 가린 채 붙였습니다.
모호한 한국어 문장 28개(문맥으로도 안 풀림 12, 문맥으로 풀림 10, 모호성 없음 6, 3번 중 2번 '해소 불가'면 보류):
- Claimify는 24/28을 맞혔고 괜히 물러선 경우는 0건이었습니다. "이듬해 그는 노량 해전에서 전사했다"는 '1598년 이순신 장군은…'으로 풀었습니다. 프롬프트 한 번으로 뽑는 방법은 28개 모두에서 주장을 냈고, "한국과 일본의 수출과 수입이 각각 5%와 3% 늘었다"를 한 가지 읽기로 못 박았습니다.
- 주어가 없으면 덜 물러섰습니다. 지시어만 넣고 뺀 짝 문장 8쌍에서 보류 표가 '그는'이 있을 때 20/24표, 주어 생략 시 9/24표였습니다. "사퇴 의사를 밝혔다"는 세 번 모두 앞 문장의 두 사람을 함께 주어로 채웠습니다.
같은 9B가 쓴 한국어 답변 6개(89문장, 43.8%가 '사실 있음'), 수반·홀로 서기는 방법별 무작위 주장 45개:
| 방법 | 보류 | 문장 정확도 | 재현율 V / UV | 수반 | 홀로 서기 |
|---|---|---|---|---|---|
| 단순 분해 (FActScore식, 문맥 없음) | – | 59.6% | 97.4 / 30.0 | 41/45 | 11/45 |
| 한 번에 추출 (VeriScore식) | – | 71.9% | 100 / 50.0 | 44/45 | 33/45 |
| Claimify 단계마다 1회 | 9 | 85.0% | 76.5 / 91.3 | 35/45 | 37/45 |
| Claimify 3회 중 2회 (논문 기본값) | 3 | 89.5% | 83.3 / 94.0 | 34/45 | 35/45 |
- 문장 고르기는 재현됐습니다. 순서가 논문과 같았고 보류율 3.4%는 논문 GPT-4o(3.2%)와 거의 같았습니다.
- 수반은 재현되지 않았습니다. 76~78%로 논문의 99%는커녕 한 번에 추출보다 낮았습니다. 틀린 주장의 절반 가까이가 "약물 치료법이나 수술 방법"을 [수술 방법을 제시한다]로 만드는 'A나 B' 쪼개기였습니다. 대괄호는 주장의 80~90%에 붙었고, 선별에서 뺀 평가가 대괄호로 돌아오거나 틀린 정보("[제주도 동부 지역]의 대정읍")가 들어가기도 했습니다.
- '세 번 뽑아 두 번'이 핵심 부품이었습니다. 답변 속 실제 오류 8개(세종의 악학궤범 편찬, 자격루는 해시계 등)가 주장으로 올랐는지 세어 보니 1회 설정은 5개를 놓쳤고 3회 설정은 7개를 살렸습니다. 시간은 문장당 24초에서 60초로 늘었습니다. 한 번에 추출은 8개를 모두 올렸습니다. 3회가 놓친 "한 달 만에 서울 점령"(실제 3일)은 1회 설정에서 '한 달 이내'로 바뀌어 거짓이 참 주장이 됐습니다.
언제 쓰고, 언제 피하나
| 상황 | 판단 |
|---|---|
| 긴 AI 답변·보고서를 주장 단위로 사실 확인 | 선별 → 모호성 해소 → 분해 구조. 최소한 선별은 따로 둔다 |
| 틀린 말을 확인하는 것보다 '모른다'가 나은 서비스 | 기권 경로가 맞는다. 보류·탈락 문장은 사람 검토 대기열로 |
| 비용 때문에 다수결을 1회로 줄이고 싶음 | 줄이지 않는다. 틀린 사실이 검증대에서 빠진다 |
| 작은 로컬 모델로 분해까지 맡김 | 수반을 믿지 않는다. 'A나 B'는 쪼개지 말라는 규칙, 수치·고유명사 보존을 코드로 확인 |
| 한국어 주어 생략 문장, 시점이 중요한 사실 | 모호성 검사로 잘 안 잡힌다. 주어 유무·'시점 비었나'를 별도로 검사 |
한계와 주의
- 수상작이 아닙니다. ACL 2025 본회의 장문 논문(1권 6996–7045쪽)이고 어떤 수상 목록에도 없습니다. '최우수 논문'으로 소개된 글이 있으니 인용할 때 주의합니다.
- 채점자도 정답도 저자 쪽입니다. 수반·요소·판정을 모두 GPT-4o 프롬프트가 했고 추출기도 GPT-4o였습니다. 80개 표본 검토와 라벨 이견 정리도 저자가 했고, 독립 재현은 드뭅니다. '해소 불가' 문장은 문장 수준 평가에서 빠졌습니다.
- '커버리지 87.9%'는 정확도입니다. 주 지표인 요소 매크로 F1은 83.7입니다.
- 데이터셋 하나, 모델이 바뀌면 순위도 흔들립니다. DeepSeek-V3에서는 VeriScore가 요소 커버리지 76.6으로 Claimify(76.7)와 0.1점 차였고, 2025년 CLEF CheckThat! 주장 정규화에서 Claimify식 프롬프팅(METEOR 0.331)은 미세조정 FLAN-T5(0.557)에 졌습니다.
- 시간 모호성은 못 잡습니다. "캘리포니아의 실업률이 감소했다"는 통과하지만 기간이 없어 확인할 수 없습니다. 해소 불가 모호성이 하나만 있어도 확인 가능한 부분까지 문장 전체가 빠집니다.
- 평가 지표와 팩트체킹 사이에 틈이 있습니다. 커버리지가 높아도 빠진 조각이 하필 틀린 조각이면 실패합니다. 환각은 '해시계인', '한 달 만에'처럼 꾸밈과 사실의 경계에 숨어 있었습니다.
- 위 실측은 작습니다. 정답·채점은 Claude, 답변 작성과 추출은 같은 9B, 오류 표본은 답변 세 개의 8건뿐입니다.




