把答案拆成原子事实逐条核:ChatGPT 传记仅 58% 属实

2026-08-05

FActScore 把长文本生成拆成一条条「原子事实」,逐个去知识源核验支持与否,算出受支持比例;它发现 ChatGPT 的人物传记只有 58% 站得住,写到冷门人物更跌到 16%。

这篇在解决什么

大模型写长文本(传记、摘要、研报)时,事实错误不是「整段对或整段错」,而是一段话里真伪混杂:同一个句子里可能既有一条站得住的事实,又夹带一条编造的。这让传统评估束手无策。按句打「对/错」的二分标签会把半真半假的句子一刀切,要么全算对、要么全算错;请人逐句核验又慢又贵。FActScore 的出发点是:要量事实性,先把粒度切到足够细。

方法

两个核心动作。第一,把一段生成拆成「原子事实」(atomic fact),每条只承载一个可真可伪的信息点,比如「Bridget Moynahan 是演员」「她毕业于某某学院」。一个句子常常拆出多条原子事实,ChatGPT 平均每句拆出 4.4 条。拆到这个粒度,半真半假才有办法分别计分。

第二,拿一个可靠的知识源(论文用的是英文维基百科)逐条核验每条原子事实是否被支持,最后算「受支持的原子事实占比」,这就是 FActScore。它只量精度(precision),不量召回(recall):一个动不动就拒答、写得很少的模型可能分数偏高,这不一定是好事。

为了让人不用亲手核也能用,论文还训了一个自动评估器:先用检索从知识源里捞相关段落,再用语言模型判定每条原子事实是否被支持。这个估计器对人类标注的误差率低于 2%。

结果

人物传记任务上,三家当时的商用模型事实精度都不高:

模型是否检索FActScore
InstructGPT42.5%
ChatGPT58.3%
PerplexityAI71.5%

带搜索引擎的 PerplexityAI 最高,但即便能直接抄维基也只有 71.5%,因为它常抄错搜索结果。更扎眼的是「稀有度效应」:写到常见人物时 ChatGPT 有 80% 的事实站得住,一旦写到冷门人物就跌到 16%,模型在长尾上几乎是在编。

自动评估器放出去评了 6500 篇、覆盖 13 个开源/商用模型的生成(人工评要花约 2.6 万美元)。结论之一:同是 7B 量级,Alpaca、Vicuna(约 40%)明显比 MPT-Chat(30%)、StableLM(17%)准,训练配方比参数量更决定事实性。

为什么重要

FActScore 把「这模型瞎不瞎」从一个模糊印象变成了一个可复现的数字,而且粒度细到能告诉你错在哪一类事实上。它直接成了此后几年事实性评测的事实标准,后续大批模型论文都用它报数。放到 2026 年看,当 agent 系统开始批量产出长报告、长研究综述时,这套「拆原子事实、逐条核、算占比」的思路依然是判断产出可不可信的最直接框架,区别只是知识源从维基换成了更专门的检索库。

诚实地说,FActScore 是个评测工具,不直接让模型变好;但它让「事实性」第一次有了可比的刻度,后来很多减少幻觉的工作都建立在「能测」之上。

局限与存疑

作者自己点明的:所有实验都在人物传记加维基百科这一个域里做,因为传记事实客观、维基覆盖好。换到时事新闻(知识源得换成新闻集)或科学发现(换成论文库)时,假设是否还成立没有充分验证。其次,只量精度不量召回,一个爱拒答的模型会被高估。另外「是否被支持」的判定依赖知识源的质量和时效,维基写错或没收录时,估计器跟着错。

论文也承认,估计器在不同被测模型上偏差并不一致,在 PerplexityAI 这种带搜索、输出不确定的模型上更难评准,换一批模型可能要重新校准。

术语

原文与代码

社区讨论

全部论文解读