一旦模型能读完所有内容检索增强生成(RAG)就没有存在的必要了,开发者只需要把整个代码库或者多年的聊天记录塞进 prompt,让模型自行处理,所以AI行业花了好几年追逐更大的上下文窗口:4K → 32K → 128K → 1M tokens。
但是真正在生产环境里这么做的时候就出了问题,因为答案变差了。
在不少实际系统中,更大的上下文窗口反而拖累了模型表现。
问题出在语言模型处理信息的方式上,LLM 依赖注意力机制对不同概念分配权重,而模型容量虽然在增长,无关上下文的密度一旦上升,注意力分配的可靠性就会迅速衰减。噪声灌进来之后,两个架构层面的故障随之出现:注意力稀释与检索崩溃。
注意力稀释
理解注意力稀释需要回到模型读取 prompt 的数学机制,LLM 必须把注意力分配到输入的每一个 token 上。
假设正在查询一条团队工作空间里的特定决策记录。包含答案的那段文字只有一段,周围围着五十段毫不相关的闲聊和自动化系统告警。模型需要在数学意义上判定哪些内容重要:上下文规模一大,信噪比就塌了。
用一个小上下文的场景做对照:5K token 的窗口,200 token 的相关信息,信号占比 4%,模型可以轻松锁定事实。换到 200K token 的窗口,同样 200 token 的相关信息,信号占比降到 0.1%。
计算资源被大量消耗在无关 token 的评估上,分配给真正有用信号的权重随之削弱。输出质量的下滑是直接后果:模型漏掉事实,给出错误答案,或者用幻觉来填补那些它没能可靠提取的信息空白。
检索崩溃
上下文窗口足够大之后,一个常见的诱惑是直接放弃构建检索管道,把 prompt 设成全部可用文档。
这违背了一条基本设计原则:LLM 在 prompt 经过精心筛选时表现最好。
标准 RAG 架构有意把上下文限定为相关性最高的 top-K 个片段。约束本身就是特性:它压制噪声、保持信号密度,迫使模型在有限范围内做集中推理。一旦跳过过滤步骤,最终回答的质量几乎必然下降。
"迷失在中间"效应
上述现象不只是工程直觉,而是经过实验验证的研究结论,直接影响 AI 后端的设计方式。2023年,来自斯坦福大学、加州大学伯克利分校和 Samaya AI 的研究人员在论文 《Lost in the Middle: How Language Models Use Long Contexts》中正式描述了这一效应。
研究揭示了一条"U型"性能曲线:相关信息出现在输入上下文的开头(首因效应)或结尾(近因效应)时准确率最高,放在中间位置时模型的检索和推理能力明显下滑,即便 token 上限足够大也不例外。更麻烦的是随着 prompt 中无关文档的增多,中间位置信息的可用性持续恶化,真正有价值的内容等于被藏进了干草堆。
RAG 为什么依然更有效
RAG 从来不只是用来绕过上下文长度限制的补丁,它的核心价值在于精确的信息筛选。
一套成熟的 RAG 系统有明确的管道:接收用户查询,在 embedding 数据库上执行向量搜索,抽取 top-K 个片段,之后才把数据交给 LLM。等语言模型介入时,它面对的只有相关性最高、密度最集中的内容:不再是 200K token 的杂乱数据,而是 1K 到 2K token 的高信号事实。注意力集中在这样的范围上,回答的准确性、可靠性和响应延迟都会有实质改善。
RAG + 大上下文
解决方案不在二选一。现代 AI 系统把精确检索和大上下文窗口结合在一起,用前者保证信号质量,用后者容纳旧模型放不下的多文档推理。
标准的生产管道是这样的:
- 接收用户查询。
- 从向量数据库中检索 40 个宽泛相关的片段。
- 用 Cross-Encoder 重排序模型对这些片段做二次评分。
- 按新的相关性分数筛出最优的 5 到 7 个片段。
- 将筛选后的上下文发送给 LLM。
Python 实现如下:
# 1. 广泛检索(通过向量搜索实现高召回率)
candidates = await vector_db.search(query=user_query, top_k=40)
# 2. 精确过滤(通过Cross-Encoder实现高精确率)
reranked_results = await reranker.rank(query=user_query, documents=candidates)
# 3. 筛选上下文窗口
best_chunks = reranked_results[:7]
# 4. 生成专注的、高信号的响应
response = await llm.generate(prompt=user_query, context=best_chunks)
大上下文窗口的好处在于,传递这些密集片段时不必再担心 token 截断的问题。它解决的是容量瓶颈,相关性的问题仍然需要检索管道来处理。
更大的上下文窗口解决的是容量,不是相关性。
语言模型是出色的推理引擎,但前提是输入经过严格过滤。把所有东西都倒进去,换来的只是不可预测的性能衰退。
检索的下一步
纯容量的竞赛已经进入收益递减的阶段,下一代 AI 系统的重心正在转移:更好的检索算法、更精细的 Cross-Encoder 排序、智能化的上下文压缩。AI 架构中真正的瓶颈从来不是能塞进多少 token,而是在源头找到该塞进去的那些信息。
更大的上下文窗口没有取代 RAG。
恰恰相反,好的检索变得前所未有地重要。在 AI 系统中,信息量和信息质量是两回事。
https://avoid.overfit.cn/post/90620d19fba643a680165fbab7b477fd
by Tanmay Bansal