大模型“长上下文”将取代RAG吗?
内容提要
该推文讨论了长上下文模型与RAG模型的优劣势。长上下文模型在解码过程中可以同时混合检索和推理,而RAG只在最开始时进行检索。长上下文模型虽然只支持100万上下文,而RAG支持万亿级别的上下文,但作者认为绝大多数情况下都不需要超过100万上下文的检索。长上下文模型可以使用缓存,而RAG需要重新输入整个文档。作者对长上下文模型的未来发展持乐观态度。
延伸解读
成本与智能的权衡
作者承认长上下文模型比RAG更昂贵,但强调智能模型应优先追求智能性,再考虑降低成本。类比BERT-small和N-gram虽然便宜却未被广泛使用,说明在AI发展中,让智能模型变便宜比让便宜模型变智能更容易。因此,成本不应成为否定长上下文模型的主要理由。
检索与推理的深度结合
RAG仅在生成前进行一次检索,而长上下文模型能在解码过程中对每一层和每个标记进行即时检索与推理的交错。这种能力在需要根据中间推理结果决定下一步检索内容的场景中尤为关键,是RAG难以实现的。
上下文长度的实际需求
虽然RAG支持万亿级标记,长上下文模型仅支持100万,但作者认为大多数检索场景的输入文档长度在百万级别以下,例如法律文件或几本机器学习书籍。因此,100万上下文对多数实际应用已足够,万亿级并非普遍必需。
缓存机制与速度前景
针对长上下文需重新输入整个文档的误解,作者指出KV缓存可让输入只读取一次,后续查询重用缓存。尽管当前Gemini 1.5 1M上下文速度较慢,但作者乐观认为未来会大幅提速,最终与RAG相当。
Q&A
长上下文模型和RAG在检索与推理的结合方式上有什么不同?
长上下文模型可以在整个解码过程中混合检索和推理,对每一层和每个标记进行检索;而RAG通常只在最开始检索一次,然后基于检索结果生成。
长上下文模型只支持100万上下文,而RAG支持万亿级别,为什么作者认为长上下文仍可能取代RAG?
作者认为大多数需要检索的情况都在百万级别以下,例如处理相关法律文件或学习三本机器学习书籍,输入长度远小于10亿。因此100万上下文对绝大多数场景已经足够。
长上下文模型成本更高,为什么作者仍认为它比RAG更有前景?
作者认为智能模型应该首先变得聪明,然后再降低成本。人工智能的历史表明,让智能模型变便宜比让便宜模型变智能更容易。如果模型一开始就便宜,它永远不会智能。
长上下文模型需要重新输入整个文档吗?它如何利用缓存?
不需要。长上下文模型可以使用KV缓存,只需读取一次输入,后续所有查询都会重用KV缓存。此外还可以设计复杂的缓存和内存分层ML系统来使用KV缓存。
目前长上下文模型的速度如何?作者对未来速度有何看法?
目前如Gemini 1.5 1M上下文速度很慢,但作者持乐观态度,认为它肯定会快很多,最终会和RAG一样快。
长上下文模型能否直接利用搜索引擎?作者对此有何设想?
短期内调用搜索引擎仍是检索。但作者提到有些研究人员设想让语言模型直接关注整个Google搜索索引,即让模型吸收整个Google,既然相信AGI,为什么不呢?