LLM 生產規模擴展實用指南

為生產擴展 LLM:實用指南

大型語言模型 (LLMs) 已經快速發展,從研究領域的好奇事物轉變為各種應用程式的強大工具。雖然使用 Llama.cpp 或 Ollama 等工具來啟動一個簡單的聊天機器人相對簡單,但在生產環境中部署 LLM 以處理真實世界的工作負載卻帶來了不同的挑戰。這些挑戰包括管理多個並行使用者、確保正常運作時間保證,以及優化 GPU 資源利用率以避免超出預算限制。

在大型規模提供 LLM 服務所需的資源,與在個人電腦上運行它所需的資源有很大的不同。在 PC 上以少於 4 GB 的記憶體有效運行的模型,在生產環境中部署以處理大量同步請求時,可能需要 40 GB 或更多的 GPU 記憶體。

本指南探討了將 AI 工作負載從初始概念驗證擴展到可投入生產部署的途徑。我們將引導您大規模部署 Gemma 3 或 Llama 3 等模型。

利用 API 進行 LLM 整合

將 LLM 整合到程式碼庫中可以通過各種方法實現,但強烈建議在生產部署中使用與 OpenAI 相容的 API。 這種方法提供了適應快速發展的模型環境的靈活性。 僅在幾個月前被認為是最新的模型可能很快就會過時。

自 2022 年 ChatGPT 開始的 AI 熱潮以來,OpenAI 的 API 介面已成為將應用程式連接到 LLM 的事實標準。 這種標準允許開發人員使用可用的資源來構建應用程式,例如在筆記型電腦上使用 Llama.cpp 中的 Mistral 7B 開始,並無縫過渡到 Mistral AI 的 API 伺服器以進行生產部署。 這消除了被鎖定到單一模型、推理引擎或 API 提供者的情況。

基於雲端的推理服務提供了一種資本支出 (capex) 友好的方式來擴展 AI 部署。 這些服務消除了硬體管理和模型配置的需要,而是提供一個用於應用程式整合的 API。

除了主要模型構建者的 API 產品之外,越來越多的 AI 基礎設施新創公司為開放權重模型提供推理即服務。 這些提供者的方法各不相同。 有些,如 SambaNova、Cerebras 和 Groq,利用專用硬體或推測解碼等技術來加速推理,但提供的模型選擇較少。 其他公司,如 Fireworks AI,支援使用低秩適應 (LoRA) 適配器部署自訂微調模型。 AI 生態系統的多樣性需要徹底研究,然後才能承諾使用特定的提供者。

內部部署 LLM 的考量因素

在由於隱私、法規或先前存在的基礎設施限制(例如,公司已經投資了 GPU 伺服器)而無法使用基於雲端的方法的情況下,內部部署變得必要。 這可能會帶來幾個挑戰。 出現的一些常見問題包括:

  • 模型選擇: 適當的模型取決於具體的使用案例。 為客戶服務聊天機器人設計的模型與用於檢索增強生成或作為程式碼助理的模型具有不同的要求。 建議花時間與 API 提供者合作,以確定滿足需求的模型。
  • 硬體需求: 確定必要的硬體至關重要,因為 GPU 價格昂貴且難以獲得。 模型本身可以提供有關運行它所需的硬體的見解。 較大的模型需要更多的硬體。 可以通過將參數計數(以數十億為單位)乘以 2GB 來粗略估計最小 GPU 記憶體,用於以 16 位精度訓練的模型。 對於 8 位元模型,每十億個參數需要 1GB。 模型壓縮技術(如量化)可以將其降低到每十億個參數 512MB。 這是一個下限。 由於金鑰值快取,需要額外的記憶體才能同時為多個使用者提供模型服務,金鑰值快取充當模型的短期記憶體。 Nvidia 的支援矩陣提供了運行各種模型所需的 GPU 指南。
  • 冗餘: 除了根據模型調整硬體大小外,還必須考慮冗餘。 單個 GPU 節點很容易發生故障,因此部署兩個或更多系統以進行故障轉移和負載平衡非常重要。
  • 部署方法: 可以使用各種方法在生產環境中部署和提供 LLM 服務:具有負載平衡器的裸機、虛擬機器或 Docker 或 Kubernetes 中的容器。 Kubernetes 通過自動化容器創建、網路和負載平衡來簡化大規模部署。

用於 LLM 部署的 Kubernetes

Kubernetes 通過自動化容器創建、網路和負載平衡,抽象化了與大規模部署相關的大部分複雜性。 許多企業已經採用並了解 Kubernetes。 Nvidia、Hugging Face 和其他公司偏愛具有 Nvidia Inference Microservices (NIMs) 和 Hugging Face Generative AI Services (HUGS) 的容器化環境,這些環境已針對常見的工作負載和部署進行了預先配置。

推理引擎

有各種推理引擎可用於運行模型,包括 Ollama 和 Llama.cpp,它們與各種硬體相容。 為了擴展模型,通常使用 vLLM、TensorRT LLM、SGLang 和 PyTorch 等函式庫。 本指南側重於使用 vLLM 部署模型,因為它支援廣泛的流行模型,並在 Nvidia、AMD 和其他硬體上提供廣泛的支援和相容性。

準備 Kubernetes 環境

與典型的 Kubernetes 設定相比,設定用於處理 GPU 的 Kubernetes 環境需要額外的驅動程式和相依性。 AMD 和 Nvidia 硬體的設定過程會有所不同。

本指南在單節點配置中使用 K3S。 基本步驟與多節點環境類似,但必須在每個 GPU 工作節點上滿足相依性,並且儲存配置可能需要調整。

目標是為以生產友好的方式部署推理工作負載提供堅實的基礎。 需要以下先決條件:

  • 至少有一個支援的 AMD 或 Nvidia GPU 板的伺服器或工作站
  • Ubuntu 24.04 LTS 的全新安裝

Nvidia 相依性

設定 Nvidia 加速的 K3S 環境需要安裝 CUDA 驅動程式 Fabric Manager 和無頭伺服器驅動程式。 安裝 Nvidia 的伺服器實用程式以除錯驅動程式問題。

在安裝 Nvidia 驅動程式前,請確保您的系統符合以下條件:

  • 禁用安全启动(Secure Boot):在BIOS中禁用安全启动,防止驅動程式安裝問題。
  • 安装必要的系統套件: