VikingRAG:结构化文档检索准确率与Token成本大幅优化
[RAG 论文分享] VikingRAG:匹配 SOTA 准确率、Token 成本降到 5%–32% 现有问题:RAG 高准确率依赖结构上下文与多轮交互,是 token 开销的主要来源 企业问答、...
这个VikingRAG方法很实用,能显著降低结构化文档检索的token成本,对处理企业问答、法律等场景应该很有帮助。
VikingRAG通过层次化语义存储将结构信息从prompt中移出,实现token成本降至SOTA的5%-32%。它采用证据缺口驱动的多轮检索策略,结合经验边和自适应升级机制,在多个数据集上验证了其高效性。
[RAG 论文分享] VikingRAG:匹配 SOTA 准确率、Token 成本降到 5%–32% 现有问题:RAG 高准确率依赖结构上下文与多轮交互,是 token 开销的主要来源 企业问答、...
[RAG 论文分享] VikingRAG:匹配 SOTA 准确率、Token 成本降到 5%–32% 现有问题:RAG 高准确率依赖结构上下文与多轮交互,是 token 开销的主要来源 企业问答、法律、财报等场景的语料都是章、节、段落组成的结构化文档,结构本身就是检索线索,它指示事实归属与局部和全局的关联。 现有 RAG 方法陷入两难:不用结构(朴素向量 RAG、图 RAG、SQL-RAG)丢失导航线索,准确率低;用结构(MoDora、BookRAG、DeepRead)准确率高,但 DeepRead 要把候选文档的完整目录塞进 prompt,开销随目录规模线性增长,加上多轮交互历史不断累积,token 成本巨大。 论文地址 arxiv.org/pdf/2609.11390 # 三个核心设计 1. 层次化语义存储:把结构从 prompt 搬进可查询的外部状态。 文档分块后保留所属结构节点,自底向上生成节点摘要,目录、块、摘要全部物化为 URI 可寻址对象(如 viking://Pasta/Carbonara/),祖先-后代关系编码为 URI 前缀。系统向代理暴露 Search / List / Grep / Read 四个工具,语义与结构路径共享同一 URI 空间。效果:结构 token 与实际访问的目录片段成正比,而非与完整目录成正比——直接消解 DeepRead 的线性开销。 2. 证据缺口驱动的多轮检索。 Agent 每轮判断证据是否充分,不充分则继续调用工具(轮数预算 B=15),充分即作答。设计哲学是粗定位与细验证分离:Search 锚点 → Read 查看后发现缺口 → List 相邻块 → Grep 精确命中 → Read 验证,每步把搜索空间收窄到相关子树内。 3. 经验边 + 自适应升级——让相似查询不必重复探索。 经验边从历史检索轨迹中把“Search 命中的 URI”连向“真正支撑答案的 URI”,边上存历史问题嵌入做查询时过滤;新查询沿边做条件化多跳扩展,复用路径而非重新探索(VikingRAG-E)。经验积累足够后,多数查询一轮检索即可作答——用约束感知的充分性判断器先验证证据是否支撑答案的关键约束,验证不过关才升级为完整多轮代理检索(VikingRAG-E+)。 # 实验结果:token 降至 SOTA 的零头 6 个真实结构化文档数据集(从 0.24M 词元的课程大纲到 8.78M 词元的财报),8 个基线,骨干 LLM 为 DeepSeek-V4-Pro,并在 GPT-5.5、Seed-2.0、GLM-4.7 上验证稳健性。主要结论: · 准确率与所有基线持平或更高(DeepRead 通常是最强基线); · 基础版 VikingRAG 仅消耗 SOTA 方法的 11.6%–51.9% token,完整版 VikingRAG-E+ 降至 5.1%–32.5%,延迟同样显著更低; · 逐层消融:经验边再省 12%–33% token,自适应升级再省 19%–50%; · 可扩展性:LightRAG、HippoRAG-2 在最大数据集上 24 小时内无法完成摄入,BookRAG 在多数数据集上超时;而 VikingRAG 在文档数从“仅相关文档”增至 991 篇时性能基本稳定——因为它是按需定位,不随语料规模膨胀; · 存储方面:插入延迟与 DeepRead/MoDora 相当、远快于图方法;代价是摄入期 token 更高(为每个索引对象生成预览);文档删除零 LLM 成本。 💬 0 🔄 0 ❤️ 0 👀 69 ⚡