Google文件极客手机版
17.98MB · 2025-10-21
为什么检索增强生成(RAG)将无法在上下文革命中幸存,以及我们所知的分块、嵌入和重排序器(Rerankers)的终结。
我在人工智能和搜索领域工作了十年。最初是构建欧洲最大的法律搜索引擎 Doctrine
,现在是构建 Fintool
,一个由人工智能驱动的金融研究平台,帮助机构投资者分析公司、筛选股票并做出投资决策。
在构建、优化和扩展基于检索增强生成(RAG
)系统的 LLM
三年后,我认为我们正在见证基于 RAG
的架构的黄昏。随着上下文窗口的爆炸式增长和基于代理(Agent
)的架构的成熟,我有一个有争议的观点,即我们花费大量时间构建和优化的现有 RAG 基础设施正在衰落。
2022 年末,ChatGPT
横空出世。人们开始无休止的对话,委派重要的工作,却发现底层模型 GPT-3.5
只能处理 4,096 个 token
……大约六页文本!
人工智能世界面临一个根本性问题:如何让智能系统处理比它一次能阅读的知识库大好几个数量级的知识库?
答案是检索增强生成(RAG
),一种在未来三年主导人工智能的架构模式。
GPT-3.5
可以处理 4,096 个 token
,下一个模型 GPT-4
将其翻倍至 8,192 个 token
,大约十二页。这不仅仅是不方便;它在架构上是毁灭性的。
考虑一下这些数字:一份 SEC 10-K
文件包含大约 51,000 个 token
(130 多页)。
使用 8,192 个 token
,您只能看到 10-K
文件的不到 16%。这就像通过钥匙孔阅读财务报告一样!
RAG
作为一个直接借鉴自搜索引擎的优雅解决方案而出现。就像 Google
为您的查询显示 10 个蓝色链接和相关摘要一样,RAG
检索最相关的文档片段并将其提供给 LLM
进行合成。
核心思想非常简单:如果无法将所有内容放入上下文中,则找到最相关的部分并使用它们。 它将 LLM
变成了复杂的搜索结果摘要工具。
基本上,LLM 无法阅读整本书,但它们可以知道结局谁死了;很方便!
长文档需要分块,这时问题就开始了。这些易于消化的片段通常每个包含 400-1,000 个 token
,大约是 300-750 个单词
。
问题是?这不像每 500 个单词就剪切一次那么简单。
考虑对典型的 SEC 10-K
年度报告进行分块。该文档具有复杂的层次结构:
在对 500 个 token 进行简单分块后,关键信息会分散:
如果您搜索“收入增长驱动因素”,您可能会得到一个提到增长的分块,但会错过不同分块中的实际数值数据,或者另一个分块中 MD&A 的战略背景!
在 Fintool
,我们开发了复杂的分块策略:保留层次结构、表格完整性、交叉引用、时间连贯性和脚注关联,并为每个分块附加丰富的元数据(文件类型、会计期间、章节层次、公司标识符等)。
但即使如此,也无法解决根本问题:我们仍在使用片段而非完整文档。
每个分块都被转换为高维向量(在大多数嵌入模型中通常为 1,536 维
)。这些向量存在于一个空间中,理论上,相似的概念彼此靠近。
当用户提出问题时,该问题也变成一个向量。系统使用余弦相似度查找其向量最接近查询向量的分块。
这在理论上很优雅,但在实践中,它是边缘情况的噩梦。
嵌入模型在通用文本上进行训练,但在特定术语方面表现不佳。它们可以找到相似之处,但无法区分“收入确认”(会计政策)和“收入增长”(业务绩效)。
考虑这个例子:查询:“公司的诉讼风险敞口是多少?”
RAG
搜索“诉讼”并返回 50 个分块
:
RAG
报告的内容: 诉讼费用 5 亿美元
(来自法律诉讼部分)
实际情况:
实际风险敖口为 51 亿美元
。是 RAG 发现的 10 倍。糟糕!到 2023 年末,大多数开发者意识到纯向量搜索是不够的。
引入混合搜索:将语义搜索(嵌入)与传统关键词搜索(BM25
)相结合。这是事情变得有趣的地方。
BM25
(最佳匹配 25)是一种概率检索模型,擅长精确术语匹配。与嵌入不同,BM25
:
EBITDA
时,您会得到包含EBITDA
的文档,而不是“营业收入”或“收益”CECL
(预期信用损失)或ASC 606
这样的金融术语会得到适当的权重在 Fintool
,我们构建了复杂的混合搜索系统:并行运行语义和关键词搜索,根据查询类型动态调整权重,并使用倒数排序融合(RRF
)合并结果。
所以现在你认为一切都做好了吗?但绝非如此!
没有人谈论的是:即使完成了所有检索工作,您也还没有完成。您需要再次对分块进行重排序以获得良好的检索,这并不容易。重排序器是机器学习模型,它们接收搜索结果并根据您的特定查询重新排序,从而限制发送到 LLM 的分块数量。
LLM
不仅上下文贫乏,而且在处理过多信息时也会遇到困难。 减少发送到 LLM
以获取最终答案的分块数量至关重要。
重排序管道:
以下是重排序面临的挑战:
300-2000ms
Cohere Rerank 3.5
每 1,000 个搜索单元的成本为 $2.00
Cohere Rerank
仅支持 4096 token
,需要处理更多必须拆分为并行 API
调用重排序是复杂管道中的又一步。
我认为 RAG 困难的地方是我所谓的“级联故障问题”。
除了混合搜索本身的复杂性之外,还有一个很少讨论的基础设施负担。
运行生产环境的 Elasticsearch
并不容易。为了全面的文档覆盖,您需要维护 TB+
的索引数据,这至少需要 128-256GB RAM
才能获得不错的性能。真正的噩梦在于重新索引。每次模式更改都会强制进行全面重新索引,对于大型数据集需要 48-72 小时。最重要的是,您需要不断处理集群管理、分片策略、索引优化、缓存调整、备份和灾难恢复,以及经常包含重大更改的版本升级。
以下是一些结构性限制:
这些都不是小问题。它们是检索范式的根本局限性。
三个月前,我偶然发现了一项检索创新,让我大吃一惊。
2025 年 5 月,Anthropic
发布了 Claude Code
,一个在终端中工作的 AI 编码代理。起初,我对这种形式感到惊讶。一个终端?我们回到了 1980 年代吗?没有用户界面?
那时,我正在使用 Cursor
,一个擅长传统 RAG
的产品。我让它访问我的代码库来嵌入我的文件,Cursor
在回答我的查询之前对我的代码库进行了搜索。生活很好。但是当测试 Claude Code
时,有一件事很突出:
它更好更快,不是因为它们的 RAG 更好,而是因为根本没有 RAG。
Claude Code 没有使用分块、嵌入和搜索的复杂管道,而是使用直接的文件系统工具:
核心特性: Grep
(1973年发明的工具)通过正则表达式搜索文件内容,Glob
通过名称模式发现文件,任务代理自主探索并自适应组合搜索策略。
Claude Code
不检索,它调查: 并行运行多个搜索,先广泛后缩小,自然遵循引用关系,没有嵌入、相似度分数或重排序。它简单、快速,基于 LLM 将从上下文贫乏变为上下文丰富的新假设。
正如您在此基准中看到的那样,一个带有 url+描述的简单 TXT 文件比复杂的 RAG 表现更好。哎呀。这是一个范式转变;LLM 将 RAG 脚手架当作早餐吃掉。
这不仅仅比 RAG 更好。它是一种根本不同的范式。适用于代码的也适用于任何非代码文件的长文档。
上下文窗口的爆炸式增长使 Claude Code 成为可能:
时代 | 模型 | 上下文窗口 | 相当页数 |
---|---|---|---|
2022-2025 上下文贫乏时代 | GPT-4 | 8K token | 约 12 页 |
GPT-4-32k | 32K token | 约 50 页 | |
2025 年及以后上下文革命 | Claude Sonnet 4 | 200k token | 约 700 页 |
Gemini 2.5 | 1M token | 约 3,000 页 | |
Grok 4-fast | 2M token | 约 6,000 页 |
在 2M token
的情况下,您可以装入大多数公司一整年的 SEC 文件。
这一轨迹甚至更引人注目:到 2027 年,我们很可能达到 10M+
的上下文窗口,Sam Altman
暗示即将出现数十亿个上下文 token
。这代表了 AI 系统处理信息方式的根本性转变。同样重要的是,注意力机制正在迅速改进——LLM
在保持大规模上下文窗口的连贯性和焦点方面做得越来越好,而不会在噪音中“迷失”。
有足够上下文时,搜索就变成了导航:无需检索片段、相似性计算、重排序或嵌入。LLM 在代理行为方面的进步,使它们能够将工作组织成任务以实现目标。
Ripgrep vs Elasticsearch 对比:
特性 | Ripgrep | Elasticsearch |
---|---|---|
设置 | 无需索引,零配置 | 需要复杂的索引和配置 |
可用性 | 文档即刻可搜索 | 需要等待索引完成 |
维护 | 零维护 | 需要管理集群、分片、优化 |
速度 | 10万行代码几毫秒 | 需要几分钟索引 |
成本 | $0 | 需要大量基础设施投入 |
代理能内在理解 SEC
文件结构:层次意识、交叉引用跟踪、多文档协调和时间分析。对于大规模搜索,混合检索成为代理的工具之一,代理最终加载完整文档进行深入分析。
RAG vs 代理式搜索对比:
维度 | RAG(研究助理) | 代理式搜索(法务会计师) |
---|---|---|
信息检索 | "这里有 50 段提到了债务" | 系统地追踪资金流向 |
分析能力 | 无法告诉您债务是否增加或原因 | 理解会计关系(资产 = 负债 + 权益) |
关联能力 | 无法将债务与战略变化联系 | 连接跨时间段和文档的点 |
洞察力 | 无法识别隐藏的义务 | 识别缺失或隐藏的内容 |
理解深度 | 只检索文本,不理解关系 | 用数据挑战管理层的断言 |
五大趋势推动代理式搜索:
1. 文档复杂性增加 - 文档更长、关联性更强,需要遵循复杂的交叉引用路径
2. 结构化数据集成 - 表格、叙述和元数据必须一起理解,关系比孤立事实更重要
3. 实时要求 - 无时间重新索引,动态文档需要自适应方法
4. 跨文档理解 - 现代分析需连接主要文档、支持材料、历史版本和相关文件。RAG独立处理,代理建立累积理解
5. 精度优于相似度 - 跟踪引用胜过查找相关文本,导航胜过检索
代理式搜索的核心优势:
优势维度 | 具体表现 |
---|---|
准确性 | 消除因缺少上下文而产生的幻觉 |
完整性 | 完整答案而不是片段 |
速度 | 通过并行探索实现更快洞察 |
精确度 | 通过系统导航实现更高准确性 |
成本 | 大幅降低基础设施成本 |
维护 | 零索引维护开销 |
关键洞察: 复杂文档分析的核心是理解关系、跟踪引用和保持精度,而非寻找相似文本。大上下文窗口和智能导航的结合提供了检索无法实现的功能。
RAG
是上下文贫乏时代的巧妙权宜之计。它弥合了小窗口和海量文档间的鸿沟,但始终是临时方案。未来属于能够导航、推理并在工作内存中保存整个语料库的代理。
我们正进入后检索时代。赢家不是维护最大向量数据库的人,而是设计最智能代理的人。回想起来,RAG
就像辅助轮——有用、必要,但只是暂时的。
十铨推出 NV10000 固态硬盘:M.2 2280 PCIe 5.0×4 NVMe,10G 顺序读取
卢伟冰宣布陈奕迅成为 REDMI 声学大使,K90 Pro Max 手机搭载 2.1 立体声系统