将 Hugging Face 与 Amazon SageMaker 结合使用 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 Hugging Face 与 Amazon SageMaker 结合使用

利用 Amazon SageMaker,客户能够在 SageMaker 上使用 Hugging Face 模型(用于自然语言处理 (NLP))进行训练、微调和运行推理。您可以使用 Hugging Face 进行训练和推理。此功能可通过开发 Hugging Face Amazon Deep Learning Containers 来实现。这些容器包括 Hugging Face Transformers、Tokenizers 和 Datasets 库,它们允许您将这些资源用于训练和推理作业。有关可用深度学习容器映像的列表,请参阅可用的深度学习容器映像。这些深度学习容器映像会得到维护,并定期更新安全补丁。

要使用 Hugging Face Deep Learning Containers 和 SageMaker Python SDK 进行训练,请参阅 Hugging Face SageMaker 估算器。有了 Hugging Face 估算器,您就可以像使用任何其他 SageMaker 估算器一样使用 Hugging Face 模型。但是,使用 SageMaker Python SDK 是可选的。您还可以使用 Amazon CLI 和 Amazon SDK for Python (Boto3) 来编排 Hugging Face Deep Learning Containers 的使用。

有关 Hugging Face 及其中可用模型的更多信息,请参阅 Hugging Face 文档

训练

要进行训练,您可以使用 Hugging Face 中数千种模型中的任一种,并通过额外的训练针对您的特定使用案例对其进行微调。借助 SageMaker,您可以使用标准训练或利用 SageMaker 分布式数据和模型并行训练。与其他使用自定义代码的 SageMaker 训练作业一样,您可以通过将指标定义传递给 SageMaker Python SDK 来捕获自己的指标,如定义训练指标 (SageMaker Python SDK) 中所示。然后,捕获的指标可通过 CloudWatch 进行访问,也可作为 Pandas DataFrame 通过 TrainingJobAnalytics 方法进行访问。模型经过训练和微调后,您可以像使用任何其他模型一样使用它来运行推理作业。

如何使用 Hugging Face 估算器进行训练

您可以使用 SageMaker Python SDK 为训练作业实施 Hugging Face 估算器。SageMaker Python SDK 是一个开源库,用于在 SageMaker 上训练和部署机器学习模型。有关 Hugging Face 估算器的更多信息,请参阅 SageMaker Python SDK 文档

借助 SageMaker Python SDK,您可以在以下环境中使用 Hugging Face 估算器运行训练作业:

  • SageMaker Studio:Amazon SageMaker Studio 是第一个用于机器学习 (ML) 的完全集成的开发环境 (IDE)。SageMaker Studio 提供了一个基于 Web 的可视化界面,您可以在其中执行准备、构建、训练和优化、部署和管理模型所需的所有机器学习开发步骤。有关在 Studio 中使用 Jupyter 笔记本的信息,请参阅使用 Amazon SageMaker Studio 笔记本

  • SageMaker 笔记本实例:Amazon SageMaker 笔记本实例是一个运行 Jupyter 笔记本应用程序的机器学习 (ML) 计算实例。此应用程序允许您在笔记本实例中运行 Jupyter 笔记本来准备和处理数据、编写用于训练模型的代码、将模型部署到 SageMaker 托管,以及测试或验证模型而无需 SageMaker Studio 特征(如调试器、模型监控和基于 Web 的 IDE)。

  • 本地:如果您已连接 Amazon 并拥有相应的 SageMaker 权限,则可以在本地使用 SageMaker Python SDK 在 SageMaker on Amazon 中为 Hugging Face 启动远程训练和推理作业。这适用于您的本地计算机,以及其他具有连接的 SageMaker Python SDK 和相应权限的 Amazon 服务。

推理

要进行推理,您可以使用训练好的 Hugging Face 模型或预训练的 Hugging Face 模型之一,借助 SageMaker 部署推理作业。通过这种协作,您只需一行代码就能在 SageMaker 中部署训练好的模型和预训练的模型。您也可以运行推理作业,而无需编写任何自定义推理代码。使用自定义推理代码,您可以通过提供自己的 Python 脚本来自定义推理逻辑。

如何使用 Hugging Face Deep Learning Containers 部署推理作业

使用 SageMaker 进行推理有两种选择。您可以使用自己训练的模型进行推理,也可以部署预训练的 Hugging Face 模型。

  • 使用训练好的模型进行推理:使用自己训练的模型进行推理有两种选择。您可以使用训练好的模型(使用现有 Hugging Face 模型和 SageMaker Hugging Face Deep Learning Containers 进行训练)进行推理,也可以自带现有 Hugging Face 模型使用 SageMaker 进行部署。当您使用通过 SageMaker Hugging Face 估算器训练的模型进行推理时,可以在训练完成后立即部署模型,也可以将训练好的模型上传到 Amazon S3 存储桶,然后在稍后进行推理时摄取它。如果您自带现有 Hugging Face 模型,则必须将训练好的模型上传到 Amazon S3 存储桶,并在进行推理时摄取该存储桶,如部署 Hugging Face Transformers 进行推理示例中所示。

  • 使用预训练的 Hugging Face 模型进行推理:您可以使用数千种预训练 Hugging Face 模型中的一种来运行推理作业,无需额外训练。要进行推理,请从 Hugging Face 模型列表中选择预训练的模型,如部署预训练的 Hugging Face Transformers 进行推理示例中所述。

您需要做什么?

Hugging Face 笔记本存储库中的以下 Jupyter 笔记本说明了如何在各种使用案例中将 Hugging Face Deep Learning Containers 与 SageMaker 结合使用。

我想使用 SageMaker 中的 Hugging Face 和 PyTorch 训练和部署一个文本分类模型。

有关示例 Jupyter 笔记本,请参阅 PyTorch 入门演示

我想使用 SageMaker 中的 Hugging Face 和 TensorFlow 训练和部署一个文本分类模型。

有关示例 Jupyter 笔记本,请参阅 TensorFlow 入门示例

我想使用 Hugging Face 和 SageMaker 分布式模型运行具有模型并行性的分布式训练。

有关示例 Jupyter 笔记本,请参阅分布式训练示例

我想使用 Hugging Face 和 SageMaker 分布式模型运行具有模型并行性的分布式训练。

有关示例 Jupyter 笔记本,请参阅模型并行性示例

我想在 SageMaker 中使用 Hugging Face,通过竞价型实例来训练和部署模型。

有关示例 Jupyter 笔记本,请参阅竞价型实例示例

在 SageMaker 中使用 Hugging Face 训练文本分类模型时,我想捕获自定义指标并使用 SageMaker 检查点功能。

有关示例 Jupyter 笔记本,请参阅使用自定义指标进行训练示例

我想在 SageMaker 中使用 Hugging Face 训练分布式问答式 TensorFlow 模型。

有关示例 Jupyter 笔记本,请参阅分布式 TensorFlow 训练示例

我想在 SageMaker 中使用 Hugging Face 训练分布式汇总模型。

有关示例 Jupyter 笔记本,请参阅分布式汇总训练示例

我想在 SageMaker 中使用 Hugging Face 训练图像分类模型。

有关示例 Jupyter 笔记本,请参阅 Vision Transformer 训练示例

我想在 SageMaker 中部署我训练过的 Hugging Face 模型。

有关示例 Jupyter 笔记本,请参阅部署您的 Hugging Face Transformers 进行推理示例

我想在 SageMaker 中部署预训练的 Hugging Face 模型。

有关示例 Jupyter 笔记本,请参阅部署预训练的 Hugging Face Transformers 进行推理示例