检索增强生成(RAG)可以通过整合外部数据库来提高大型语言模型(LLMs)的生成质量。然而,从大型数据库中检索信息可能占据整个生成时间的很大一部分,特别是当检索定期执行以与生成的最新状态保持一致时。为了解决这个问题,提出一种新颖的算法-系统协同设计方法:PipeRAG,旨在提高大型语言模型(LLMs)的生成质量,同时减少生成延迟。
PipeRAG通过整合以下三个关键技术来实现这一目标:
- 流水线并行性(Pipeline Parallelism):PipeRAG允许同时进行检索和生成过程,从而减少整体生成时间。
- 灵活的检索间隔(Flexible Retrieval Intervals):通过调整检索间隔,PipeRAG能够最大化流水线并行性的效率。
-
性能模型(Performance Model):PipeRAG使用性能模型自动平衡检索质量和延迟,根据生成状态和底层硬件动态调整检索搜索空间。PipeRAG的算法-系统协同设计:基于三个以性能为中心的观察(O1∼O3),PipeRAG结合了一个系统感知算法,该算法集成了管道并行性(S1)和灵活的检索间隔(S2),以及一个由性能模型指导的算法感知检索系统(S3)。

上图通过视觉化的方式展示了PipeRAG的核心思想和方法,即通过算法和系统设计的紧密结合,来解决传统RAG系统中的性能瓶颈,实现更快的文本生成速度,同时保持或提升生成内容的质量:性能中心的观察(Performance-Centric Observations)
- O1:硬件效率低下,因为检索(Retrieval)和推理(Inference)之间的依赖关系导致硬件资源未被充分利用。
- O2:随着序列长度的增加,每个新生成的token所需的推理时间也在增加,这主要是由于Transformer神经网络中的注意力机制。
- O3:检索过程中,特别是在近似最近邻搜索中,存在搜索质量和搜索延迟之间的权衡。
- S1:流水线并行性(Pipeline Parallelism):通过允许检索和推理并行执行,减少了硬件资源的空闲时间,提高了硬件利用率。
- S2:灵活的检索间隔(Flexible Retrieval Intervals):通过调整检索间隔,优化了流水线并行性的效率。
- S3:性能模型驱动的检索(Performance-Model-Driven Retrievals):使用性能模型动态调整检索搜索空间,以在不增加生成延迟的情况下,最大化检索质量。
- 在生成过程中,PipeRAG使用稍微陈旧的查询窗口(stale query window)来预取数据库中的内容,而不是依赖于最新的生成上下文。
- 一旦检索到内容,这些内容会通过推理系统进行处理,同时检索系统会继续并行地预取下一批内容。
- 通过这种方式,PipeRAG实现了检索和推理的重叠执行,从而减少了整体的生成延迟。
实验结果表明,PipeRAG在不牺牲生成质量的情况下,实现了高达2.6倍的端到端生成延迟加速。这些结果展示了算法与系统协同设计在检索增强生成中的有效性,并为将来的RAG系统采用PipeRAG铺平了道路。PipeRAG 在延迟-困惑度(较低的延迟和困惑度更佳)上显著优于 RETRO

性能驱动的检索(S3)能够在显著降低困惑度的同时,实现与非检索模型相当的延迟。括号内的数值表示与没有检索的基线模型相比的差异(较低的延迟和困惑度更佳)

PipeRAG: Fast Retrieval-Augmented Generation via Algorithm-System Co-design
https: