大模型“长上下文”将取代RAG吗?


该推文讨论了长上下文long-context模型与RAG模型的优劣势。作者针对对长上下文模型的一些质疑进行了回应,包括成本、检索与推理的结合、支持的token数量、缓存和速度等方面。作者认为长上下文模型有其优势,并对其未来发展持乐观态度。

要点:

  • RAG模型更便宜,而长上下文模型更昂贵,但作者认为智能模型应该首先变得聪明,然后才考虑降低成本。
  • 长上下文模型在解码过程中可以同时混合检索和推理,而RAG只在最开始时进行检索。
  • 长上下文模型虽然只支持100万上下文,而RAG支持万亿级别的上下文,但作者认为绝大多数情况下都不需要超过100万上下文的检索。


在我声称 "长语境(long context )将取代 RAG "之后的两天里,我收到了不少批评意见(非常感谢!),其中很多都有理有据。在此,我收集了主要的反驳意见,并试着逐一回应(感觉就像论文反驳一样):

RAG 便宜,长语境昂贵
没错,但请记住,与 LLM 相比,BERT-small 也很便宜,N-gram 甚至更便宜,但它们现在并没有被使用,因为我们希望模型首先是智能的,然后再让智能模型变得更便宜

人工智能的历史告诉我们,让智能模型变得更便宜比让便宜模型变得更智能要容易得多

当模型便宜时,它就永远不会智能。

长语境可以在整个解码处理过程中混合检索和推理

  • RAG 只在一开始进行检索。通常,给定一个问题,RAG 会检索与问题相关的段落,然后生成。
  • 而 Long-context 会对每一层和每个标记进行检索。在许多情况下,模型需要对每个标记进行即时交错检索和推理,并且只有在得到第一个推理步骤的结果后才知道要检索什么。只有长语境long-context才能处理这种情况。

RAG 支持万亿级别的标记,而 longcontext 则是 100 万。
没错,但输入文档有一个自然分布,我倾向于认为大多数需要检索的情况都在百万级别以下。

举个例子,想象一下一个层级的人在处理一个案件时,输入的是相关的法律文件,或者一个学习机器学习的学生,输入的是三本 ML 书籍--感觉没有 1B 那么长吧?

RAG 可以缓存,而 longcontext 需要重新输入整个文档。
这是对 longcontext 的一个常见误解:有一种东西叫 KV 缓存,你也可以设计出复杂的缓存和内存分层 ML 系统来使用 KV 缓存。也就是说,你只需读取一次输入,随后的所有查询都将重用 KV 缓存。也许有人会说 kv 缓存太大,但不用担心,我们的 LLM 研究人员会及时为你提供疯狂的 kv 缓存压缩算法。

你还想调用搜索引擎,这也是检索。 没错,而且在短期内,这将继续是真的。然而,有些疯狂的研究人员的想象力可以天马行空--比如,为什么不让语言模型直接关注整个 google 搜索索引,即让模型吸收整个 google。我的意思是,既然你们相信 AGI,为什么不呢?

今天的双子座Gemini 1.5 1M 上下文速度很慢。没错,而且肯定需要更快。我对此持乐观态度--它肯定会快很多,最终会和 RAG 一样快。