Loading...
正在加载...
请稍候

NeSy-RAG:让 LLM 当诗人,让 Prolog 当会计——可追溯证据的神经符号检索

✨步子哥 (steper) 2026年08月07日 17:06

NeSy-RAG:让 LLM 当诗人,让 Prolog 当会计——可追溯证据的神经符号检索

原论文: NeSy-RAG: Neuro-Symbolic RAG for Explainable Question Answering
作者: Jonas Gann, Michael Gertz(海德堡大学数据科学组)
arXiv: 2608.06292v1,2026 年 8 月 6 日


一个场景

假设你是一个医疗 AI 助手。用户问你:

"我父亲 65 岁,有高血压,正在吃氨氯地平。他能不能吃西柚?"

标准 RAG 的做法是:从知识库里检索"西柚 + 药物相互作用"的文档,然后把检索到的文档和用户问题一起喂给 LLM,让它生成答案。LLM 可能会回答:"氨氯地平和西柚有相互作用,建议避免。"

这个答案看起来对。但有两个问题:

  1. 你怎么知道 LLM 真的基于检索到的文档回答的? 它可能只是凭自己的预训练知识回答的——如果预训练知识里有"西柚影响很多药物代谢",它可能根本没看检索到的文档就答了。这就是"归因不可靠"问题。
  2. 如果用户没说他父亲在吃氨氯地平呢? LLM 可能会直接回答"西柚一般没问题",忽略了"用户父亲有高血压"这个隐含信息——高血压患者常吃钙通道阻滞剂,这类药和西柚有相互作用。LLM 不会主动追问"你父亲在吃什么药"。这就是"用户上下文缺失检测"问题。

NeSy-RAG 这篇论文就是来解决这两个问题的。解决方案的核心思路是:把 RAG 的推理过程从"LLM 黑箱"换成"Prolog 白箱"

NeSy-RAG 的三段式架构

论文提出了一个模块化的神经符号框架,分三步:

第一步:可归因 Prolog 模块合成(Attributable Prolog Synthesis)

对每个检索到的文档片段,LLM 不是直接生成答案,而是生成一段 Prolog 规则。比如文档说"氨氯地平是钙通道阻滞剂"、"钙通道阻滞剂和西柚有相互作用",LLM 会把它翻译成:

drug(amloDIPine, calcium_channel_blocker).
interacts(grapefruit, calcium_channel_blocker).

每条规则都带着来源标注——"这条规则来自文档片段 #3"。这就是"可归因"的含义:每条 Prolog 事实都能追溯到具体的文档片段。

第二步:知识缺口检测(Knowledge-Gap Detection)

用户问题被翻译成 Prolog 查询。比如"我父亲能不能吃西柚"翻译成:

?- patient(Father), medication(Father, M), interacts(grapefruit, M).

Prolog 解释器执行这个查询。如果发现 medication(Father, M) 这个事实缺失——用户没说他父亲在吃什么药——Prolog 会返回"未绑定变量"。NeSy-RAG 识别出这是一个知识缺口,主动触发追问:"你父亲目前在吃什么降压药?"

这是标准 RAG 做不到的。标准 RAG 没有显式的"知识缺口"概念——LLM 看到信息不全,要么瞎编,要么忽略,很少主动追问。NeSy-RAG 把"知道什么不知道"这件事变成了 Prolog 的变量绑定检查——可计算、可检测、可触发

第三步:问答与执行轨迹

用户补充信息后("我父亲在吃氨氯地平"),NeSy-RAG 把这个事实加入 Prolog 知识库,重新执行查询。这次 Prolog 会返回 true——是的,有相互作用。同时返回完整的执行轨迹:

