摘要
这篇论文介绍了RAGCache,这是一个为检索增强型生成(Retrieval-Augmented Generation,RAG)量身定制的新型多级动态缓存系统。RAG通过结合大型语言模型(LLMs)和外部知识数据库来提升各种自然语言处理任务的性能。然而,RAG引入了长序列生成,导致高计算和内存成本。RAGCache通过在GPU和主机内存层次结构中组织检索知识的中间状态并缓存它们,提出了一种针对LLM推理特性和RAG检索模式的替换策略,并动态重叠检索和推理步骤以最小化端到端延迟。实验结果表明,与集成Faiss的vLLM相比,RAGCache在时间到第一个令牌(TTFT)上减少了高达4倍,吞吐量提高了高达2.1倍。
研究背景
随着大型语言模型(LLMs)的发展,RAG通过整合外部数据库中的相关知识,进一步提升了LLMs在各种NLP任务中的表现。RAG系统首先从知识数据库中检索相关文档,然后将这些文档注入到原始请求中,并输入LLM进行生成。这种方法虽然提高了生成质量,但也带来了长序列生成的挑战,增加了计算和内存成本。
主要贡献
• 进行了RAG系统的详细性能分析,揭示了性能瓶颈和优化机会。
• 提出了RAGCache,据作者所知,这是第一个缓存外部知识中间状态并在多个查询之间共享以减少冗余计算的RAG系统。
• 设计了一种前缀感知的GDSF替换策略,利用RAG的特性最小化未命中率,并提出了一种动态推测流水线方法以最小化端到端延迟。
• 实现了RAGCache原型,并评估了其性能,结果显示RAGCache在TTFT上比vLLM集成Faiss快4倍,在吞吐量上提高了2.1倍。
研究方法
RAGCache通过知识树组织检索知识的中间状态,并在GPU和主机内存层次结构中缓存它们。提出了一种基于文档顺序、大小、频率和最近性的替换策略(PGDSF),以及一种缓存感知的请求调度方法来提高命中率。此外,RAGCache还采用了动态推测流水线策略,以动态重叠检索和推理步骤,减少端到端延迟。
实验结果
实验结果表明,RAGCache在不同的数据集和代表性LLMs上实现了显著的性能提升。与vLLM集成Faiss相比,RAGCache在时间到第一个令牌(TTFT)上减少了高达4倍,在吞吐量上提高了高达2.1倍。与SGLang相比,RAGCache在TTFT上降低了高达3.5倍,在吞吐量上提高了高达1.8倍。
结论
RAGCache通过多级缓存和动态推测流水线策略,有效地提高了RAG系统的性能,减少了计算延迟,并提高了吞吐量。
一句话总结
RAGCache通过创新的缓存机制和动态推测流水线策略,显著提升了RAG系统的性能和效率。
论文链接https://arxiv.org/abs/2404.12457