

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon AI 中使用 Hugging Face SageMaker 的资源
<a name="hugging-face"></a>

Amazon SageMaker AI 允许客户在人工智能上使用用于自然语言处理 (NLP) 的 Hugging Face 模型进行训练、微调和运行推理。 SageMaker 您可以使用 Hugging Face 进行训练和推理。以下部分提供有关 Hugging Face 模型的信息，并包括可用于学习如何将 Hugging Face 与 AI 配 SageMaker 合使用的参考资料。

此功能可通过开发 Hugging Face [AWS Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/what-is-dlc.html) 来实现。这些容器包括 Hugging Face Transformers、Tokenizers 和 Datasets 库，它们允许您将这些资源用于训练和推理作业。有关可用深度学习容器映像的列表，请参阅[可用的深度学习容器映像](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)。这些深度学习容器映像会得到维护，并定期更新安全补丁。

要使用带有 SageMaker Python SDK 的 Hugging Face Deep Learning Containers 进行训练，请参阅 [ SageMaker Hugging Face AI 估算器。](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html)有了 Hugging Face Estimator，你可以像使用任何其他 AI 估算器一样使用 Hugging Face 模型。 SageMaker 但是，使用 SageMaker Python 开发工具包是可选的。你还可以使用和来编排 Hugging Face Deep Learning Containers 的使用。 AWS CLI 适用于 Python (Boto3) 的 AWS SDK