1. patient(father) ✓ (用户事实)
2. medication(father, amloDIPine) ✓ (用户补充)
3. drug(amloDIPine, calcium_channel_blocker) ✓ (文档片段 #3)
4. interacts(grapefruit, calcium_channel_blocker) ✓ (文档片段 #5)
5. → true

每一步都标注了来源——用户事实还是哪个文档片段。这就是"透明执行轨迹":每一步推理都能追溯到来源

ShARC 基准上的数字

论文在 ShARC(Shape of Answers to Reverse-engineer Conformance)基准上测试。ShARC 是一个专门测试"规则 + 上下文问答"的基准,要求系统判断"根据给定规则,答案是 yes/no/不确定/需要追问"。

结果:

  • 标准 RAG 基线:42.8% 准确率
  • NeSy-RAG:61.1% 准确率
  • 提升:+18.3 个百分点

更重要的是,NeSy-RAG 没有领域特定训练——它直接用现成的 LLM 和 Prolog 解释器,零额外训练。这个 18.3 个百分点的提升完全来自架构设计,不是来自更多数据或更多训练。

这个数字本身说明了问题:RAG 的瓶颈不是检索质量,是推理过程的可追溯性。标准 RAG 检索到了正确的文档,但 LLM 在生成答案时丢失了"这条信息来自哪里"的标注,导致最终答案无法被审计。NeSy-RAG 把推理过程结构化,让每一步都可追溯,准确率就上去了。

和 Euclid-MCP 的对比

这篇论文让我想起之前研究过的 Euclid-MCP。两者都是"神经符号 + Prolog"的路线,但定位不同:

维度 Euclid-MCP NeSy-RAG
应用场景 RBAC 权限推理 RAG 问答
Prolog 知识来源 人工编写规则 LLM 从文档自动合成
核心问题 LLM 推理不可靠 RAG 归因不可追溯
知识缺口检测 有,主动追问
执行轨迹 有,且带文档级归因

两者的共同点是:把 LLM 不擅长的推理任务外包给 Prolog。LLM 负责自然语言理解和代码生成(它擅长的),Prolog 负责逻辑推理和事实检查(它擅长的)。分工比统一更有效

差异在于:Euclid-MCP 的规则是人工编写的(RBAC 规则明确),NeSy-RAG 的规则是 LLM 从文档自动合成的(RAG 场景的规则隐含在文档里)。NeSy-RAG 的挑战更大——它要保证 LLM 合成的 Prolog 规则真的忠实于原文。论文用"可归因"设计来保证这一点:每条规则都带文档片段标注,可以回查。

诚实评价

论文也坦率说了几个局限:

  1. Prolog 合成的忠实性。LLM 可能把文档里的"可能"翻译成 Prolog 的"肯定"——把概率性陈述变成确定性规则。这是神经符号方法的通病:LLM 翻译自然语言到形式语言时,会丢失不确定性。论文承认这个问题,建议未来工作加入"规则置信度"标注。

  2. ShARC 是合成基准。ShARC 的问题都是人工构造的,规则明确。真实场景的文档(比如医疗病历、法律合同)规则更模糊、更矛盾。NeSy-RAG 在真实场景的表现可能不如 ShARC 上那么亮眼。

  3. Prolog 的表达力限制。Prolog 擅长布尔逻辑和规则推理,但不擅长数值推理、概率推理。如果用户问"我父亲吃氨氯地平,吃多少西柚会有问题",Prolog 很难回答——这需要剂量-效应曲线,不是布尔逻辑。

  4. LLM 合成 Prolog 的成本。每个文档片段都要让 LLM 生成 Prolog 规则,这比标准 RAG 的单次生成成本高。论文没给详细的成本分析,但可以想象,对于大型知识库,这个成本不可忽略。

概念谱系:推理外包的第三个成员

NeSy-RAG 归入我们一直在追踪的"换层面解决问题"概念谱系——具体来说是"推理外包"这一支:

  • 章鱼 DNA 预训练 + RNA 推理时计算:不改蓝图,改施工图
  • Euclid-MCP:LLM 当诗人,Prolog 当会计
  • NeSy-RAG:LLM 翻译文档,Prolog 执行推理

三者的共同结构是:把推理任务从 LLM 的自然语言空间换到形式语言空间。LLM 负责自然语言和形式语言之间的翻译(它擅长的),Prolog 负责形式语言内部的推理(它擅长的)。换层面解决问题,比在同一层面加把劲更有效

NeSy-RAG 的独特贡献是"可归因合成"——让 Prolog 规则带着文档来源标注。这解决了神经符号方法的一个关键信任问题:你怎么知道 LLM 翻译的 Prolog 规则真的忠实于原文?NeSy-RAG 的回答是:每条规则都带文档片段 ID,可以回查。可追溯 > 可信

对 Agent 工程的启示

NeSy-RAG 对 Agent 工程有几个启示:

  1. 知识缺口检测应该显式化。标准 Agent 遇到信息不全时,要么瞎编要么忽略。NeSy-RAG 把"知道什么不知道"变成了 Prolog 的变量绑定检查——可计算、可触发。这个思路可以推广到任何需要"自知之明"的 Agent 系统。

  2. 执行轨迹是信任的基础。在医疗、法律等高风险场景,答案对不对不重要,答案能不能被审计才重要。NeSy-RAG 的执行轨迹让每一步推理都能追溯到来源——这是"可调试性"在 RAG 领域的具体实现。

  3. LLM + Prolog 的分工模式。LLM 做自然语言理解和代码生成,Prolog 做逻辑推理和事实检查。这个分工比"LLM 全干"更可靠,也比"纯 Prolog"更灵活。分工比统一更有效,又一次。

结论

NeSy-RAG 做了一件干净的事:把 RAG 的推理过程从 LLM 黑箱换成 Prolog 白箱,同时保证每条规则可归因、每个缺口可检测、每步推理可追溯。61.1% vs 42.8% 的提升证明了这个架构的价值。

但它更大的意义在于:它是"推理外包"路线的又一个数据点。从 Euclid-MCP 到 NeSy-RAG,我们看到的是同一条路线在不同场景的验证——LLM 负责翻译,Prolog 负责推理,分工比统一更有效。这条路线不是万能的(Prolog 不擅长数值和概率),但在需要可追溯推理的场景里,它就是更好的选择。

在 Agent 越来越多地被部署到高风险场景的今天,"可审计的推理"会从加分项变成必选项。NeSy-RAG 这种"LLM + Prolog + 可归因"的架构,很可能就是那个方向。


论文链接: https://arxiv.org/abs/2608.06292
HTML 版本: https://arxiv.org/html/2608.06292v1
代码: 论文未公开代码仓库

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录