Hugging Face LLM 推理容器適用於 Amazon SageMaker

Hugging Face 已為 Amazon SageMaker 發布了一個新的 LLM 推理容器 (DLC),允許使用者在安全、受管理的環境中部署開源大型語言模型 (LLM)。此容器由 Text Generation Inference (TGI) 提供動力,這是一個專門設計的解決方案,旨在優化 LLMs 的服務,以實現高併發和低延遲。

使用 Text Generation Inference (TGI) 的高效能推理

Hugging Face LLM DLC 利用 TGI 為最流行的開源 LLM 架構提供多項技術優化。這些優化包括:

  • Tensor Parallelism and Custom CUDA Kernels: 將模型權重分配到多個 GPU,以處理更大的模型並提升速度。
  • Continuous Batching: 透過動態批量處理傳入請求來提升總體吞吐量。
  • Flash-Attention: 使用經優化的 transformers 程式碼進行推理,以提高效率。
  • Quantization: 支援 bitsandbytes 以減少模型記憶體佔用。
  • Accelerated Weight Loading: 利用 safetensors 減少啟動時間。
  • Advanced Generation Controls: 包含 logits warpers(temperature scaling、top-k、重複懲罰)、停止序列、對數機率,以及透過 Server-Sent Events (SSE) 進行的 token 串流。
  • Watermarking: 為大型語言模型實作 watermarking 以追蹤生成的內容。

支援的模型架構

LLM 推理容器正式支援廣泛的模型架構,包括:

  • BLOOM / BLOOMZ
  • Llama (包括 Vicuna、Alpaca 和 Koala)
  • Falcon 7B / 40B
  • GPT-NeoX 20B (包括 Pythia、Lotus、Rosey、Chip、RedPajama 和 Open Assistant)
  • StarCoder / SantaCoder
  • FLAN-T5-XXL (T5-11B)
  • Galactica
  • MT0-XXL

在 Amazon SageMaker 上的部署工作流程

使用新的 DLC 部署 LLM 透過 sagemaker Python SDK 進行精簡流程。工作流程包括以下步驟:

1. 容器檢索

使用者透過 get_huggingface_llm_image_uri 方法檢索特定的容器 URI,並指定後端、區域和版本(例如,版本 1.0.3)。

2. 模型配置

模型透過 HuggingFaceModel 類別進行部署。關鍵配置參數包括:

  • HF_MODEL_ID: 來自 Hugging Face Hub 的模型 ID(例如,OpenAssistant/pythia-12b-sft-v8-7k-steps)。
  • SM_NUM_GPUS: 每個副本要使用的 GPU 數量。
  • MAX_INPUT_LENGTHMAX_TOTAL_TOKENS: 輸入和輸出長度的限制。
  • HF_MODEL_QUANTIZE: 一個可選設定,可啟用 bitsandbytes 量化以進行成本優化。

3. 端點部署

模型透過 deploy 方法部署到端點。例如,ml.g5.12xlarge 實例(擁有 4 個 NVIDIA A10G GPU 和 96GB GPU 記憶體)可以透過 TGI 自動將模型分片到所有可用的 GPU。

推理和生成參數

部署後,端點支援多種生成參數來控制 LLM 的輸出:

  • Randomness and Sampling: temperaturetop_ptop_kdo_sample
  • Length and Repetition: max_new_tokensrepetition_penalty
  • Constraints: stop 序列以終止生成。
  • Other Controls: seed 用於可重複性、typical_preturn_full_text 以決定是否將提示包含在輸出中。

此基礎設施透過將 SageMaker 端點與如 Gradio 的前端介面結合,使得可擴展的 AI 應用程式(如聊天機器人和虛擬助理)得以創建。

Sources