使用 Amazon SageMaker 轻松部署 Hugging Face 模型
Hugging Face 与 Amazon SageMaker 推出了新的推理深度学习容器(DLC)和专用的推理工具包,使用户能够将已训练的 Transformer 模型或 Hugging Face Model Hub 上的 10,000 多个模型部署到生产就绪的 AWS 端点,几乎无需编写代码。
使用推理 DLC 简化模型部署
Amazon SageMaker 现已支持 Hugging Face 推理深度学习容器(DLC),这些容器提供经过完整测试、优化的深度学习环境,免除手动安装或配置的需求。这些容器可快速创建在 AWS 环境中可扩展的生产就绪端点,并内置监控和企业功能。
用户可以使用 SageMaker Python SDK 中的 HuggingFaceModel 类部署模型。部署过程被简化,训练好的模型只需再添加一行代码即可用于推理。
SageMaker Hugging Face 推理工具包
为进一步降低部署摩擦,Hugging Face 创建了 SageMaker Hugging Face 推理工具包。该工具包利用 transformers 库中的 pipelines 实现“零代码”部署,即用户无需编写自定义的前后处理代码。
API 与请求结构
推理工具包使用的 API 类似于 Hugging Face 加速推理 API。请求必须在 inputs 键中定义输入,可通过 parameters 键添加可选的 pipeline 参数。
示例请求结构包括:
- 文本分类: 包含
inputs字符串的 JSON 正文。 - 问答: 包含
question和context键的inputs对象。 - 零样本分类: 一个
inputs字符串和包含candidate_labels的parameters对象。
定制化与“自带代码”
虽然零代码部署是主要特性,但推理工具包支持“自带代码”方式。这使开发者能够覆盖默认方法,实现自定义推理逻辑。
部署工作流
部署 Transformer 模型到 Amazon SageMaker 有三种主要工作流:
1. 训练后直接部署
使用 Estimator 类在 SageMaker 中训练模型时,可在 .fit() 方法完成后立即部署模型。此方式确保 SageMaker 模型容器元数据保持从训练作业到已部署模型的血缘关系。
2. 从预训练检查点部署
对于已在 Amazon S3 上以制品形式存储的预训练模型,可通过指定 model_data 参数(模型的 S3 路径)、IAM 角色以及使用的 transformers 和 pytorch 版本,使用 HuggingFaceModel 类进行部署。
3. 从 Hugging Face Model Hub 部署
用户可以通过在 HuggingFaceModel 配置中定义两个环境变量,将 Model Hub 上 10,000 多个公开模型直接部署到 SageMaker:
HF_MODEL_ID:来自 huggingface.co/models 的具体模型 ID。HF_TASK:与 Transformers pipeline 关联的 NLP 任务(例如question-answering)。
技术规格与兼容性
- 支持的模型: 系统支持在 SageMaker(或其他兼容平台)上训练的任何 Transformer 模型、Hugging Face Model Hub 上的任何公开模型,以及托管在高级 Hugging Face 账户中的私有模型。
- 支持的任务: 推理工具包和 DLC 支持
transformerspipelines 中提供的任何任务。 - 部署工具: 虽然 SageMaker Python SDK 是主要接口,但 Hugging Face DLC 也可以使用包括 AWS CLI、
boto3、Terraform 和 CloudFormation 模板在内的其他工具进行部署。 - 安全性: 部署通过 AWS 机制进行保护,包括静态和传输中的加密、虚拟私有云(VPC)连接以及身份与访问管理(IAM)。
SUMMARY: Hugging Face 与 Amazon SageMaker 推出了新的推理深度学习容器(DLC)和推理工具包,以简化 Transformer 模型部署到生产就绪的端点。
TITLE: 使用 Amazon SageMaker 轻松部署 Hugging Face 模型