面试官问“长上下文最终会杀死RAG吗?”怎么回答

我还记得24年研究RAG的时候,压根没有想到,后来技术的发展,大模型的上下文能长成现在这个样,而且随着技术进一步发展,其实Memory的加入确实能让Agent的上下文能力变得很强,但真当面试时如果被问到这个问题,你得清楚,其实是一个非常典型的面试陷阱(我准备的答案在文末)

为什么这么说?

如果你跟风回答“会”,面试官很容易判断你缺乏工程落地经验,也没有真正考虑过成本问题。但如果你回答“不会”,面试官往往又会继续追问:

既然不会,那现在模型拼命把上下文窗口做到几百万Token,难道方向错了吗?RAG还有存在的必要吗?

你会觉得,这道题似乎怎么回答都不对:说“会”,显得外行;说“不会”,又像是在否定技术进步。

于是很多人就开始怀疑:既然模型已经可以读超长上下文,为什么还要费劲做RAG?直接把所有文档丢给模型,不就解决问题了吗?

事情真的这么简单吗?

一、未来主流架构:混合式RAG

这张图其实可以理解为一个漏斗结构

从左到右,数据量越来越少,但信息质量越来越高。

整个流程大致分为三层:

  1. 检索增强(Retrieval)
  2. 上下文构建(Context Building)
  3. 长上下文模型推理(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 面试题目精讲专栏:一题一讲、一讲一通透,系统提升 AI 面试应答能力与竞争力

全部评论

相关推荐

牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务