有关 Hugging Face 及其中可用模型的更多信息，请参阅 [Hugging Face 文档](https://huggingface.co/)。

## 训练
<a name="hugging-face-training"></a>

要进行训练，可使用 Hugging Face 中数千种可用模型中的任何一种，并通过额外的训练对它们进行微调，以适应您的使用情况。借 SageMaker 助 AI，您可以使用标准训练或利用 [SageMaker AI 分布式数据和模型并行训练](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html)。

与其他使用自定义代码的 SageMaker 训练作业一样，您可以通过向 SageMaker Python SDK 传递指标定义来捕获自己的指标。有关示例，请参阅[定义训练指标 (SageMaker Python SDK)](https://docs.aws.amazon.com/sagemaker/latest/dg/training-metrics.html#define-train-metrics-sdk)。您可以使用[TrainingJobAnalytics](https://sagemaker.readthedocs.io/en/stable/api/training/analytics.html#sagemaker.analytics.TrainingJobAnalytics)方法以 Pandas [CloudWatch](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html)`DataFrame`的形式访问捕获的指标。在对模型进行训练和微调后，您就可以像使用其他模型一样使用它来运行推理作业。

### 如何使用 Hugging Face 估算器进行训练
<a name="hugging-face-training-using"></a>

你可以使用 SageMaker AI Python SDK 为训练作业实现 Hugging Face Estimator。 SageMaker Python SDK 是一个开源库，用于在 SageMaker AI 上训练和部署机器学习模型。有关 Hugging Face Estimator 的更多信息，请参阅 [SageMaker AI Python](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html) SDK 文档。

使用 SageMaker Python SDK，你可以在以下环境中使用 Hugging Face Estimator 运行训练作业：
+ [Amazon SageMaker Stud](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) io Classic：Studio Classic 是第一个用于机器学习 (ML) 的完全集成的开发环境 (IDE)。Studio Classic 提供了基于网络的单一可视化界面，您可以在其中执行所需的所有 ML 开发步骤：
  + PREPARE
  + build
  + 训调
  + 部署和管理模型

  有关在 Studio Classic 中使用 Jupyter Notebook 的信息，请参阅 [使用 Amazon SageMaker Studio 经典笔记本电脑](notebooks.md)。
+ [SageMaker笔记本实例](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html)：Amazon SageMaker 笔记本实例是运行 Jupyter 笔记本应用程序的机器学习 (ML) 计算实例。通过该应用程序，您可以在笔记本实例中运行 Jupyter Notebooks：
  + 准备和处理数据
  + 编写代码训练模型
  + 将模型部署到 SageMaker AI 托管
  + 在没有调试器、模型监控和基于 Web 的 IDE 等 SageMaker Studio 功能的情况下测试或验证您的模型
+ 本地：如果您已连接 AWS 并拥有相应的 SageMaker AI 权限，则可以在本地使用 SageMaker Python SDK。在本地使用时，你可以在 AI 中为 Hugging Face 启动远程训练和推理作业。 SageMaker AWS这适用于您的本地计算机以及其他具有连接 SageMaker Python SDK 和相应权限的 AWS 服务。

## 推理
<a name="hugging-face-inference"></a>

为了进行推理，您可以使用经过训练的 Hugging Face 模型或预先训练的 Hugging Face 模型来部署带有 AI 的推理作业。 SageMaker 通过这种协作，您只需要一行代码即可使用 SageMaker AI 部署经过训练的模型和预训练的模型。您也可以运行推理作业，而无需编写任何自定义推理代码。使用自定义推理代码，您可以通过提供自己的 Python 脚本来自定义推理逻辑。

### 如何使用 Hugging Face Deep Learning Containers 部署推理作业
<a name="hugging-face-inference-using"></a>

您可以通过两种方式使用 A SageMaker I 运行推理。您可以使用自己训练的模型进行推理，也可以部署预训练的 Hugging Face 模型。
+ **使用自己训练的模型运行推理：**使用自己训练的模型进行推理有两个选项：
  + 使用你使用现有 Hugging Face 模型和 AI Hugging Face Deep Learning Containers Deep Learning Contain SageMaker ers 训练的模型进行推理。
  + 带上你自己的现有 Hugging Face 模型，然后 SageMaker 使用 AI 进行部署。

  使用使用 SageMaker AI Hugging Face Estimator 训练的模型运行推理时，可以在训练完成后立即部署模型。您还可以将训练好的模型上传到 Amazon S3 存储桶，并在以后运行推理时摄取它。

  如果您自带已有的 Hugging Face 模型，则必须将训练好的模型上传到 Amazon S3 存储桶。然后，如[为推理示例部署 Hugging Face Transformers](https://github.com/huggingface/notebooks/blob/main/sagemaker/10_deploy_model_from_s3/deploy_transformer_model_from_s3.ipynb) 所示，在运行推理时摄取该数据包。
+ **使用预训练 HuggingFace 模型运行推理：您可以使用数千个预先训练**的 Hugging Face 模型中的一个来运行推理作业，无需额外训练。要运行推理，请从 [Hugging Face 模型](https://huggingface.co/models)列表中选择预训练模型，如[为推理示例部署预训练的 Hugging Face Transformers](https://github.com/huggingface/notebooks/blob/main/sagemaker/11_deploy_model_from_hf_hub/deploy_transformer_model_from_hf_hub.ipynb) 所述。

## 您需要做什么？
<a name="hugging-face-do"></a>

Hugging Face 笔记本存储库中的以下笔记本展示了如何在各种用例中使用 Hugging Face Deep Learning Conta SageMaker iners 和 AI。

我想在 A PyTorch I 中使用 Hugging Fac SageMaker e 来训练和部署文本分类模型。  
要获取 Jupyter 笔记本的示例，请参阅[PyTorch 入门演示](https://github.com/huggingface/notebooks/blob/main/sagemaker/01_getting_started_pytorch/sagemaker-notebook.ipynb)。

我想在 A TensorFlow I 中使用 Hugging Fac SageMaker e 来训练和部署文本分类模型。  
有关 Jupyter 笔记本的示例，请参阅[TensorFlow 入门](https://github.com/huggingface/notebooks/blob/main/sagemaker/02_getting_started_tensorflow/sagemaker-notebook.ipynb)示例。

我想使用 Hugging Face 和 AI Distributed 运行具有数据并行性的分布式训练。 SageMaker   
有关示例 Jupyter 笔记本，请参阅[分布式训练示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/03_distributed_training_data_parallelism/sagemaker-notebook.ipynb)。

我想使用 Hugging Face 和 AI Distributed 来运行具有模型并行性的分布式训练。 SageMaker   
有关示例 Jupyter 笔记本，请参阅[模型并行性示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/04_distributed_training_model_parallelism/sagemaker-notebook.ipynb)。

我想在 AI 中使用 Hugging Fac SageMaker e 使用竞价实例来训练和部署模型。  
有关示例 Jupyter 笔记本，请参阅[竞价型实例示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/05_spot_instances/sagemaker-notebook.ipynb)。

在 SageMaker 人工智能中使用 Hugging Face 训练文本分类模型时，我想捕获自定义指标并使用 AI Checkpointing。 SageMaker   
有关示例 Jupyter 笔记本，请参阅[使用自定义指标进行训练示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/06_sagemaker_metrics/sagemaker-notebook.ipynb)。

我想在 AI 中使用 Hugging Face 训练分布式问答 TensorFlow 模型。 SageMaker   
有关 Jupyter 笔记本的示例，请参阅[分布式 TensorFlow 训练](https://github.com/huggingface/notebooks/blob/main/sagemaker/07_tensorflow_distributed_training_data_parallelism/sagemaker-notebook.ipynb)示例。

我想在 AI 中使用 Hugging Face 训练分布式摘要模型。 SageMaker   
有关示例 Jupyter 笔记本，请参阅[分布式汇总训练示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/08_distributed_summarization_bart_t5/sagemaker-notebook.ipynb)。

我想在 AI 中使用 Hugging Face 来训练图像分类模型 SageMaker 。  
有关示例 Jupyter 笔记本，请参阅 [Vision Transformer 训练示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/09_image_classification_vision_transformer/sagemaker-notebook.ipynb)。

我想在人工智能中部署经过训练的 Hugging Face 模型 SageMaker 。  
有关示例 Jupyter 笔记本，请参阅[部署您的 Hugging Face Transformers 进行推理示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/10_deploy_model_from_s3/deploy_transformer_model_from_s3.ipynb)。

我想在人工智能中部署一个经过预训练的 Hugging Face 模型。 SageMaker   
有关示例 Jupyter 笔记本，请参阅[部署预训练的 Hugging Face Transformers 进行推理示例](https://github.com/huggingface/notebooks/blob/main/sagemaker/11_deploy_model_from_hf_hub/deploy_transformer_model_from_hf_hub.ipynb)。