大模型的幻觉问题,靠"感觉它最近靠谱多了"是管不住的。工程上要把事实性变成可度量指标,就得给模型出一套"事实考卷":题目覆盖业务关心的事实类型,判分标准清晰,能稳定复跑。这篇讲讲事实性评测集的构建:题目来源、标注规范、自动判分与人工复核的配合,以及它和 RAG 校验链的本质区别。

一、题目来源:从业务风险倒推

第一原则是题目必须来自真实业务风险。先列出模型在生产环境最不能错的事实类型:客服场景是订单状态、退款政策、产品参数;金融场景是利率、费率、法规条款。按"错了的代价"给事实类型分级,代价高的多出题。

题目来源有三类。一是线上 bad case 回填:历史上答错过、被投诉过的事实问题,原样或改写后收录,含金量最高。二是知识库反向出题:从业务知识库、产品文档抽取关键事实改写成问答,重点覆盖"易混淆点",比如相似产品的参数差异、政策新旧版本差异。三是借鉴公开事实性评测集的出题思路和题型,但题目按业务重写,直接照搬容易和训练数据撞车。

题型建议混合:封闭式问题(有唯一标准答案)用于自动判分;开放式问题用于抽查表述严谨性。另外要专门设计"陷阱题":问知识库里没有的信息、问已过期的旧政策、问本身就是伪命题的问题,看模型是承认不知道还是编造答案——后者是幻觉最危险的形态。

二、标注规范:写到"外人能执行"

标注规范是考卷的灵魂:每道题要有标准答案或采分点、可接受的表述变体、明确的扣分项(如"出现编造的数字扣全分"、"引用已过期政策按错误计")。"部分正确"建议用分级制:2 分完全正确、1 分核心正确细节瑕疵、0 分核心错误或编造。分级制能捕捉版本间的细微进步。标注团队要做一致性校准:同一批题目两人独立判分,一致性低就回炉修订规范。

三、自动判分与人工复核:分层流水线

第一层是规则判分:封闭题做归一化后字符串或正则匹配,数值题允许误差区间,能覆盖大部分。第二层是裁判模型判分:对开放题和变体多的题目,用冻结版本的裁判模型按标注规范打分并给出理由。裁判模型的 prompt 里要完整嵌入标注规范,并定期用人工标注的"金标准集"校准,防止漂移。

第三层是人工复核,聚焦三类样本:规则与裁判模型判分不一致的、裁判模型置信度低的、按比例随机抽查的"判对"样本(防系统性漏判)。复核结果要回流:修正判分、沉淀新标注样例、发现的 bad case 回填题库。

这套流水线的目标是把人工成本压到总题量的 10%-20%,同时保住关键题目的判分质量。原则是:自动判分负责规模,人工复核负责信任。

四、它和 RAG 校验链的区别

容易混淆的是事实考卷和 RAG 系统里的事实校验。RAG 校验链是线上运行时护栏,回答"这次回答有没有忠实于检索到的文档",输入是(问题、检索文档、模型回答),输出通过或拦截,防的是模型引用材料时的发挥篡改。

而事实考卷考的是模型本身的内在事实性:不给检索材料直接问,看模型是真知道、诚实说不知道,还是编造。它回答的是"这个模型版本的底子怎么样"。两者互补:考卷决定你敢不敢用这个版本,校验链决定线上每次回答放不放行。底子差的模型,再强的 RAG 校验也只能拦截,拦多了体验照样崩。

所以完整配置是:版本升级时用事实考卷做离线验收,卡住幻觉率退化的版本;线上用 RAG 校验链做实时护栏。离线管版本准入,在线管单次放行,两层都不能少。考卷本身也要定期更新:业务知识在变,过期题目要更新或退役,新风险点要增补,建议每季度做一次新鲜度审查。