论文题目:Infinite-LLM: Efficient LLM Service for Long Context with DistAttention and
Distributed KVCache
论文链接:https://arxiv.org/pdf/2401.02669.pdf
概要
研究背景:
随着LLMs的快速发展,云服务在支持长上下文长度的任务时面临资源分配和释放的挑战,这可能导致性能下降或资源浪费。为了解决这些问题,论文提出了DistAttention,一种新的分布式注意力算法,以及DistKV-LLM,一个分布式LLM服务引擎,旨在提高云服务的性能和适应性。
方案设计:
- DistAttention算法 通过将KV缓存分割成更小、更易管理的单元(rBlocks),每个rBlock包含一组键值对(KV pairs)。这种分割允许在分布式环境中独立地处理和管理每个rBlock,从而提高了计算的并行性和内存的利用率。
- DistKV-LLM引擎 则动态管理KV缓存,并有效地协调数据中心内所有可用的GPU和CPU内存。此外,论文还介绍了rManager和gManager两个组件,分别负责虚拟化LLM服务实例的GPU和CPU内存,并实现全局资源的有效、安全和协调管理。
DistKV-LLM如何解决内存碎片化问题
实验结论:
在32个NVIDIA A100 GPU的云环境中,采用了包含上下文长度最高达 1,900K 的18个代表性基准数据集进行严格检验。系统展示了1.03-2.4倍的端到端吞吐量提升,并支持比当前最先进的LLM服务系统长2-19倍的上下文长度。
讨论
1、DistAttention算法如何克服长上下文任务中KV缓存的动态性和不可预测性?
答案: DistAttention通过将KV缓存分割成多个Micro Attentions(MAs),每个MA处理KV缓存的一个子序列。这种设计允许独立地计算每个MA的结果,并通过聚合过程(包括缩放和归约操作)来获得最终的注意力结果。这种方法使得注意力层的计算可以与Transformer块中的其他层解耦,从而实现独立的模型并行策略和内存管理。
2、DistKV-LLM引擎在处理长上下文任务时如何优化内存和计算资源的使用?
答案: DistKV-LLM通过动态管理KV缓存来优化资源使用。当LLM服务实例遇到由于KV缓存扩展导致的内存不足时,DistKV-LLM会主动从负载较轻的实例中借用可用的内存空间。这一机制通过rManager和gManager的协作实现,rManager虚拟化本地设备上的内存,而gManager作为全局协调器,确保资源的有效管理。
3、论文中提出的DGFM算法如何解决分布式KV缓存环境中的内存碎片化问题?
答案: DGFM(Distributed Graph Fragmentation Management)算法通过在全局债务账本中识别和消除循环来管理内存碎片。它将内存债务关系构建成一个有向图,然后在图中寻找循环。一旦找到循环,就通过战略性地召回和交换相应的内存块来解决债务,从而提高系统效率和内存利用率。这种方法减少了远程内存访问的需要,从而改善了数据局部性。
推荐阅读
- • TinyGPT-V:小而强大,轻量级骨架打造高效多模态大语言模型
- • 2024:ToB、Agent、多模态
- • TA们的RAG真正投产了吗?(上)
- • 2023年最新LLM发展时间线一览(ChatGPT、LLaMA等)
欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。