

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

# 在 Amazon SageMaker Python SDK 中使用 HuggingFaceProcessor 的程式碼範例
<a name="processing-job-frameworks-hugging-face"></a>

Hugging Face 是自然語言處理 (NLP) 模型的開放原始碼供應商。Amazon SageMaker Python SDK 中的 `HuggingFaceProcessor` 提供您使用 Hugging Face 指令碼執行處理任務的能力。當您使用 `HuggingFaceProcessor` 時，可以利用 Amazon 建置的 Docker 容器與受管 Hugging Face 環境，這樣就不必使用自己的容器。

下列程式碼範例顯示如何使用 `HuggingFaceProcessor`，並透過 SageMaker AI 提供和維護的 Docker 映像檔來執行處理任務。請注意，執行任務時，您可以在 `source_dir` 引數中指定一個包含指令碼和相依性的目錄，而且可以在 `source_dir` 目錄中擁有一個 `requirements.txt` 檔案來指定處理指令碼的相依性。SageMaker Processing 會在容器中為您安裝 `requirements.txt` 中的相依性。

```
from sagemaker.huggingface import HuggingFaceProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the HuggingFaceProcessor
hfp = HuggingFaceProcessor(
    role=get_execution_role(), 
    instance_count=1,
    instance_type='ml.g4dn.xlarge',
    transformers_version='4.4.2',
    pytorch_version='1.6.0', 
    base_job_name='frameworkprocessor-hf'
)

#Run the processing job
hfp.run(
    code='processing-script.py',
    source_dir='scripts',
    inputs=[
        ProcessingInput(
            input_name='data',
            source=f's3://{BUCKET}/{S3_INPUT_PATH}',
            destination='/opt/ml/processing/input/data/'
        )
    ],
    outputs=[
        ProcessingOutput(output_name='train', source='/opt/ml/processing/output/train/', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'),
        ProcessingOutput(output_name='test', source='/opt/ml/processing/output/test/', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'),
        ProcessingOutput(output_name='val', source='/opt/ml/processing/output/val/', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}')
    ]
)
```

如果您有一個 `requirements.txt` 檔案，該檔案應該會是您要在容器中安裝的程式庫清單。`source_dir` 的路徑可以是相對路徑、絕對路徑或 Amazon S3 URI 路徑。不過，如果您使用 Amazon S3 URI，那麼它必須指向一個 tar.gz 檔案。您可以在為 `source_dir` 指定的目錄中擁有多個指令碼。如要進一步了解 `HuggingFaceProcessor` 類別，請參閱 *Amazon SageMaker AI Python SDK* 中的 [Hugging Face 估算器](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html)。