Mooncake是月之暗面Kimi聯合清華大學等機構共同開源的大模型推理架構。采用以KVCache為中心的分布式架構,通過分離預填充和解碼集群,充分利用GPU集群中未充分利用的CPU、DRAM和SSD資源,實現高效的KVCache緩存。Mooncake的核心優勢在于能顯著提升大模型推理的吞吐量,降低算力開銷,在保持服務延遲相關的服務級別目標(SLO)的同時,處理高負載場景。架構在長上下文場景中表現出色,能顯著提高吞吐量,同時支持基于預測的早期拒絕策略,優化過載情況下的資源分配。Mooncake項目在Github上開源,推動大模型技術的高效推理平臺發展。
Mooncake的主要功能高效的大模型推理:Mooncake通過其分布式架構,優化了大模型的推理過程,特別是在處理長上下文數據時,能顯著提升推理吞吐量。KVCache中心化設計:以KVCache為中心,Mooncake實現了高效的數據緩存和重用,減少了對GPU資源的依賴,降低了算力開銷。預填充與解碼分離:架構將預填充(Prefill)和解碼(Decode)階段分開處理,資源可以針對不同階段的計算特性進行優化。資源優化:通過分離式設計,Mooncake能更有效地利用CPU、DRAM和SSD資源,提高了資源利用率。負載均衡:Mooncake實現了基于緩存負載的均衡策略,通過自動熱點遷移方案,提升了緩存命中率和系統負載的均衡。過載管理:面對高負載情況,Mooncake采用基于預測的早期拒絕策略,優化資源分配并減少無效計算。高性能傳輸:基于RDMA技術,Mooncake實現了跨節點的高速KVCache傳輸,降低了延遲。標準化接口:Mooncake為大模型時代打造新型高性能內存語義存儲的標準接口,提供參考實現方案。成本降低:通過優化推理過程和資源利用,Mooncake有助于降低大模型推理的成本,AI技術更加經濟高效。Mooncake的技術原理分布式架構:利用GPU集群中的CPU、DRAM和SSD資源,實現KVCache的分布式存儲和傳輸,提高了緩存容量和傳輸帶寬,降低了對單一GPU資源的依賴。全局調度器(Conductor):負責根據當前KVCache分布和工作負載情況調度請求,以及決定KVCache塊的復制或交換,優化整體吞吐量和滿足服務級別目標(SLO)。分塊流水線并行(Chunked Pipeline Parallelism):對于長上下文請求,將輸入標記分成多個塊,并在不同的節點上并行處理,以減少延遲。Layer-wise預填充:異步加載和存儲KVCache,通過重疊傳輸和計算,減少VRAM占用。緩存感知調度:Mooncake的調度算法考慮了KVCache的重用、預填充時間和實例負載的排隊時間,以實現高效的請求調度。Mooncake的項目地址Github倉庫:https://github.com/kvcache-ai/MooncakearXiv技術論文:https://arxiv.org/pdf/2407.00079Mooncake的應用場景自然語言處理(NLP):Mooncake可以用于支持各種NLP任務,如語言翻譯、文本摘要、情感分析、問答系統和聊天機器人等。內容推薦系統:在推薦系統中,Mooncake可以用于處理用戶行為數據和內容特征,提供個性化的推薦。搜索引擎:Mooncake可以用于改進搜索引擎的查詢理解和文檔排名,通過理解復雜的查詢意圖和文檔內容,提供更準確的搜索結果。語音識別和生成:在語音識別領域,Mooncake可以用于提高語音到文本的轉換準確性;在語音生成領域,可以生成更自然和流暢的語音輸出。圖像和視頻分析:高效的推理能力也可以輔助圖像和視頻分析任務,如圖像標注、視頻內容理解等。智能客服和虛擬助手:Mooncake可以提供強大的后端支持,智能客服和虛擬助手能處理復雜的對話和任務。 
