通过 Hugging Face 推理端点部署 MusicGen

通过推理端点部署 MusicGen

Hugging Face 已提供一份指南,说明如何使用推理端点将 MusicGen——一种能够根据文本提示和可选旋律条件生成音乐的模型——作为可扩展的 API 部署。此过程通过使用自定义处理程序,使得那些开箱即用不被 transformers 高级 pipeline 抽象支持的模型也能够部署。

使用自定义处理程序处理非管线模型

推理端点通常利用 transformers pipeline API 实现一键部署。然而,对于可能需要特定推理逻辑的模型(如 MusicGen),Hugging Face 使用“自定义处理程序”。自定义处理程序是一个自定义推理函数,使用户能够部署非 transformer 模型或缺少预定义管线的 transformer 模型。

要使用此方法部署 MusicGen,需要以下工作流程:

  1. 存储库复制:将目标 MusicGen 存储库(例如 facebook/musicgen-large)复制到个人资料。
  2. 处理程序实现:添加一个包含自定义 EndpointHandler 类的 handler.py 文件以及一个指定必要依赖项(如 transformers==4.31.0accelerate>=0.20.3)的 requirements.txt 文件。
  3. 端点创建:通过选择复制的存储库并指定硬件要求来创建推理端点。

MusicGen 处理程序的技术实现

MusicGen 的自定义处理程序重写了 EndpointHandler 类的 __init____call__ 方法,以管理模型加载和请求处理:

  • 初始化(__init__:从提供的路径加载 AutoProcessorMusicgenForConditionalGeneration 模型。模型加载时使用 torch_dtype=torch.float16,并移动到 GPU(`.to(

Sources