Kimi悄悄开源了自家推理框架Mooncake~
Mooncake是为Kimi服务的平台,Kimi是由Moonshot AI提供的领先的大型语言模型(LLM)服务。
Mooncake以KVCache为中心的解耦架构,将预填充和解码集群分开。它还利用GPU集群中未充分利用的CPU、DRAM和SSD资源来实现KVCache的解耦缓存。
Mooncake的核心是其以KVCache为中心的调度器,它在最大化整体有效吞吐量的同时,满足与延迟相关的服务水平目标(SLOs)要求。与假设所有请求都将被处理的传统研究不同,Mooncake面临着由于高度过载场景带来的挑战。为了缓解这些问题,开发了一种基于预测的早期拒绝策略。实验表明,Mooncake在长上下文场景中表现出色。与基线方法相比,在某些模拟场景中,Mooncake可以实现高达525%的吞吐量增加,同时遵守SLOs。在实际工作负载下,Mooncake的创新架构使Kimi能够处理比之前多75%的请求。
-
Mooncake的底层部分是传输引擎(Transfer Engine),它支持通过TCP、RDMA、基于NVIDIA GPUDirect的RDMA以及NVMe over Fabric(NVMe-of)协议进行快速、可靠和灵活的数据传输。与gloo(分布式PyTorch使用的)和TCP相比,Mooncake传输引擎具有最低的I/O延迟。
-
基于传输引擎,实现了点对点存储库(P2P Store library),支持在集群中的节点之间共享临时对象(例如,检查点文件)。它避免了单台机器上的带宽饱和。
-
此外,修改了vLLM,以便集成传输引擎。它通过利用RDMA设备,使预填充-解码解耦更加高效。
-
未来,计划在传输引擎的基础上构建Mooncake Store,它支持池化的KVCache,以实现更灵活的预填充/解码(P/D)解耦。
https://arxiv.org/pdf/2407.00079
https://github.com/kvcache-ai/Mooncake