透過 Hugging Face Inference Endpoints 部署 MusicGen
透過 Inference Endpoints 部署 MusicGen
Hugging Face 提供了一份部署 MusicGen 的指南——該模型能夠從文字提示和可選的旋律條件生成音樂——作為使用 Inference Endpoints 的可擴充 API。此流程使得透過自訂處理程式,能夠部署那些不被 transformers 高階 pipeline 抽象原生支援的模型。
針對非管線模型使用自訂處理程式
Inference Endpoints 通常會利用 transformers pipeline API 進行一鍵部署。然而,對於如 MusicGen 這類可能需要特定推論邏輯的模型,Hugging Face 會使用「自訂處理程式」。自訂處理程式是一種自訂推論函數,允許使用者部署非 transformer 模型或缺少預定義 pipeline 的 transformer 模型。
使用此方法部署 MusicGen 需要以下工作流程:
- Repository Duplication: 複製目標 MusicGen 儲存庫(例如
facebook/musicgen-large)到個人檔案。 - Handler Implementation: 加入一個包含自訂
EndpointHandler類別的handler.py檔案,以及一個指定必要依賴項(例如transformers==4.31.0和accelerate>=0.20.3)的requirements.txt檔案。 - Endpoint Creation: 透過選取複製的儲存庫並指定硬體需求來建立 Inference Endpoint。
MusicGen 處理程式的技術實作
MusicGen 的自訂處理程式會覆寫 EndpointHandler 類別的 __init__ 和 __call__ 方法,以管理模型載入與請求處理:
- Initialization (
__init__): 從提供的路徑載入AutoProcessor和MusicgenForConditionalGeneration模型。模型會以torch_dtype=torch.float16載入,並移至 GPU(`.to(