以图为依据的验证:对照结构化知识检查 agent 输出
如今多数事实性核查是 LLM 在裁判 LLM。评分器和作者出自同一个模型家族,两者也会在同样的地方产生幻觉。另一条工作线把核查锚定在结构上:知识图谱是一个固定、可检视的事实仓库,判定来自图拓扑与关系,而不是再来一轮生成。这个区别比看上去更尖锐,而且自 2024 年起已积累起实实在在的评测价值。
两个容易混淆的方向
- GraphRAG 跑在生成上游:图是上下文,LLM 仍然是作者兼裁判。
- 以图为依据的验证跑在下游:图是真值,判定是结构性的。
第二个方向需要一张参考图、一种把散文变成可核查断言的方法,以及一条不以「再问一次 LLM」收尾的决策规则。FactKG 这类 benchmark 让任务变得可衡量;混合 KG+搜索 pipeline 这类系统让它变得实用。
GraphRAG:图在上游
GraphRAG (Edge et al., Microsoft Research, arXiv 2404.16130) 是把图重新放回 RAG 议程的那篇论文。它用 LLM 分两阶段构建图索引:先从源文档建实体知识图谱,再为关系紧密的实体组预生成社区摘要。回答问题时,从每个社区摘要各生成一份局部回答,再把这些局部回答汇总。
它的目标是全局意义建构问题:在百万 token 级语料上问「这个数据集的主要主题是什么?」——这种问题没有任何单独段落包含答案。对这类问题,GraphRAG 在回答的全面性与多样性上都大幅胜过常规 RAG 基线。
这个边界对这篇笔记很重要:GraphRAG 让模型生成得更好,但回答仍由写出它的同一个模型来判定。图改进了作者,并没有替换裁判。
混合事实核查:KG 精确性加搜索回退
Kolli et al., Hybrid Fact-Checking (arXiv 2511.03217) 把验证方向做成三步 pipeline。第一步,KG 检索,在 DBpedia 中做快速一跳查找。第二步,由带内部规则式逻辑的任务专属标注提示词引导的基于 LM 的分类器。第三步,仅在 KG 覆盖不足时才调用的 web 搜索 agent。
结果才是重点:无需任务专属微调,在 FEVER Supported/Refuted 切分上 F1 达 0.93;另有重标注研究显示,该 pipeline 经常能为原本标注为「信息不足」的断言找到有效证据。架构启示:KG 提供精确性与可解释性,搜索 agent 只是覆盖回退,不是主信号。
让这件事变得可衡量的 benchmark
FactKG (Kim et al., ACL 2023) 把基于 KG 的验证做成了 benchmark:基于 DBpedia 的 108k 条自然语言断言,五种推理类型——一跳、合取、存在、多跳、否定。它让任务精确到足以给系统打分,而不是靠争论。
MultiHal (Lavrinovics et al., arXiv 2505.14101) 扩展了这一范式:一个用于幻觉评测的多语言、多跳 benchmark,由从开放域知识图谱中挖出的 25.9k 条经整理 KG 路径构建。基线结果显示,以 KG 为依据的评测不仅原则性强,而且可测量地更强:跨模型与语言,KG-RAG 的幻觉检测比朴素 QA 提升 0.29 到 0.42。
验证器门禁
我一直反复回到的形态,是生成下游的一道验证器门禁:
prose -> claim extraction (LLM parses, does not judge)
-> entity resolution -> anchor to reference graph
-> verdicts from structure:
SUPPORTED: path exists in the reference graph
CONTRADICTED: conflicts with a functional, single-valued relation
UNGROUNDED: no anchor in the reference graph
关键一步是把 LLM 从判定环节移除。LLM 只用来把散文解析成结构化断言,绝不参与判定真假。如果图钉死了一个出生年份,而某条断言说另一个年份,那是一次确定性的矛盾检查,而不是主观判断。
缺席是第二步,也是 RAG 崩掉的地方。检索一个虚构实体,什么都查不到;RAG pipeline 把「没有」当作 null,模型回落到参数先验然后猜。图让你能读出未命中的形状:在可信图中零锚点的连通断言分量,就是一个虚构簇。缺席的拓扑本身就是证据。
确定性是回报。同样的输入产出同样的判定,图路径就是计算本身,每条断言的决定不消耗任何 token。这使它成为一道门禁:agent 输出在用户看到之前先经过它,评测也以它为固定真值运行。
诚实的边界:图覆盖是约束瓶颈,因为每个缺口都会变成 UNGROUNDED 判定;实体解析才是真正工程投入所在;pipeline 继承了断言提取器的失败率,因为解析那一步仍是概率性的,尽管判定不是;时间性事实需要带版本号的图,否则它们会与当下矛盾。
GraphJudge:我实际做的
在 HackwithBay 3.0 上,我以 hackathon 项目的形式原样做了这个形态。GraphJudge (github.com/xesws/HackWithBay_repo),在线 demo 在 graphjudge.butterbase.dev,是一个针对 LLM 输出的以图为依据的事实性裁判。粘贴生成的文本,它会提取原子断言,把它们锚定到可信的 Neo4j 参考图上,并逐断言返回带图证据的判定。
判定:SUPPORTED——由参考图支撑;CONTRADICTED——与函数式参考事实冲突;UNGROUNDED——参考图不支持。第四个信号来自图结构本身:一个 UNGROUNDED 虚构簇——一组只互相指向、不连接可信核心的断言,用 Neo4j Graph Data Science 库做 WCC 式连通分量分析找到。
核心设计主张,引自仓库 README:判定由图作出,而非由 LLM。判定路径跑在 Cypher、GDS 与算术之上,因此决定是确定性的、可审计的、不消耗 token。LLM 只用于把散文解析成结构化断言。与 LLM 裁判(gemini-3.5-flash,每篇文档一次调用)对照的 hackathon 计分板:在一个 63 条断言的 benchmark 上,预埋错误检测同为 100%(各自 17/17),精确三分类标注以 100% 对 98.4% 领先。唯一的争议是一张有用的凭证:断言 CF002——一个黄金标签为 UNGROUNDED 的虚构实体——图判它 UNGROUNDED,LLM 判它 CONTRADICTED。范围坦诚:这是小参考图上的 hackathon 演示,按验证消耗积分;重点是架构,不是规模。
Graph RAG 用图帮 LLM 生成。GraphJudge 用图评判 LLM 生成的内容,而判定由图拓扑作出,不是由模型。明确写下的下一步是为时间性事实做带版本号的图:一个去年为真、今天为假的事实,目前迫使你在与当下矛盾与与过去矛盾之间二选一;诚实的答案是一张记录每条边成立时间的图。
本文链接的资料来源均已抓取并核验。