大型語言模型(LLMs)變得越來越複雜,需求也在增加,這讓許多公司在提供可擴展且具成本效益的模型服務(Model-as-a-Service, MaaS)時面臨重大挑戰。LLMs在各種應用中的快速採用,導致了輸入/輸出長度、到達頻率和服務需求的變化。如何平衡資源使用以滿足這些多樣化的需求,成為了一個關鍵挑戰。要達成這種平衡,需要複雜的策略來滿足不同的服務水平目標(Service Level Objectives, SLOs),例如延遲和吞吐量。此外,傳統的LLM服務架構通常假設有足夠的資源來處理所有請求,但隨著需求上升,尤其是在高峰使用時,這變得越來越困難。
主要挑戰在於在不妥協延遲的情況下最大化吞吐量,特別是當運營成本上升而GPU資源仍然有限時。為了解決這些問題,Moonshot AI開發了一種新的架構。
Moonshot AI開源其核心推理架構:Mooncake
中國的人工智慧公司Moonshot AI正式開源了其核心推理架構,名為Mooncake。Mooncake旨在解決LLM服務中的可擴展性和效率挑戰。Moonshot AI採用以KVCache為中心的分散架構,使Mooncake與傳統的LLM服務平台有所不同。Mooncake的第一個開源組件,稱為Transfer Engine,現在已在GitHub上提供,未來還會有更多組件發布(GitHub鏈接)。
Mooncake的核心是其以KVCache為中心的計算工作負載處理方法。通過將預填充和解碼集群分開,Mooncake可以動態優化資源,利用未充分利用的CPU、DRAM和SSD資源進行高效緩存。這種分離對於解決LLM服務階段的多樣化計算特性至關重要。開源Mooncake的決定反映了對透明度和社區驅動改進LLM可擴展性的承諾。
技術細節
Mooncake利用以KVCache為中心的預填充-解碼(Prefill-Decoding, PD)分離技術和存儲-計算分散架構,顯著提高了Moonshot AI的LLM服務Kimi的推理吞吐量。KVCache機制是優化吞吐量和延遲的核心。Mooncake將KVCache的使用與計算任務隔離,讓未充分利用的硬體如CPU和SSD來管理。
Mooncake的架構將LLM服務分為兩個階段——預填充和解碼。在預填充階段,可重用的緩存被轉移到預填充實例,這樣可以優化第一個標記的生成,同時減少冗餘計算。然後,在解碼階段,KVCache被聚合,實現高效的批處理。這種分離導致了顯著的性能提升。
通過實施基於預測的早期拒絕政策,Mooncake還幫助防止在高峰請求期間系統過載。這種方法對於維持首次標記時間(Time to First Token, TTFT)和標記間時間(Time Between Tokens, TBT)的服務水平目標(SLOs)至關重要,即使在高工作負載下也能保持穩定。實驗結果顯示,與基準相比,Mooncake在模擬場景中實現了最多五倍的吞吐量增長,並在現實工作負載下能夠處理75%更多的請求。
Mooncake開源的意義是多層次的。它代表了LLM推理工作負載去中心化的進展,確保沒有單一硬體組件成為瓶頸。以KVCache為中心的調度模型有效平衡資源負載,使服務提供者能夠在不違反延遲要求的情況下最大化吞吐量。考慮到各行各業對LLM能力日益增長的需求,這種效率至關重要。
實驗結果顯示,Mooncake在某些模擬長上下文場景中實現了五倍的吞吐量增長,同時保持所需的SLO。在現實環境中,Mooncake使Kimi能夠處理比以前架構多75%的請求。這些改進突顯了Mooncake高效擴展和降低成本的能力。分散的方法還提供了在運行中靈活添加計算資源的能力,這比傳統的耦合系統更有效地解決了LLM工作負載的變異性。
分階段的開源推出還鼓勵了協作開發。通過首先推出Transfer Engine,Moonshot AI旨在收集社區的見解,然後再發布其他組件。這種分階段的方法旨在促進進一步的優化和在需要高效LLM服務解決方案的各個行業中的更廣泛採用。
結論
Moonshot AI開源Mooncake的決定反映了整個行業朝著透明和可擴展的人工智慧開發實踐的趨勢。通過專注於以KVCache為中心的分離,Mooncake解決了LLM服務的關鍵挑戰——延遲、效率和可擴展性。它已經顯示出顯著的性能增益,使其成為LLM服務的一個有前途的框架。Mooncake的架構有效平衡了計算和緩存需求,提高了資源利用率,降低了延遲,增強了整體吞吐量。分階段的開源方法強調了Moonshot AI對持續改進和社區合作的承諾。
新聞來源
本文由 AI 台灣 使用 AI 編撰,內容僅供參考,請自行進行事實查核。加入 AI TAIWAN Google News,隨時掌握最新 AI 資訊!