Google 研究的推测 RAG
为什么选择 RAG
新兴能力
最近几年,大家忽然发现大语言模型涌现出一些令人意外的能力——在与用户或任务交互的过程中,它们能展现出事先并未明确训练过的功能。

具体来说,这些能力体现在:
解决问题
适应用户输入
通过对上下文的理解,LLM可以生成与给定场景高度相关且恰当的回应,即使提示中并未给出明确的说明。
这种“涌现能力”的现象,一度让业界热衷于探索未知的大模型功能。不过,最近一项研究推翻了这个概念——那些看似涌现出来的能力,本质上只是LLM对给定背景信息做出的强烈反应。
指令与上下文参考
在推理阶段,LLM对指令的反应相当出色,尤其是当提示中带上上下文参考数据时,表现更是拔尖。大量的实证研究已经反复证明:相比之下,LLM更优先采纳推理时获得的上下文知识,而不是微调阶段学到的模型参数。
上下文学习
所谓上下文学习,就是模型根据用户或任务提供的特定上下文来调整和优化自己的回应。说白了,它通过感知自己“身处的环境”,从而输出更准确、更连贯的回答。
幻觉
那么,在推理时给LLM提供上下文参考、实现上下文学习,能带来什么好处?最直观的一点就是——大幅减轻幻觉问题。
检索增强生成(RAG)的核心,正是将大语言模型的生成能力与外部知识源结合起来,输出更准确、更新鲜的答案。
近期RAG的进展,主要集中在通过迭代式LLM细化,或者通过额外指令调优获得的自我批评能力,来持续改善检索质量。
推测性 RAG
接下来这张图梳理了RAG的不同路线:标准RAG、自我反思RAG、校正RAG,以及我们今天要重点聊的推测性RAG。
- 标准RAG
- 自我反思RAG
- 校正RAG
- 推测性RAG
标准RAG
自我反思RAG
校正RAG
推测性RAG

简单说,Speculative RAG是一个框架:用更大的通用语言模型来高效验证由较小的、专门的蒸馏语言模型并行生成的多个RAG草稿。每个草稿对应检索文档的不同子集,带来视角多样性,同时有效减少每个草稿的输入token数。
实验数据表明,这种方法不仅能增强理解力,还能缓解长上下文带来的位置偏差。把起草工作交给小模型、验证工作交给大模型,一锤定音,整个RAG流程被显著加速。最终结果:与传统RAG系统相比,准确率提升12.97%,延迟降低51%。
如何实现
这个新框架的核心思路,是用一个较小的专业RAG起草器去生成高质量的草稿答案。每个草稿都基于检索到的文档的不同子集,既带来了多样化视角,又减少了输入token。
通用LM不需要额外调整,直接与RAG起草器配合,负责验证并整合最有希望的草稿,输出最终答案。这种方式增强了对每个子集的理解,有效避免了“中间迷失”的问题。
按照Google的说法,通过让规模较小的专业LM负责起草,规模较大的通用LM并行进行单次、公正的验证,RAG的速度可以得到显著提升。在四个自由形式问答和闭集生成基准上的大量实验,已经充分证明了这套方法的有效性及效率。
主要考虑因素
- 这项研究很好地示范了:小模型在模型编排的大框架里可以发挥巨大作用。
- SLM之所以被重用,正是因为它们在推理能力上被专门优化过——这恰恰是它们被创造出来的初衷。
- SLM在这个场景下非常合适,因为实现本质上并不需要知识密集型——相关和上下文信息都在推理时注入,模型本身只需负责推理。
- 框架的目标是优化token数量,从而降低计算成本。
- 与传统RAG系统相比,延迟降低了51%。
- 准确率提升高达12.97%。
- 全程不需要对模型进行微调。
- 多个RAG草稿由较小的专门语言模型并行生成。
- 这种规模小、专门化的RAG模型擅长对检索到的文档进行推理,能快速生成准确响应——让人想起同样以推理能力见长的Orca-2和Phi-3。
- 实验表明,用Mistral 7B作为RAG起草器效果最佳。
- 验证器则使用Mixtral 8x7B。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名