月饼:以KVCache为中心的分解式
大语言模型服务架构
📃 技术报告
月饼是 Kimi 的服务平台,Kimi是由 Moonshot AI 提供的领先大语言模型服务。 本仓库包含其技术报告和开源的跟踪数据。
更多内容即将推出 - 可能不会太快,但敬请期待!
🔥 更新
- 2024年7月9日: 我们将跟踪数据以jsonl文件形式开源!
- 2024年6月27日: 我们在知乎上发布了一系列中文博客,进行更深入的讨论 知乎1, 2, 3, 4。
- 2024年6月26日: 初始技术报告发布。
🎉 概述
月饼采用以KVCache为中心的分解式架构,将预填充和解码集群分离。它还利用GPU集群中未充分利用的CPU、DRAM和SSD资源来实现KVCache的分布式缓存。
月饼的核心是其以KVCache为中心的调度器,在最大化整体有效吞吐量的同时满足与延迟相关的服务水平目标(SLO)要求。与假设所有请求都将被处理的传统研究不同,月饼面临高度超载场景的挑战。为缓解这些问题,我们开发了基于预测的早期拒绝策略。实验表明,月饼在长上下文场景中表现出色。与基线方法相比,月饼在某些模拟场景中可以在遵守SLO的同时实现高达525%的吞吐量增加。在真实工作负载下,月饼的创新架构使Kimi能够处理75%更多的请求。
📦 开源跟踪数据
{
"timestamp": 27482,
"input_length": 6955,
"output_length": 52,
"hash_ids": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 2353, 2354]
}
{
"timestamp": 30535,
"input_length": 6472,
"output_length": 26,
"hash_ids": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 2366]
}
以上展示了我们跟踪数据集中的两个样本。跟踪数据包括请求到达的时间、输入token数量、输出token数量和重新映射的块哈希。为保护客户隐私,我们应用了多种机制来移除用户相关信息,同时保留数据集对模拟评估的实用性。更多关于跟踪数据的描述(例如,高达50%的缓存命中率)可以在论文第3版的第4节中找到。
📑 引用
如果您发现论文或跟踪数据有用,请引用我们的论文:@article{qin2024mooncake,
title = {Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving},
author = {Ruoyu Qin, Zheming Li, Weiran He, Mingxing Zhang, Yongwei Wu, Weimin Zheng, and Xinran Xu},
year = {2024},
url = {https://arxiv.org/abs/2407.00079}
}