Mooncake - 月之暗面Kimi联合清华等机构推出的大模型推理架构
发布于 2024-11-28 · Mooncake是月之暗面Kimi联合清华大学等机构共同开源的大模型推理架构。采用以KVCache为中心的分布式架构,通过分离预填充和解码集群,充分利用GPU集群中未充分利用的CPU、DRAM和SSD资源,实现高效的KVCache缓存。Mooncake的核心优势在于能显著提升大模型推理的吞吐量,降低算力开销,在保持服务延迟相关的服务级别目标(SLO)的同时,处理高负载场景。
Mooncake是什么
Mooncake是月之暗面Kimi联合清华大学等机构共同开源的大模型推理架构。整体以KVCache为中心做分布式,把预填充和解码拆到不同集群,GPU集群里平时闲着的CPU、DRAM和SSD也被利用起来,KVCache缓存做得比较高效。它主要解决两件事:推理吞吐量往上走,算力开销往下走,同时还要守住和服务延迟相关的服务级别目标(SLO),高负载场景也得照常处理。长上下文场景里它的表现尤其突出,吞吐量提升明显;此外还支持基于预测的早期拒绝策略,过载时资源怎么分更有章法。项目已在Github上开源,想推动的是大模型高效推理平台这件事。
Mooncake的主要功能
- 高效的大模型推理:分布式架构把推理过程重新理了一遍,处理长上下文数据时尤其吃这一套,推理吞吐量提升明显。
- KVCache中心化设计:整个系统围着KVCache转,缓存和重用的效率很高,对GPU资源的依赖少了,算力开销也就降了下来。
- 预填充与解码分离:预填充(Prefill)和解码(Decode)两个阶段分开处理,资源可以按各自的计算特点来配。
- 资源优化:分离式设计让CPU、DRAM和SSD这些资源不再闲置,利用率比原来高。
- 负载均衡:负载均衡交给缓存负载来判断,热点会自动迁移,缓存命中率和系统负载的均衡度都跟着改善。
- 过载管理:高负载时它会按预测提前拒掉一部分请求,把资源留给更要紧的计算,无效计算少一些。
- 高性能传输:跨节点的KVCache传输走RDMA,速度快,延迟也低。
- 标准化接口:它还给大模型时代的高性能内存语义存储定了一套标准接口,并附上参考实现。
- 成本降低:推理过程和资源利用都优化过,大模型推理的成本能压下来,AI 技术用起来也更经济。
Mooncake的技术原理
- 分布式架构:GPU集群里还有CPU、DRAM和SSD可用,KVCache就分散存、分散传,缓存容量和传输带宽都上去了,也不用死盯着单一的GPU资源。
- 全局调度器(Conductor):它看着KVCache的分布和当前负载来派发请求,顺带决定KVCache块是复制还是交换,整体吞吐量和服务级别目标(SLO)靠它来平衡。
- 分块流水线并行(Chunked Pipeline Parallelism):长上下文请求的输入标记会被切成若干块,分到不同节点并行处理,延迟因此压下来。
- Layer-wise预填充:KVCache的加载和存储走异步,传输与计算重叠起来,VRAM占用能少一些。
- 缓存感知调度:调度算法同时看三件事:KVCache能不能重用、预填充要多久、实例排队排了多长,请求因此派得比较合理。
Mooncake的项目地址
- Github仓库:https://github.com/kvcache-ai/Mooncake
- arXiv技术论文:https://arxiv.org/pdf/2407.00079
Mooncake的应用场景
- 自然语言处理(NLP):各种NLP任务都能跑,语言翻译、文本摘要、情感分析、问答系统、聊天机器人都算。
- 内容推荐系统:推荐系统里,用户行为数据和内容特征可以交给它处理,个性化推荐也从这儿来。
- 搜索引擎:搜索这边能帮上查询理解和文档排名,复杂的查询意图和文档内容读懂了,给的结果自然更贴题。
- 语音识别和生成:语音识别方向可以用来提升语音转文本的准确率;语音生成方向则能让输出的语音更自然、更顺。
- 图像和视频分析:推理效率高,图像和视频分析也搭得上手,比如图像标注、视频内容理解。
- 智能客服和虚拟助手:后端交给它,智能客服和虚拟助手就有余力去处理复杂的对话和任务。






0 条评论
暂无评论,来抢沙发。