SGLang 推理引擎:LLM 部署的加速利器,對話與生成新高度!

企業在部署大型語言模型(LLM)時面臨着重大挑戰。主要問題包括管理處理大量數據所需的巨大計算需求、實現低延遲,以及確保 CPU 密集型任務(如調度和內存分配)與 GPU 密集型計算之間的最佳平衡。反覆處理類似輸入進一步加劇了許多系統中的低效率,導致冗餘計算,從而降低整體性能。此外,實時生成結構化輸出(如 JSON 或 XML)也引入了額外的延遲,使得應用程序難以在規模上提供快速、可靠、成本效益高的性能。

SGLang 是由 SGLang 團隊設計的一款開源推理引擎,旨在解決這些挑戰。它在推理過程中優化了 CPU 和 GPU 資源,相比許多競爭性解決方案,實現了顯著更高的吞吐量。其設計採用了一種創新的方法,減少了冗餘計算,提高了整體效率,從而使得組織能夠更好地管理與 LLM 部署相關的複雜性。

RadixAttention 是 SGLang 的核心,它可以在多個請求之間重用共享的提示前綴。這種方法有效地減少了相似輸入序列的重複處理,提高了吞吐量。該技術在對話界面或檢索增強生成應用中具有優勢,在這些應用中,相似的提示經常被處理。通過消除冗餘計算,系統確保資源得到更有效的利用,從而有助於加快處理速度並使應用更加響應迅速。

SGLang 的另一個關鍵特性是其零開銷批量調度器。早期的推理系統常常因爲批量調度、內存分配和提示預處理等任務而遭受顯著的 CPU 開銷。在很多情況下,這些操作會導致 GPU 出現空閒期,從而影響整體性能。

SGLang 通過將 CPU 調度與正在進行的 GPU 計算重疊來解決這一瓶頸。調度器通過運行一個批次並準備下一個批次所需的所有必要元數據,使 GPU 保持持續忙碌。性能分析表明,這種設計減少了空閒時間,並實現了可測量的速度提升,尤其是在涉及較小模型和廣泛張量並行性的配置中。

SGLang 還集成了一個緩存感知的負載均衡器,它不同於傳統的輪詢調度等負載均衡方法。傳統技術往往忽略了鍵值(KV)緩存的狀態,導致資源使用效率低下。相比之下,SGLang 的負載均衡器預測不同工作進程的緩存命中率,並將傳入請求導向最有可能發生緩存命中的工作進程。這種有針對性的路由提高了吞吐量並增強了緩存利用率。該機制依賴於一個近似基數樹,它反映了每個工作進程上的當前緩存狀態,並且它懶惰地更新此樹以最小化開銷。這個負載均衡器是用 Rust 實現的,以支持高併發,特別適合分佈式、多節點環境。

除了這些功能外,SGLang 還支持數據並行注意力機制,這是一種專門針對 DeepSeek 模型定製的策略。雖然許多現代模型使用張量並行,這可能導致在跨多個 GPU 擴展時出現重複的 KV 緩存存儲,但 SGLang 採用了一種不同的方法來處理使用多頭潛在注意力的模型。在這種方法中,獨立的數據並行工作器分別處理各種批次,例如預填充、解碼或空閒。然後,在通過後續層(如專家混合層)之前,將處理過的注意力數據在工作器之間聚合,之後重新分配。

SGLang 在高效生成結構化輸出方面也表現出色。許多推理系統在實時解碼 JSON 等格式時遇到困難,這在許多應用中可能是一個關鍵需求。SGLang 通過集成一個稱爲 xgrammar 的專業語法後端來解決這一問題。這種集成簡化了解碼過程,使得系統生成結構化輸出的速度比其他開源替代方案快十倍。當需要快速生成機器可讀數據時,這一功能特別有價值,這對於下游處理或交互式應用至關重要。

多家知名公司已經認可了 SGLang 的實際效益。例如,字節跳動將大量內部 NLP 管道通過這個引擎進行渠道化,每天處理 PB 級的數據。同樣,xai 通過利用優化的調度和有效的緩存管理,報告了顯著的成本節約,導致服務費用的顯著降低。這些實際應用凸顯了 SGLang 在規模上高效運行的能力,帶來了性能提升和成本效益。

SGLang 在 Apache 2.0 開源許可證下發布,可供學術研究和商業應用訪問。它與 OpenAI 標準的兼容性以及提供的 Python API 允許開發者無縫將其集成到現有工作流程中。該引擎支持許多模型,包括流行的 Llama、Mistral、Gemma、Qwen、DeepSeek、Phi 和 Granite 等。它旨在跨各種硬件平臺工作,包括 NVIDIA 和 AMD GPU,並集成了先進的量化技術,如 FP8 和 INT4。未來的增強將包括 FP6 權重和 FP8 激活量化、更快的啓動時間和跨雲負載均衡。

SGLang 研究的幾個關鍵要點包括:

  1. SGLang 通過優化 CPU 和 GPU 任務之間的平衡來解決部署大型語言模型的關鍵挑戰。

  2. RadixAttention 最小化冗餘計算,提高對話和檢索場景中的吞吐量。

  3. 一種零開銷批處理調度器將 CPU 調度與 GPU 操作重疊,以確保連續處理並減少空閒時間。

  4. 一種緩存感知的負載均衡器高效預測緩存命中率並路由請求,從而提高整體性能和緩存利用率。

  5. 數據並行注意力機制減少了內存開銷,並增強了多頭潛在注意力模型的解碼吞吐量。

  6. 通過集成 xgrammar,可以實現結構化輸出的快速生成,顯著提高處理速度,尤其是對於 JSON 等格式。

  7. SGLang 的實際效益通過其在大型生產環境中的應用得到證明,這有助於大幅節省成本和提高性能。

項目地址:https://github.com/sgl-project/sglang/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/XV6TSqjGj8OCZrvJG3Pk7Q