[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 使客户能够在 SageMaker 上使用用于自然语言处理的拥抱人脸模型 (NLP) 来训练、微调和运行推理。你可以使用 Hugge Face 进行训练和推理。这个功能可以通过开发 Hugge Face 获得[Amazon Deep Learning 容器](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/what-is-dlc.html?trk=cndc-detail). 这些容器包括 Hugging Face 变形器、Tokenizer 和数据集库,它们允许您将这些资源用于训练和推理工作。有关可用的 Deep Learning Containers 映像的列表,请参阅[可用的 Deep Learning Containers 映像](https://github.com/aws/deep-learning-containers/blob/master/available_images.md?trk=cndc-detail). 这些 Deep Learning Containers 映像通过安全补丁进行维护和定期更新。
要将拥抱面部 Deep Learning Containers 与 SageMaker Python SDK 结合使用进行培训,请参阅[拥抱面孔 SageMaker 估算器](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html?trk=cndc-detail). 使用拥抱人脸估算器,您可以像使用任何其他 SageMaker 估计器一样使用拥抱脸模型。但是,使用 SageMaker Python SDK 是可选的。您还可以通过 Amazon CLI 和 Amazon SDK for Python (Boto3).
有关 Hugging Face 及其中提供的模型的更多信息,请参阅[拥抱 Face 文档](https://huggingface.co/?trk=cndc-detail).
## 培训
要进行训练,您可以使用 Hugging Face 中可用的数千种模型中的任意一种,并通过额外的培训来根据您的具体使用案例对它们进行微调。使用 SageMaker,您可以使用标准培训或利用[SageMaker 分布式数据和模型并行培训](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html?trk=cndc-detail). 与其他使用自定义代码的 SageMaker 培训作业一样,您可以通过将指标定义传递给 SageMaker Python SDK 来捕获自己的指标,如中所示[定义训练指标(SageMaker Python 开发工具包)](https://docs.aws.amazon.com/sagemaker/latest/dg/training-metrics.html#define-train-metrics-sdk?trk=cndc-detail). 然后可以通过以下方式访问捕获[CloudWatch](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html?trk=cndc-detail)而且作为熊猫`DataFrame`通过[培训职位分析](https://sagemaker.readthedocs.io/en/stable/api/training/analytics.html#sagemaker.analytics.TrainingJobAnalytics?trk=cndc-detail)方法。一旦你的模型经过训练和微调,你可以像任何其他模型一样使用它来运行推理作业。
### 如何使用拥抱人脸估算器进行训练
您可以使用 SageMaker Python SDK 实现拥抱人脸估算器来进行培训作业。SageMaker Python SDK 是一个开源库,用于在 SageMaker 上训练和部署[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型。有关 Hide Face 的更多信息,请参阅[SageMaker Python SDK 文档。](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html?trk=cndc-detail)
借助 SageMaker Python 开发工具包,您可以在以下环境中使用 Hide Face 开发工具包运行训练作业:
* [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html?trk=cndc-detail):[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 是第一个用于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail) (ML) 的完全集成开发环境 (IDE)。SageMaker Studio 提供了一个基于 Web 的单一可视化界面,您可以在其中执行准备、构建、训练和调整、部署和管理模型所需的所有[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)开发步骤。有关在 Studio 中使用 Jupyter 笔记本的信息,请参阅[使用 Amazon SageMaker Studio 笔记本](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html?trk=cndc-detail).
* [SageMaker 笔记本实例](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html?trk=cndc-detail):[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 笔记本实例是一个运行 Jupyter 笔记本应用程序的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail) (ML) 计算实例。借助此应用程序,您可以在笔记本实例中运行 Jupyter Notebook,以准备和处理数据,编写代码以训练模型,部署模型到 SageMaker 托管,以及测试和验证模型,而无需调试器、模型监控和基于 Web 的 IDE 等 SageMaker Studio 功能。
* 截图等):如果你有连接亚马逊云科技并拥有适当的 SageMaker 权限,您可以在本地使用 SageMaker Python SDK 为 SageMaker 中的 Hugge Face 启动亚马逊云科技远程训练和推理作业。这适用于您的本地计算机,以及其他亚马逊云科技具有连接 SageMaker Python SDK 和适当权限的服务。
## 推理
为了进行推理,您可以使用训练有素的拥抱人脸模型或其中一个预先训练的 Hugging Face 模型来部署 SageMaker 的推理作业。通过这种协作,您只需要一行代码即可使用 SageMaker 部署训练过的模型和预训练模型。您还可以运行推理作业,而无需编写任何自定义推理代码。使用自定义推理代码,您可以通过提供自己的 Python 脚本来自定义推理逻辑。
### 如何使用 Hugging Face Deep Learning Containers 部署推理作业
您有两个选项可以使用 SageMaker 运行推理。你可以使用你训练的模型来运行推理,也可以部署预先训练的 Hugging Face 模型。
* **使用训练有素的模型运行推理:** 用自己训练的模型运行推理有两种选择。您可以使用使用 SageMaker Hugging Face Deep Learning Containers 使用现有的拥抱人脸模型训练的模型运行推理,也可以自带现有的拥抱人脸模型并使用 SageMaker 进行部署。当您使用使用 SageMaker Hugge Face Estemator 训练的模型运行推理时,您可以在训练完成后立即部署模型,也可以将训练过的模型上传到 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 存储桶,然后在以后运行推理时将其摄取。如果您自带现有的 Hugging Face 模型,则必须将训练过的模型上传到 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 存储桶,然后在运行推理时摄取该存储桶,如中所示[部署你的拥抱脸变压器作为推理示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/10\\_deploy_model_from_s3/deploy_transformer_model_from_s3.ipynb?trk=cndc-detail).
* **使用预先训练的 HuggingFace 模型运行推理:** 您可以使用成千上万个预训练的 HugGING Face 模型之一来运行推理工作,而无需额外的培训。要运行推理,您可以从列表中选择预训练的模型[拥抱 Face 模型](https://huggingface.co/models?trk=cndc-detail),如中所述[部署预先训练的拥抱脸变压器以获取推理示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/11\\_deploy_model_from_hf_hub/deploy_transformer_model_from_hf_hub.ipynb?trk=cndc-detail).
## 您需要做什么?
Hugging Face 笔记本存储库中的以下 Jupyter 笔记本说明了如何在各种使用案例中将 Hugging Face Deep Learning Containers 与 SageMaker 结合使用。
* 我想在 PyTorch 中使用 SageMaker 中的 Hugge Face 训练和部署文本分类模型。
有关示例 Jupyter 笔记本,请参阅[PyTorch 入门](https://github.com/huggingface/notebooks/blob/master/sagemaker/01\\_getting_started_pytorch/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想在 SageMaker 中使用 TensorFlow 中的 Hugge Face 训练和部署文本分类模型。
有关示例 Jupyter 笔记本,请参阅[TensorFlow 入门示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/02\\_getting_started_tensorflow/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想使用 Hugging Face 和 SageMaker 分布式运行具有数据并行性的分布式训练。
有关示例 Jupyter 笔记本,请参阅[分布式训练示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/03\\_distributed_training_data_parallelism/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想使用 Hugging Face 和 SageMaker 分布式运行具有模型并行性的分布式训练。
有关示例 Jupyter 笔记本,请参阅[模型并行性示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/04\\_distributed_training_model_parallelism/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想要在 SageMaker 中使用 Hugging Face 训练和部署模型。
有关示例 Jupyter 笔记本,请参阅[Spot 实例示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/05\\_spot_instances/sagemaker-notebook.ipynb?trk=cndc-detail).
* 在 SageMaker 中使用 Hugge Face 训练文本分类模型时,我想捕获自定义指标并使用 SageMaker 检查点。
有关示例 Jupyter 笔记本,请参阅[使用自定义指标训练示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/06\\_sagemaker_metrics/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想在 SageMaker 中使用 Hugge Face 训练分布式问答 TensorFlow 模型。
有关示例 Jupyter 笔记本,请参阅[分布式 TensorFlow 训练示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/07\\_tensorflow_distributed_training_data_parallelism/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想要在 SageMaker 中使用 Hugging Face 训练分布式总结模型。
有关示例 Jupyter 笔记本,请参阅[分布式总结培训示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/08\\_distributed_summarization_bart_t5/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想在 SageMaker 中使用 Hugge Face 训练图像分类模型。
有关示例 Jupyter 笔记本,请参阅[视觉变压器培训示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/09\\_image_classification_vision_transformer/sagemaker-notebook.ipynb?trk=cndc-detail).
* 我想在 SageMaker 中部署我训练有素的拥抱脸模型。
有关示例 Jupyter 笔记本,请参阅[部署你的拥抱脸变压器作为推理示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/10\\_deploy_model_from_s3/deploy_transformer_model_from_s3.ipynb?trk=cndc-detail).
* 我想在 SageMaker 中部署预先训练的拥抱脸模型。
有关示例 Jupyter 笔记本,请参阅[部署预先训练的拥抱脸变压器以获取推理示例](https://github.com/huggingface/notebooks/blob/master/sagemaker/11\\_deploy_model_from_hf_hub/deploy_transformer_model_from_hf_hub.ipynb?trk=cndc-detail).