

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# フレームワークプロセッサによるデータ処理
<a name="processing-job-frameworks"></a>

`FrameworkProcessor` は、指定された機械学習フレームワークを使用して Processing ジョブを実行できます。これにより、選択した機械学習フレームワークに対応する Amazon SageMaker AI マネージドコンテナが提供されます。`FrameworkProcessor` は、Hugging Face、MXNet、PyTorch、TensorFlow、および XGBoost といった機械学習フレームワークのために事前に作成されたコンテナを提供します。

`FrameworkProcessor` クラスは、コンテナ設定のカスタマイズも提供します。`FrameworkProcessor` クラスは、処理スクリプトと依存関係のソースディレクトリ `source_dir` の指定をサポートしています。この機能により、1 つのスクリプトだけを指定する代わりに、プロセッサが 1 つのディレクトリ内の複数のスクリプトにアクセスできるようになります。また `FrameworkProcessor` は、`source_dir` に `requirements.txt` ファイルを含めて、コンテナにインストールするように Python ライブラリをカスタマイズすることもサポートしています。

`FrameworkProcessor` クラスとそのメソッドおよびパラメータの詳細については、*Amazon SageMaker AI Python SDK* の「[FrameworkProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.FrameworkProcessor)」を参照してください。

サポートされている各機械学習フレームワークでの `FrameworkProcessor` の使用例については、次のトピックを参照してください。

**Topics**
+ [Amazon SageMaker Python SDK で HuggingFaceProcessor を使用するコード例](processing-job-frameworks-hugging-face.md)
+ [MXNet フレームワークプロセッサ](processing-job-frameworks-mxnet.md)
+ [PyTorch フレームワークプロセッサ](processing-job-frameworks-pytorch.md)
+ [TensorFlow フレームワークプロセッサ](processing-job-frameworks-tensorflow.md)
+ [XGBoost フレームワークプロセッサ](processing-job-frameworks-xgboost.md)

# 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 イメージを使った Processing ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。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 Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html)」を参照してください。

# MXNet フレームワークプロセッサ
<a name="processing-job-frameworks-mxnet"></a>

Apache MXNet は、一般的にニューラルネットワークのトレーニングとデプロイに使用されるオープンソースの深層学習フレームワークです。Amazon SageMaker Python SDK の `MXNetProcessor` は、MXNet スクリプトを使用して処理ジョブを実行する機能を提供します。`MXNetProcessor` を使用すると、Amazon が構築した Docker コンテナと MXNet のマネージド環境を活用できるため、独自のコンテナを持ち込む必要がなくなります。

次のサンプルは、`MXNetProcessor` を使用して、SageMaker AI が提供し、管理する Docker イメージを使った Processing ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。SageMaker Processing は、コンテナの `requirements.txt` に依存関係をインストールします。

```
from sagemaker.mxnet import MXNetProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the MXNetProcessor
mxp = MXNetProcessor(
    framework_version='1.8.0',
    py_version='py37',
    role=get_execution_role(), 
    instance_count=1,
    instance_type='ml.c5.xlarge',
    base_job_name='frameworkprocessor-mxnet'
)

#Run the processing job
mxp.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='processed_data',
            source='/opt/ml/processing/output/',
            destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'
        )
    ]
)
```

