

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Hugging Face 搭配 Amazon SageMaker AI 的資源
<a name="hugging-face"></a>

Amazon SageMaker AI 可讓客戶在 SageMaker AI 上針對自然語言處理 (NLP) 使用 Hugging Face 模型，來訓練、微調和執行推論。您可以使用 Hugging Face 進行訓練和推論。下節提供 Hugging Face 模型的相關資訊，並包括您可以用來了解如何使用 Hugging Face 搭配 SageMaker AI 的參考資料。

此功能可透過開發 Hugging Face [AWS Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/what-is-dlc.html) 獲得。這些容器包括 Hugging Face 轉換器、權杖化工具和資料集程式庫，可讓您將這些資源用於訓練和推論任務。有關可用深度學習容器圖像的清單，請參閱[可用的深度學習容器映像檔](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)。這些深度學習容器映像檔會獲得維護並定期更新安全性修補程式。

若要使用 Hugging Face Deep Learning Containers 搭配 SageMaker Python SDK 進行訓練，請參閱 [Hugging Face SageMaker AI 估算器](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html)。使用 Hugging Face 估算器，您可以像使用任何其他 SageMaker AI 估算器一樣使用 Hugging Face 模型。不過，使用 SageMaker Python SDK 是選擇性的。您也可以搭配 AWS CLI 和 協調使用 Hugging Face Deep Learning Containers 適用於 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)。然後，您可以使用 [CloudWatch](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html) 存取擷取的指標，也可以使用 [TrainingJobAnalytics](https://sagemaker.readthedocs.io/en/stable/api/training/analytics.html#sagemaker.analytics.TrainingJobAnalytics) 方法以 Pandas `DataFrame` 形式進行擷取。在訓練並微調了您的模型之後，您可以像任何其他模型一樣使用您的模型來執行推論任務。

### 如何使用 Hugging Face 估算器進行訓練
<a name="hugging-face-training-using"></a>

您可以使用 SageMaker AI Python SDK 為訓練任務執行 Hugging Face 估算器。SageMaker Python SDK 是一個開放原始碼程式庫，用於在 SageMaker AI 上訓練和部署機器學習模型。如需 Hugging Face 估算器的詳細資訊，請參閱 [SageMaker AI Python SDK 文件](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/index.html)。

使用 SageMaker Python SDK，您可以在下列環境中使用 Hugging Face 估算器執行訓練任務：
+ [Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)：Studio Classic 是第一個用於機器學習 (ML) 的完全整合式開發環境 (IDE)。Studio Classic 提供單一的 Web 型視覺化介面，您可以在其中執行下列動作所需的所有 ML 開發步驟：
  + 準備
  + 組建
  + 訓練和調校
  + 部署和管理模型

  如需在 Studio Classic 中使用 Jupyter 筆記本的相關資訊，請參閱[使用 Amazon SageMaker Studio Classic 筆記本](notebooks.md)。
+ [SageMaker 筆記本執行個體](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html)：Amazon SageMaker 筆記本執行個體是執行 Jupyter 筆記本應用程式的機器學習 (ML) 運算執行個體。此應用程式可讓您在筆記本執行個體中執行 Jupyter 筆記本，以：
  + 準備和處理資料
  + 編寫程式碼來訓練模型
  + 將模型部署至 SageMaker AI 託管
  + 在沒有偵錯工具、模型監控和 Web 型 IDE 等 SageMaker Studio 功能的情況下測試或驗證您的模型
+ 本機：如果您已連線至 AWS 並具有適當的 SageMaker AI 許可，則可以在本機使用 SageMaker Python SDK。透過本機使用，您可以在 AWS的 SageMaker AI 中啟動 Hugging Face 的遠端訓練和推論任務。這適用於您的本機機器，以及其他具有連線 SageMaker Python SDK 和適當許可 AWS 的服務。

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

針對推論，您可以使用已訓練的 Hugging Face 模型或其中一個預先訓練的 Hugging Face 模型，搭配 SageMaker AI 部署推論任務。透過此協作，您只需要一行程式碼，即可透過 SageMaker AI 部署您已訓練的模型和預先訓練的模型。您也可以執行推論任務，而不必撰寫任何自訂推論程式碼。使用自訂推論程式碼，您可以提供自己的 Python 指令碼來自訂推論邏輯。

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

使用 SageMaker AI 執行推論時您有兩個選項。您可以使用訓練過的模型執行推論，或部署預先訓練的 Hugging Face 模型。
+ **使用已訓練的模型執行推論**：您有兩個選項可以使用自己訓練的模型執行推論。
  + 使用您已使用現有 Hugging Face 模型搭配 SageMaker AI Hugging Face Deep Learning Containers 訓練的模型執行推論。
  + 自帶現有的 Hugging Face 模型，並使用 SageMaker AI 部署該模型。

  使用您透過 SageMaker AI Hugging Face 估算器訓練的模型執行推論時，您可以在訓練完成後立即部署模型。您也可以將已訓練的模型上傳到 Amazon S3 儲存貯體，並在稍後執行推論時擷取該模型。

  如果您自帶現有的 Hugging Face 模型，則必須將已訓練的模型上傳到 Amazon S3 儲存貯體。然後，您可以在執行推論時擷取該儲存貯體，如[部署 Hugging Face 轉換器進行推論範例](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 轉換器進行推論範例](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 Containers 搭配 SageMaker AI。

我想要使用 SageMaker AI 中的 Hugging Face 搭配 PyTorch 來訓練和部署文字分類模型。  
如需 Jupyter 筆記本範例，請參閱 [PyTorch 入門示範](https://github.com/huggingface/notebooks/blob/main/sagemaker/01_getting_started_pytorch/sagemaker-notebook.ipynb)。

我想要使用 SageMaker AI 中的 Hugging Face 搭配 TensorFlow 來訓練和部署文字分類模型。  
如需 Jupyter 筆記本範例，請參閱 [TensorFlow 入門範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/02_getting_started_tensorflow/sagemaker-notebook.ipynb)。

我想要使用 Hugging Face 和 SageMaker AI Distributed 搭配資料平行化，來執行分散式訓練。  
如需 Jupyter 筆記本範例，請參閱[分散式訓練範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/03_distributed_training_data_parallelism/sagemaker-notebook.ipynb)。

我想要使用 Hugging Face 和 SageMaker AI Distributed 搭配模型平行化，來執行分散式訓練。  
如需 Jupyter 筆記本範例，請參閱[模型並行性範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/04_distributed_training_model_parallelism/sagemaker-notebook.ipynb)。

我想要使用 Spot 執行個體，以使用 SageMaker AI 中的 Hugging Face 來訓練和部署模型。  
如需 Jupyter 筆記本範例，請參閱[ Spot 執行個體範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/05_spot_instances/sagemaker-notebook.ipynb)。

我想要在 SageMaker AI 中使用 Hugging Face 訓練文字分類模型時，擷取自訂指標並使用 SageMaker AI 檢查點。  
如需 Jupyter 筆記本範例，請參閱[使用自訂指標訓練範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/06_sagemaker_metrics/sagemaker-notebook.ipynb)。

我想要使用 SageMaker AI 中的 Hugging Face 來訓練分散式問答 TensorFlow 模型。  
如需 Jupyter 筆記本範例，請參閱[分散式 TensorFlow 訓練範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/07_tensorflow_distributed_training_data_parallelism/sagemaker-notebook.ipynb)。

我想要使用 SageMaker AI 中的 Hugging Face 來訓練分散式摘要模型。  
如需 Jupyter 筆記本範例，請參閱[分散式摘要訓練範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/08_distributed_summarization_bart_t5/sagemaker-notebook.ipynb)。

我想要使用 SageMaker AI 中的 Hugging Face 來訓練影像分類模型。  
如需 Jupyter 筆記本範例，請參閱[視覺轉換器訓練範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/09_image_classification_vision_transformer/sagemaker-notebook.ipynb)。

我想要在 SageMaker AI 中部署已訓練的 Hugging Face 模型。  
如需 Jupyter 筆記本範例，請參閱[部署 Hugging Face 轉換器以進行推論範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/10_deploy_model_from_s3/deploy_transformer_model_from_s3.ipynb)。

我想要在 SageMaker AI 中部署已預先訓練的 Hugging Face 模型。  
如需 Jupyter 筆記本範例，請參閱[部署預先訓練 Hugging Face 轉換器以進行推論範例](https://github.com/huggingface/notebooks/blob/main/sagemaker/11_deploy_model_from_hf_hub/deploy_transformer_model_from_hf_hub.ipynb)。