切换深色模式
WikiChat 启发:核验事实,而不只是附引用
对应 CS224V · 2026-09-28 · How to RAG without hallucination。日期为校方课表日期,可能调整。核对官方课表。
资料状态
核对日期:2026-09-19。对应课程尚未开课;本文是基于公开课纲与文中原始资料的原创预习技术解读,不是课堂实录、讲义翻译或官方作业答案。本文于 2026-09-20 深度修订。示例为原创教学设计;离线实验与真实模型实验的边界分别说明,不以推演冒充模型实测。
课程助手推荐 C1,并写道:“这门课免费开放,录像完整,而且可以获得学分。”末尾有一个真实官网链接。这种回答看起来可信,却把三个需要分别验证的事实合并成了一句。
本讲从 WikiChat 所代表的检索与核验思路出发,设计一个主张级证据链。目标是让“回答有来源”进一步变成“来源确实支持回答”。
检索与核验处理的是不同问题
检索回答“哪些材料可能相关”,核验回答“这些材料能推出这项主张吗”。页面包含课程名,就可能排在很高位置,但其中未必写了学分资格。
WikiChat 论文把外部资料用于对话事实约束。本文采用独立教学流程:拆主张、为主张找证据、判断支持关系、按判断结果重新组织回答,不复述其全部实现或推广特定基准成绩。
把原句拆成三个主张后,核验表可能是:
| 主张 | 页面事实 | 结果 |
|---|---|---|
| 学习材料免费 | 明确公开部分讲义 | 范围不完全匹配 |
| 录像完整公开 | 录像链接需要登录 | 未确认 |
| 外部学习者可得学分 | 只说明校内课程学分 | 对象不匹配 |
问题不是“网址是假的吗”,而是主张扩大了原文的范围和适用对象。
原子主张也需要保留条件
过度拆分同样会破坏语义。“校内学生完成作业后可获学分”不能拆成“可获学分”而丢掉前提。可把主张表示成主体、谓词、对象、时间、适用条件。
对于课程助手,年份、学习者身份和材料类型是常见条件。网页更新时间不等于课程开设时间;视频上传时间不等于课程版本。核验器要比较这些字段,而不是只判断两个句子语义相似。
未知与冲突必须分开
没有发现学分说明,属于未知;官方明确写“外部旁听不授学分”,才构成对外部学分主张的反证。若两个页面冲突,先比较版本与对象,再决定是否需要保留争议。
这一区分会影响最终回答:未知时说“未核实到授分资格”,冲突时可以说“当前说明不支持外部授分”。不能用同一个 false 把它们压平。
对于 C6,“老师讲得清楚”不支持也不否定项目实践充分。相似度很高的正面评价,仍不是当前判断的证据。
重新生成时也可能引入新错误
核验表正确,最终写作仍可能把“部分讲义公开”润色成“全套材料免费”。因此输出后还要检查新增的事实性内容,尤其是数字、资格、因果关系和绝对措辞。
一种可控设计是先生成主张列表及证据,再由表达层仅对已批准主张组织文字。表达层仍需抽查,因为语言模型可能添加衔接性“常识”。关键结论应能反向定位到批准的主张 ID。
一个能区分结构检查与语义检查的实验
准备正确引用但错误结论、错误引用但碰巧正确结论、完全受支持结论和证据不足结论四种输出。引用检查应只处理 ID 与可访问性;核验器需要给出不同语义结果。
再删除资料中的一句前提,观察核验结果是否从支持变成未知;将年份改为旧版,观察是否触发适用性检查。若系统结果不变,说明它可能只依赖主题相关性或预训练记忆。
为什么三个支持页面可能不如一条反证
假设三篇旧课程介绍都说“开放录像”,今年的官方访问说明却写“仅限注册学生”。按页面数量投票会得到错误结论,因为前三篇可能转载自同一个旧页面,既不独立,也不适用当前年份。
核验前应先筛选证据的适用条件,再处理支持关系。可以将一项主张关联到若干证据边,每条边记录来源版本、对象、支持或反对以及判定理由。转载关系用于识别重复,不能自动增加权重。当前官方说明若与其他当前官方说明也冲突,则保留冲突,不以“官方”二字直接终止调查。
最终表达可以从这个图导出:“旧版资料显示曾公开录像;当前访问说明要求注册,尚不能确认外部访问。”这比把所有来源压成一个 0.9 置信分数更可审查。数字会隐藏冲突来源,条件化的表述保留了读者决定是否继续核查所需的信息。
代价是回答可能更长,因此只对影响用户决策的关键主张展示完整依据;次要事实仍应在内部保留可追溯关系。压缩呈现不能变成删除条件。
怎样定位核验失败
先人工标出原子主张,替换自动拆分结果;如果问题消失,错误在拆分。再提供人工选定证据;若恢复正确,错误在检索。最后固定两者仍判错,才聚焦核验模型或规则。
这个分层替换方法避免把所有错误都归给生成模型。事实核验还受来源正确性与覆盖限制,因此“未发现错误”不能当作任意场景无幻觉保证。
我们现在能核对已有主张,下一步要在研究开始时提出值得核对的问题。继续阅读STORM 研究流程。