`requirements.txt` ファイルがある場合、コンテナにインストールするライブラリのリストである必要があります。`source_dir` のパスは、相対パス、絶対パス、または Amazon S3 URI パスのいずれかになります。ただし、Amazon S3 URI を使用する場合は、tar.gz ファイルを指している必要があります。`source_dir` に指定したディレクトリには複数のスクリプトを入れることができます。`MXNetProcessor` クラスの詳細については、Amazon SageMaker Python SDK の「[MXNet Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/sagemaker.mxnet.html#mxnet-estimator)」を参照してください。

# PyTorch フレームワークプロセッサ
<a name="processing-job-frameworks-pytorch"></a>

PyTorch はオープンソースの機械学習フレームワークです。Amazon SageMaker Python SDK の `PyTorchProcessor` は、PyTorch スクリプトを使用して処理ジョブを実行する機能を提供します。`PyTorchProcessor` を使用すると、Amazon が構築した Docker コンテナと PyTorch のマネージド環境を活用できるため、独自のコンテナを持ち込む必要がなくなります。

次のサンプルは、`PyTorchProcessor` を使用して、SageMaker AI が提供し、管理する Docker イメージを使った Processing ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。SageMaker Processing は、コンテナの `requirements.txt` に依存関係をインストールします。

SageMaker AI でサポートされている PyTorch バージョンについては、「[Available Deep Learning Container Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)」を参照してください。

```
from sagemaker.pytorch.processing import PyTorchProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the PyTorchProcessor
pytorch_processor = PyTorchProcessor(
    framework_version='1.8',
    role=get_execution_role(),
    instance_type='ml.m5.xlarge',
    instance_count=1,
    base_job_name='frameworkprocessor-PT'
)

#Run the processing job
pytorch_processor.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'
        )
    ],
    outputs=[
        ProcessingOutput(output_name='data_structured', source='/opt/ml/processing/tmp/data_structured', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'),
        ProcessingOutput(output_name='train', source='/opt/ml/processing/output/train', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'),
        ProcessingOutput(output_name='validation', source='/opt/ml/processing/output/val', 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='logs', source='/opt/ml/processing/logs', destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}')
    ]
)
```

`requirements.txt` ファイルがある場合、コンテナにインストールするライブラリのリストである必要があります。`source_dir` のパスは、相対パス、絶対パス、または Amazon S3 URI パスのいずれかになります。ただし、Amazon S3 URI を使用する場合は、tar.gz ファイルを指している必要があります。`source_dir` に指定したディレクトリには複数のスクリプトを入れることができます。`PyTorchProcessor` クラスの詳細については、Amazon SageMaker Python SDK の「[PyTorch Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html)」を参照してください。

# TensorFlow フレームワークプロセッサ
<a name="processing-job-frameworks-tensorflow"></a>

TensorFlow は、オープンソースの機械学習と人工知能のライブラリです。Amazon SageMaker Python SDK の `TensorFlowProcessor` は、TensorFlow スクリプトを使用して処理ジョブを実行する機能を提供します。`TensorFlowProcessor` を使用すると、Amazon が構築した Docker コンテナと TensorFlow のマネージド環境を活用できるため、独自のコンテナを持ち込む必要がなくなります。

次のサンプルは、`TensorFlowProcessor` を使用して、SageMaker AI が提供し、管理する Docker イメージを使った Processing ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。SageMaker Processing は、コンテナの `requirements.txt` に依存関係をインストールします。

```
from sagemaker.tensorflow import TensorFlowProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the TensorFlowProcessor
tp = TensorFlowProcessor(
    framework_version='2.3',
    role=get_execution_role(),
    instance_type='ml.m5.xlarge',
    instance_count=1,
    base_job_name='frameworkprocessor-TF',
    py_version='py37'
)

#Run the processing job
tp.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'
        ),
        ProcessingInput(
            input_name='model',
            source=f's3://{BUCKET}/{S3_PATH_TO_MODEL}',
            destination='/opt/ml/processing/input/model'
        )
    ],
    outputs=[
        ProcessingOutput(
            output_name='predictions',
            source='/opt/ml/processing/output',
            destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'
        )
    ]
)
```

`requirements.txt` ファイルがある場合、コンテナにインストールするライブラリのリストである必要があります。`source_dir` のパスは、相対パス、絶対パス、または Amazon S3 URI パスのいずれかになります。ただし、Amazon S3 URI を使用する場合は、tar.gz ファイルを指している必要があります。`source_dir` に指定したディレクトリには複数のスクリプトを入れることができます。`TensorFlowProcessor` クラスの詳細については、Amazon SageMaker Python SDK の「[TensorFlow Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html#tensorflow-estimator)」を参照してください。

# XGBoost フレームワークプロセッサ
<a name="processing-job-frameworks-xgboost"></a>

XGBoost はオープンソースの機械学習フレームワークです。Amazon SageMaker Python SDK の `XGBoostProcessor` は、XGBoost スクリプトを使用して処理ジョブを実行する機能を提供します。XGBoostProcessor を使用すると、Amazon が構築した Docker コンテナと XGBoost のマネージド環境を活用できるため、独自のコンテナを持ち込む必要がなくなります。

次のサンプルは、`XGBoostProcessor` を使用して、SageMaker AI が提供し、管理する Docker イメージを使った Processing ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。SageMaker Processing は、コンテナの `requirements.txt` に依存関係をインストールします。

```
from sagemaker.xgboost import XGBoostProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the XGBoostProcessor
xgb = XGBoostProcessor(
    framework_version='1.2-2',
    role=get_execution_role(),
    instance_type='ml.m5.xlarge',
    instance_count=1,
    base_job_name='frameworkprocessor-XGB',
)

#Run the processing job
xgb.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='processed_data',
            source='/opt/ml/processing/output/',
            destination=f's3://{BUCKET}/{S3_OUTPUT_PATH}'
        )
    ]
)
```

`requirements.txt` ファイルがある場合、コンテナにインストールするライブラリのリストである必要があります。`source_dir` のパスは、相対パス、絶対パス、または Amazon S3 URI パスのいずれかになります。ただし、Amazon S3 URI を使用する場合は、tar.gz ファイルを指している必要があります。`source_dir` に指定したディレクトリには複数のスクリプトを入れることができます。`XGBoostProcessor` クラスの詳細については、Amazon SageMaker Python SDK の「[XGBoost Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/xgboost/xgboost.html)」を参照してください。