微信扫码
与创始人交个朋友
我要投稿
LLM调度的核心KVCache
Mooncake作为Moonshot AI提供的Kimi服务的后端平台,提出了一种以键值缓存(KVCache)为中心的解耦架构,旨在优化长上下文场景下的服务效能,并在高负载情况下保持服务水平目标(SLOs)。
Mooncake架构通过解耦预填充和解码阶段,并以KVCache为中心进行调度和优化,有效地提升了LLM服务在长上下文和高负载场景下的性能。通过实验验证,Mooncake在保持SLOs的同时,相比基线方法,吞吐量提升了高达525%,并能在实际工作负载下处理75%以上的请求。
Mooncake的KVCache中心调度器,负责平衡最大整体有效吞吐量和满足延迟相关的SLOs。通过解耦预填充(prefill)和解码(decoding)集群,以及利用GPU集群中未充分利用的CPU、DRAM和SSD资源,实现了KVCache的解耦缓存,从而优化了资源利用率和整体吞吐量。
Mooncake采用分块流水线并行(CPP)机制,对于单个长上下文请求,Mooncake将输入token分割成小块,每个小块不超过预设的阈值(例如1000个token),并在多个节点上并行处理,以减少首个token时间(TTFT)。
Mooncake开发了基于预测的早期拒绝策略,在高负载情况下,通过预测未来负载和生成长度,提前拒绝某些请求,以避免在预填充阶段后无可用解码槽位时的资源浪费。
Mooncake主要包括以下组件:
KVCache中心调度器(Conductor)
预填充实例
解码实例
分布式KVCache池等组件。
每个请求由Conductor调度,选择预填充和解码实例,并按照以下步骤执行:
Mooncake利用CPP机制处理长上下文请求。具体步骤如下:
Mooncake的KVCache中心调度算法如下:
在系统过载时,Mooncake采用早期拒绝策略,具体步骤如下:
模拟长上下文对两个框架的影响。
长上下文请求显着扰乱了 vLLM 的解码阶段。 为了解决这个问题,vLLM 单独处理请求,而不是批量处理。
Mooncake采用了批处理,但其两阶段分解设计有效地减少了预填充阶段对解码阶段的影响,确保它永远不会破坏TBT SLO
与 vLLM 相比,Mooncake 表现出显着更高的吞吐量,增强幅度从 50% 到 525%,同时遵守相同的 TTFT 和 TBT SLO 限制。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-14
国产全AI游戏来了?!大模型直出开放世界游戏,有声可交互
2024-12-14
OpenAI直播发布第7天:ChatGPT推出Projects,本周最强功能!
2024-12-14
OpenAI 新货详解:Project
2024-12-13
Meta MobileLLM:深度架构与优化技术打造的移动设备超强语言模型
2024-12-13
漫画 Transform: 手把手用数学公式推导
2024-12-13
谷歌从来就没有落后,这一波gemini 2.0可太牛了,贾维斯来了!
2024-12-13
大模型的发展历史及简要介绍
2024-12-13
OpenAI发布49页长文,讲述o1的安全机制
2024-05-28
2024-04-26
2024-08-13
2024-08-21
2024-07-09
2024-04-11
2024-07-18
2024-08-04
2024-07-01
2024-06-13
2024-12-06
2024-12-03
2024-12-01
2024-11-29
2024-11-26
2024-11-25
2024-11-21
2024-11-18