面试官问“长上下文最终会杀死RAG吗?”怎么回答
我还记得24年研究RAG的时候,压根没有想到,后来技术的发展,大模型的上下文能长成现在这个样,而且随着技术进一步发展,其实Memory的加入确实能让Agent的上下文能力变得很强,但真当面试时如果被问到这个问题,你得清楚,其实是一个非常典型的面试陷阱。(我准备的答案在文末)
为什么这么说?
如果你跟风回答“会”,面试官很容易判断你缺乏工程落地经验,也没有真正考虑过成本问题。但如果你回答“不会”,面试官往往又会继续追问:
既然不会,那现在模型拼命把上下文窗口做到几百万Token,难道方向错了吗?RAG还有存在的必要吗?
你会觉得,这道题似乎怎么回答都不对:说“会”,显得外行;说“不会”,又像是在否定技术进步。
于是很多人就开始怀疑:既然模型已经可以读超长上下文,为什么还要费劲做RAG?直接把所有文档丢给模型,不就解决问题了吗?
事情真的这么简单吗?
一、未来主流架构:混合式RAG
这张图其实可以理解为一个漏斗结构:
从左到右,数据量越来越少,但信息质量越来越高。
整个流程大致分为三层:
- 检索增强(Retrieval)
- 上下文构建(Context Building)
- 长上下文模型推理(Long Context Reasoning)
二、第一层:RAG解决的是“广度”
先思考一个问题:
如果企业内部有1TB数据,甚至需要搜索整个互联网的信息,你能把这些内容全部塞进模型上下文吗?
显然不可能。这就像去图书馆查资料:
现在的模型确实“记忆力”很强,拥有长上下文能力,可以一次读完一整排书架的书。但图书馆里有几百万本书,你不可能把整个图书馆都搬回家。
这正是RAG的作用:
它的核心任务,是从海量数据中先筛选出最相关的那一小部分。
比如:
- 从百万篇文档中
- 找出最相关的 几十篇或几百篇
无论模型窗口多大,外部数据规模永远比它更大。所以RAG解决的是“搜索广度”的问题。
三、第二层:上下文构建
假设我们已经检索出了50篇相关文档。接下来问题来了:我们是直接把这 50 篇文档一股脑全部丢给模型吗?
如果其中包含广告内容、过期数据、错误信息,那模型很可能会被噪声信息误导。
因此中间这一步非常关键:上下文构建(Context Building)。
通常会做几件事:
- 重排序(Re-ranking)
- 内容清洗
- 摘要压缩
- 信息拼接
可以把它想象成你把书借回家后,会:
- 把重点章节折个角
- 标记重要段落
- 把无关内容过滤掉
最终整理出一份信息密度极高的材料。
在工程实践中,最后送入模型的内容通常是:5万到10万Token的高质量上下文。
四、第三层:长上下文模型
最后才轮到真正的主角,长上下文模型。
在早期RAG中,由于上下文窗口很小,我们只能给模型提供几段零散文本,模型很容易断章取义。
但现在有了长上下文能力,情况完全不同:
我们可以把整理好的大量高质量资料一次性输入模型。
此时模型真正发挥的是:
深度理解与推理能力
比如:
- 跨文档关联信息
- 理解复杂逻辑关系
- 做长链条推理
所以整个逻辑其实很清晰:
RAG负责缩小范围,长上下文负责深入阅读。
五、为什么不能直接把所有文档丢给模型?
有同学可能还是不服气:
如果我有钱,每次都把一百本书塞给模型不就行了吗?
理论上可以,但在工程实践中几乎是死路一条。原因主要有三个。
1. 成本问题(Cost)
现在的大模型基本都是按Token收费,就算Coding Plan是按Prompt收费也没区别。
如果不使用RAG:
每次提问都需要把100本书重新输入模型一次,成本会非常恐怖。
而RAG可以把输入Token减少90% 甚至99%。这节省的不是一点点,而是实实在在的运营成本。
所以:RAG本质上是在帮企业省钱。
2. 速度问题(Latency)
你有没有试过给模型上传一个非常大的文件?通常需要等很久,它才会输出第一个字。
这就是所谓的首字延迟(Time to First Token)。
如果用户每问一个问题都要等待几十秒甚至一分钟,大部分用户早就退出页面了。
通过RAG只检索必要信息,可以把响应时间控制在秒级。
3. 准确率问题(Lost in the Middle)
这是最反直觉的一点,很多人以为:
给模型越多信息,答案就越准确。
但学术界有一个著名现象:Lost in the Middle(中间遗忘)。当上下文过长时,模型往往:
- 记得开头
- 记得结尾
- 忽略中间部分
结果反而更容易出错。因此:
先通过RAG进行筛选和提纯,模型回答反而更准确。
六、正确答案是什么?
回到最开始的面试题:
长上下文会杀死RAG吗?
答案非常明确:不会。
但两者之间的关系已经发生变化。可以记住这样一个简单公式:
RAG解决“知道得广”的问题Long Context解决“理解得深”的问题
未来的主流架构既不是:
- 纯RAG
- 也不是纯Long Context
而是:
Long Context + RAG
先通过 RAG 检索出高质量的长内容,再让模型进行深度阅读和推理。
七、一句话总结
所以下次面试官再问这个问题,你可以直接这样回答:
RAG负责广度,Long Context负责深度。它们不是竞争关系,而是最佳搭档。
不过,最近发现了一个新项目,好吧也不算新项目了:PageIndex,是一个无向量、推理驱动的RAG框架,我感觉很新奇,打算研究研究,或许能推荐给大家作为一个AI项目练手。
#AI求职实录#AI 面试题目精讲专栏:一题一讲、一讲一通透,系统提升 AI 面试应答能力与竞争力
