每隔一阵子,总有人宣告“RAG已死”:上下文越来越长、端到端多模态模型越来越强,好像不再需要检索与证据拼装。但真正落地到复杂文档与可溯源场景,你会发现死掉的只是“只切文本的旧RAG”。当图、表、公式与文本被统一拆解并纳入同一套结构化索引与混合检索链路时,RAG不但没死,反而进化为RAG Anything!把一切可证据化,All in RAG。
这篇文章面向正在落地人工智能产品的您,我会以直接的工程视角,解读GitHub上8.7kstar的RAG‑Anything,包括它到底在解决什么问题、三大技术组件与整体流程、关键实现细节、实验与评测、消融实验、案例研究、相关工作、结论与落地建议;我尽量把每一步的操作方式说透,同时避免堆术语,让您能把这套方法搬进真实系统中。虽然内容密集,但结构是清晰的,您可以按章节跳读……不过我更建议从头看完,这样您会更快建立完整的实现图景。
整体由三大组件首尾相接构成一条可落地的工程流水线:通用表示与索引把异构内容拆成带结构的原子单元并建立统一索引,跨模态混合检索用“结构导航+语义匹配”两路并行找齐证据,证据综合生成在结构化文本上下文里“回填”原始视觉内容后交给视觉语言模型联合推理。运行顺序并不复杂,但各环节要配合默契:解析阶段产出可建图的锚点与边,索引阶段生成图结构与向量目录,检索阶段把结构与语义候选对齐融合,生成阶段保持证据与答案的一一对应,您能清楚地看到每一步贡献了什么。
这一步的输入是任意文档 ki,输出是一组原子单元 {cj=(tj, xj)},其中 tj 表示模态类型(文本、图像、表格、公式等),xj 是该单元的内容载荷,并附带它在原文中的层级位置与邻近上下文;这样拆完不但能逐块编码,还能在下游把这些单元重新织回去。您可以把它理解为“把文件打散成可索引的颗粒”,但每颗都带着来源、上下文与结构标签,后续才能在图里挂上对的边,避免把复杂图表压扁成一行描述这种常见的信息损失。
研究者没有把所有东西硬塞进一张“大一统”图,而是针对非文本与文本分别建图,再通过实体对齐合并,以最大化保留模态特有的结构信号
对于文本图,系统直接在文本 xj 上做命名实体识别与关系抽取,得到实体‑关系网络并保留段落层级、指代关系与交叉引用等线索;这样一来,跨模态图承担“把非文本的内部结构抽出来并与文本邻域对齐”的职责,文本图承担“在自然语言层面串联显式语义”的职责,二者在信息量与颗粒度上互补,能在后续检索中同时支持“沿边走”和“按义找”,这也是后面为什么要双路检索的根本原因。
当两张子图都准备好后,系统以实体名称与同义归一作为主键进行对齐,把语义等价或指称一致的节点合并为统一知识图 G=(V,E),这张图既保留了视觉‑文本之间的锚定关系,也保留了文本‑文本之间的语义脉络;与此同时,系统为所有组件统一编码,包括节点(实体)、边(关系)与跨模态原子内容块,形成嵌入表 T,统一索引 I=(G,T) 就具备了“可沿图导航”和“可在向量空间近邻搜索”两种能力,后续检索可以自由组合它们的长处与偏好,避免被单一策略带偏。
查询进入系统会先做模态感知分析,从词面线索中抽取对图、表、公式等的偏好,并用与索引一致的编码器生成查询嵌入 e_q,确保查询与各类组件处在同一个向量空间;接着两路并行启动:结构导航把查询落在图里的种子节点上,按有界半径做邻域扩展,沿显式关系多跳追踪,把相关实体、关系及其绑定的内容块收集成结构候选集 C_stru(q),而语义匹配则直接在嵌入表 T 上做近邻搜索,跨实体、关系与内容块三类抓取最相近的项形成语义候选集 C_seman(q)。
两路候选合并后不能简单拼接,您会看到结构候选往往更“可解释”,语义候选更“泛化”,这时需要把拓扑结构的重要性、向量相似度分数与模态偏好共同纳入统一打分,得到最终的跨模态排序 C*(q);这样既能保证沿路径可达的证据不会被忽视,也能把没有显式连边却语义贴近的内容拉进来,检索阶段的“结构与语义”就不再互相遮挡,而是互相补台,特别适合证据分散在多页、多模态、不同粒度的复杂文档。
在生成阶段,系统会先把最终候选转成结构化的文本上下文 P(q),其中包含实体摘要、关系描述与内容块正文,并用清晰的分隔与来源标注体现模态类型与层级归属,保证可读可解析;与此同时,所有涉及图像、表格、公式的候选会恢复出原始视觉内容 V*(q),与 P(q) 一起交给视觉语言模型,模型因此可以同时利用文字叙述与真实视觉证据进行推理与归因,您复盘时能从 P(q) 与 V*(q) 直接定位到支撑答案的具体片段,避免“凭印象”式的不可解释输出。
这一部分更像一份工程可复用的“实验蓝图”,既交代数据与对照,也把实现参数说清楚,您照着就能在团队环境里跑通并复核关键指标;我们把变量尽量收敛到“解析‑索引‑检索‑综合”四个环节,确保任何性能差异都能对应到清晰的技术选择上,而不是被输入形态或评测口径悄悄改变。
评测协议把输入与输出口径做了严格统一:对原生多模态基线,文档被渲染并拼接为图像输入,每文档最多50页、144dpi,输出限制为一句话,并由同一模型以统一口径判定正误,这样做虽然牺牲了一些灵活性,但把上下文窗口差异与输入形态的噪声压到最低;工程上看,变量被“钉”在解析、索引、检索、综合四个环节,因而改进基本只能来自结构表示、混合检索与证据注入,而不是“多给点上下文”这样含糊的利好。
两套基准的总体结果给出清晰结论:DocBench上RAG‑Anything总体63.4%,在 Finance、Multimodal类型上尤为稳健;MMLongBench上整体42.8%,在多个文档类型上领先于对照,优势并非来自单一模态的堆叠,而是结构导航与语义匹配把跨页、跨模态、跨粒度的证据有效糅合,减少了“只抓住一种强信号”的偏差。
把结果按长度分桶后出现一个很有工程意义的趋势:在 DocBench 的101~200页区间,RAG‑Anything 与多模态基线分别是68.2% 与54.6%,在200+ 页区间分别是68.8% 与55.0%,差距随长度增长而扩大;这与架构选择高度一致,跨页实体对齐把分散线索串成路径,结构化上下文注入让关键证据有序进入窗口,语义匹配再补齐“无显式边”的遗漏,长文档因此不再“越长越糊”,反而“越长越稳”。
两组删减对照揭示了贡献的主次关系:Chunk‑only 不建图、仅做传统内容块检索,DocBench 总体仅60.0%,在 Multimodal 类型与金融等结构密集场景下跌幅更大;w/o Reranker 去掉跨模态重排但保留双图与混合检索,成绩为62.4%,完整模型63.4%,说明重排带来稳定增益,但决定上限的是双图与混合检索。
图增强的检索增强生成已经很多,比如 GraphRAG、LightRAG、GNN‑RAG、HippoRAG、RAPTOR、ArchRAG,它们在结构建模或层级聚合上各有长处,但基本停留在文本域;多模态检索增强也有代表路线,比如 VideoRAG、MM‑VID、VisRAG、MMGraphRAG,它们或把视频等转文本导致视觉信息损失,或仅保留版面图却缺细粒度关系,或只为图像构图而忽略表格与公式,研究者指出核心问题不是“模态是否被支持”,而是“架构是否统一”,一旦每种模态都走各自管线,跨模态对齐与融合就会成为长期的瓶颈。
RAG Anything也并非完美,研究者在附录里给出两类失败模式:其一是检索偏文本,哪怕问题强调看图,系统也容易把强相关的文字段落拉进来,结果文字与图像的粒度不对齐,推理被带偏;其二是空间处理刚性,视觉模型习惯自上而下、从左到右扫描,遇到需要逆序、列优先或非标准版式的场景就会失手,比如合并单元格或跨列标注,要缓解这些问题,您需要在解析层引入版面感知模块,并在检索层引入对模态偏好的抑制或提升机制,避免让“好看但不相关”的段落占据窗口。
所以,RAG还在进化,在通用多模态端到端且可溯源的模型没有之前,RAG仍然是性价比最高的落地方案。
文章来自于“AI修猫Prompt”,作者“AI修猫Prompt”。
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0