SGLang Transformers 後端整合

SGLang 已將 Hugging Face transformers 函式庫整合為後端,讓使用者能夠執行任何兼容 transformers 的模型,具備高效能推論能力。此整合彌合了 transformers 生態系的彈性與生產環境對高吞吐量、低延遲需求之間的差距。

透過 SGLang 的高效能推論

SGLang 以效率為設計目標,利用如 RadixAttention——一種記憶體效能高的注意力機制——等功能,提供更快速且更省資源的推論,尤其在高負載下。雖然標準的 transformers 函式庫針對實驗、小規模任務與訓練進行了最佳化,SGLang 則提供針對大量使用情境的專屬引擎。

SGLang 提供多種部署模式:

  • Offline Engine:使用 sgl.Engine 進行直接生成。
  • Server Mode:透過 sglang.launch_server 啟動伺服器,以 API 處理請求。
  • OpenAI-Compatible API:提供可直接取代外部服務的解決方案。

Transformers 後端整合

transformers 後端讓 SGLang 能自動回退至 transformers 函式庫,以支援未被 SGLang 原生支援的模型。這帶來了多項即時好處:

  • Instant Access:使用者可立即執行新增至 transformers 函式庫的模型。
  • Custom Model Support:可部署在 Hugging Face Hub 上且兼容 transformers 的模型。
  • Reduced Engineering Overhead:使用者不再需要等待每個新模型架構的原生 SGLang 實作。

此整合使得最佳化部署與使用 RadixAttention 成為可能,涵蓋更廣泛的模型,同時不犧牲 transformers 生態系的多樣性。

使用方式與相容性

若要使用 transformers 後端,使用者可在引擎初始化時明確設定 implementation 參數:

llm = sgl.Engine(model_path="meta-llama/Llama-3.2-1B-Instruct", impl="transformers")

指定 impl="transformers" 為可選項;若模型未被原生支援,SGLang 會自動切換至 transformers 實作。

相容性需求

符合以下條件的任何 Hugging Face Hub 上的模型皆相容:

  1. 能在 transformers 函式庫中運作。
  2. 正確實作注意力機制。
  3. 對於自訂模型,載入時需設定 trust_remote_code=True

例如,Kyutai 團隊的 Helium 模型 (kyutai/helium-1-preview-2b),目前尚未被 SGLang 原生支援,可透過 transformers 後端執行:

python3 -m sglang.launch_server \
  --model-path kyutai/helium-1-preview-2b \
  --impl transformers \
  --host 0.0.0.0 \
  --port 30000

未來路線圖

開發持續進行,以在以下領域提升整合程度:

  • Performance Optimization:縮小 transformers 後端模型與原生 SGLang 整合模型之間的效能差距。
  • LoRA Support:加入 Low-Rank Adaptation(LoRA)的支援。
  • VLM Integration:擴展至 Vision-Language Models(VLM)的支援,以拓展使用情境。

Sources