RAG检索的是文档,但如果问题需要跨越多个概念才能推理出答案,简单的文档检索还能不能架起这座桥梁?

📅 2026/7/27 16:35:28
RAG检索的是文档,但如果问题需要跨越多个概念才能推理出答案,简单的文档检索还能不能架起这座桥梁?
在RAG检索增强生成已经成为解决大模型幻觉问题的主流方案时有一个项目提出了一个直击本质的质疑RAG检索的是文档但如果问题需要跨越多个概念才能推理出答案简单的文档检索还能不能架起这座桥梁项目地址https://github.com/dfytensor/GSG-LLM一、RAG的盲区当检索无法架桥RAG的思路很直观用户提问 → 检索相关文档 → 把文档塞进上下文 → 让LLM生成答案。这个流程在巴黎是哪个国家的首都这类单跳Single-hop问题上表现良好——检索巴黎就能拿到答案。但现实中的问题往往是多跳Multi-hop的“那位在2020年获得诺贝尔文学奖的美国女诗人的第一部诗集是什么”这个问题需要先检索2020年诺贝尔文学奖得主→ 得到露易丝·格丽克→ 再检索格丽克的第一部诗集→ 得到《头生子》。这是两个检索步骤的串联。传统的RAG是一次性检索它检索的是文档而不是概念之间的几何关系。当问题需要跨越多个概念时一次性检索往往抓不住那条推理链。GSG-LLM项目给出的答案是把文本语义空间变成一个几何流形用锚点Anchors来构建知识的骨架然后通过细分Subdivision逐步逼近答案。这不是在已有RAG上修修补补——它是从几何学的角度重新思考了LLM应该如何检索和推理。二、GSG的灵感来源从图形学到大语言模型GSG全称Geometric Subdivision Generation几何细分生成这个概念最早出现在图像和网格合成领域。在图形学中GSG发现了一个规律锚点Anchors提供了一个几何骨架——只需要少量精心放置的顶点就能以更少的去噪步数和更高的质量重建出完整的形状远优于密集采样。这个项目问了一个跨界的问题同样的原理能不能用来锚定语言模型图形学GSGGSG-LLM锚点 形状的顶点锚点 事实的嵌入向量Fact Embeddings细分 细化网格细分 从粗到细的检索 推理校正 去噪步骤校正 凸包Convex-hulllogit偏置20步 DDPM 500步少量锚点token 完整生成核心洞察知识的语义空间就像一个几何流形不需要检索所有相关文档只需要找到这个空间里的锚点关键概念节点然后通过细分逐步逼近目标区域——推理过程就变成了在语义几何空间中的导航。三、三大核心创新GSG是怎么做到的exp_gsg_anchor_llm.py是这个项目的核心贡献。与简单的RAG不同它引入了三项创新3.1 预学习的锚点流形Pre-learned Anchor Manifold传统RAG检索的是文档。GSG检索的是锚点——通过K-means Medoids GSG细分中点锚点 相似性剪枝在知识库的嵌入空间上构建出一组锚点。这些锚点不是原始文档而是知识拓扑结构的顶点——它们代表了语义空间中最核心、最具代表性的概念节点。3.2 凸包Logit偏置Convex-hull Logit BiasGSG不是简单地用检索结果填充上下文。它在生成过程中将token的logits柔和地偏置到锚点词汇表方向将生成约束在锚点定义的语义凸包内而不是硬性掩码。通俗地说模型可以自由发挥但不能跑出锚点围成的语义围栏——这既保证了多样性又防止了幻觉。3.3 渐进式细分Progressive Subdivision这是GSG最巧妙的设计8 → 4 → 2 → 答案。每一步都用上一步的输出作为精化后的查询检索更细粒度的锚点。这就像在地图上导航先定位到国家→再定位到城市→再定位到街道→最后找到门牌号。每一步都在缩小搜索空间每一步都在逼近正确答案。四、实验结果多跳场景下的降维打击项目在Qwen2.5-3B上进行了严格的QA基准测试结果令人震撼策略单跳F12跳F13跳F1Token数无锚点0.3000.1880.174~15朴素RAG0.3020.1810.179~15GSG 2步0.3130.1750.199~15GSG 3步0.3780.2190.237~12几个关键发现跳数越多优势越大在3跳问题上GSG 3步的F10.237比无锚点0.174提升了36%比朴素RAG0.179提升了32%。用更少的token打更高的分GSG 3步只用~12个token比基线少了20%。锚点压缩了搜索空间让模型用更少的计算拿到更好的结果。优势随跳数增长这正是GSG的理论预测——锚点压缩了搜索空间跳数越多压缩效果越明显。一句话总结在需要多步推理的场景下GSG用更少的token拿到了远超RAG的准确率。五、更激进的方向彻底告别自回归GSG-LLM还不止于更好的RAG。项目中还有一个更 ambitious 的探索——完全跳过逐token的自回归生成用户提示 → VAE编码 → 检索锚点 → 插值 → Langevin校正 → VAE解码 → 文本这个非自回归管线的三步走Step 1exp_vae_step1.py训练一个Transformer-VAE将文本 ⇌ 潜在空间z256维Step 2exp_vae_step2.py构建1000锚点的流形 通过去噪分数匹配DSM训练潜在分数网络Step 3exp_vae_step3.py在同一个VAE上对比GSG解码 vs 自回归解码——比较新颖性、多样性、BLEU、熵这意味着什么意味着生成不再是一个字一个字往外蹦而是在语义的潜在空间里直接跳跃到答案区域然后一次性解码出完整文本。这是对大模型必须自回归这个基本假设的挑战。六、快速上手环境要求Python ≥ 3.10CUDA 12.4 GPU推荐PyTorch ≥ 2.6, transformers ≥ 4.40一键安装uvsync# 自动安装 torch cu124, transformers, sklearn 等依赖运行基线实验python exp_anchor_llm.py# 打印结果表格并保存 JSON结果会自动写入experiments/*.json。已测试的基座模型Qwen2.5-0.5B-InstructQwen2.5-3B-InstructNanbeige 4.2-3B没错就是上一篇文章里的那个3B模型七、写在最后当大模型开始几何地思考RAG很强大但它本质上是在做文本匹配——找相似的文档塞进上下文。GSG在做的是另一件事把知识的语义空间当成一个几何流形用锚点勾勒出它的骨架然后用细分这个几何操作来完成推理。这个视角的转换带来的不仅是性能的提升——它让我们重新思考了检索和推理之间的关系RAG检索文档 → 让LLM自己推理GSG检索概念锚点→ 在语义空间中导航 → 逐步逼近答案在多跳推理场景下后者显然更符合人类认知的方式——我们不会一次性翻遍所有资料而是先定位大致方向再逐步缩小范围最后精准锁定答案。GSG-LLM把这个过程数学化了、工程化了、开源了。项目地址https://github.com/dfytensor/GSG-LLM如果你被RAG在多跳问题上的表现困扰过想探索非自回归生成这个前沿方向对大模型与几何学的交叉感兴趣那这个项目值得你花一个晚上跑一跑实验。从图形学到大语言模型从网格细分到语义导航——有时候最惊艳的突破恰恰来自最意想不到的跨界。