

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

# Amazon SageMaker AI による推論のためのバッチ変換
<a name="batch-transform"></a>

以下を実行する必要がある場合は、バッチ変換を使用します。
+ データセットを前処理して、トレーニングや推論を妨げるノイズやバイアスをデータセットから取り除く場合。
+ 大規模なデータセットから推論を取得する場合。
+ 永続的なエンドポイントが不要なときに推論を実行する場合。
+ 入力レコードを推論に関連付けて結果の解釈に役立てる場合。

推論を実行する前に入力データをフィルタリングしたり、入力レコードをそれらのレコードに関する推論と関連付けるには、[予測結果を入力レコードに関連付ける](batch-transform-data-processing.md) を使用します。たとえば、入力データをフィルタリングして、出力データに関するレポートを作成および解釈するためのコンテキストを提供できます。

**Topics**
+ [バッチ変換を使用して大規模なデータセットから推論を取得する](#batch-transform-large-datasets)
+ [バッチ変換ジョブを高速化する](#batch-transform-reduce-time)
+ [バッチ変換を使用して本番稼働用バリアントをテストする](#batch-transform-test-variants)
+ [バッチ変換のサンプルノートブック](#batch-transform-notebooks)
+ [予測結果を入力レコードに関連付ける](batch-transform-data-processing.md)
+ [バッチ変換での保存](batch-transform-storage.md)
+ [トラブルシューティング](batch-transform-errors.md)

## バッチ変換を使用して大規模なデータセットから推論を取得する
<a name="batch-transform-large-datasets"></a>

バッチ変換では、指定されたパラメータの範囲内で大規模なデータセットの処理を自動的に管理します。たとえば、S3 バケットに格納されているデータセットファイル `input1.csv` があるとします。入力ファイルの内容は次の例のようになります。

```
Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM
Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM
Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM
...
RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM
```

バッチ変換ジョブが開始されると、SageMaker AI はコンピューティングインスタンスを起動し、それらの間で推論または前処理のワークロードを分散します。バッチ変換では、キーによって入力の Amazon S3 オブジェクトを分割し、Amazon S3 オブジェクトをインスタンスにマッピングします。複数のファイルがある場合、1 つのインスタンスでは `input1.csv` を処理し、別のインスタンスでは `input2.csv` という名前のファイルを処理する場合があります。入力ファイルが 1 つで、複数のコンピューティングインスタンスを初期化した場合、1 つのインスタンスだけが入力ファイルを処理し、残りのインスタンスはアイドル状態になります。

入力ファイルをミニバッチに分割することもできます。たとえば、レコード群から 2 つのファイルのみを含めることで、`input1.csv` からミニバッチを作成できます。

```
Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM
Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
```

**注記**  
SageMaker AI は、各入力ファイルを別々に処理します。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               ) の制限に準拠できるよう、別々の入力ファイルのミニバッチは結合されません。

入力ファイルをミニバッチに分割するには、バッチ変換ジョブを作成する際に、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ) パラメータ値を `Line` に設定します。次の場合、SageMaker AI は単一のリクエストで入力ファイル全体を使用します。
+ `SplitType` は `None` に設定されます。
+ 入力ファイルをミニバッチに分割できない。

バッチ変換は、埋め込まれた改行文字を含む CSV 形式の入力をサポートしていません。ミニバッチのサイズは、`[BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-BatchStrategy)` および `[MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxPayloadInMB)` パラメータを使用して制御できます。`MaxPayloadInMB` は 100 MB 以下にする必要があります。オプションの `[MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxConcurrentTransforms)` パラメータを指定する場合、`(MaxConcurrentTransforms * MaxPayloadInMB)` の値も 100 MB 以下にする必要があります。

バッチ変換ジョブが入力ファイル内のすべてのレコードの処理に成功すると、出力ファイルが作成されます。出力ファイルは同じ名前となり、ファイル拡張子 `.out` が付きます。複数の入力ファイル (`input1.csv`、`input2.csv` など) の場合、出力ファイルの名前は `input1.csv.out`、`input2.csv.out` などになります。バッチ変換ジョブでは、Amazon S3 内の指定された場所 (`s3://amzn-s3-demo-bucket/output/` など) に出力ファイルを保存します。

出力ファイル内の予測は、入力ファイルの対応するレコードと同じ順に一覧表示されます。出力ファイル `input1.csv.out` は、前に示した入力ファイルに応じて、次のようになります。

```
Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM
Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM
Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM
...
InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM
```

[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ) を `Line` に設定した場合、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith             ) パラメータを `Line` に設定して出力レコードを行区切り文字で連結できます。出力ファイルの数は変わりません。出力ファイルの数は入力ファイルの数と同じで、`AssembleWith` を使用してもファイルはマージされません。`AssembleWith` パラメータを指定しない場合、デフォルトでは出力レコードはバイナリ形式で連結されます。

入力データが非常に大きく、HTTP チャンクエンコーディングで送信して、データをアルゴリズムにストリーミングする場合、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB) を `0` に設定します。Amazon SageMaker AI の組み込みアルゴリズムではこの機能はサポートされていません。

API を使用してバッチ変換ジョブを作成する方法については、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) API を参照してください。バッチ変換の入力オブジェクトと出力オブジェクトの関係の詳細については、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html)」を参照してください。バッチ変換の使用方法の例については、「[(オプション) バッチ変換を使用して予測を行う](ex1-model-deployment.md#ex1-batch-transform)」を参照してください。

## バッチ変換ジョブを高速化する
<a name="batch-transform-reduce-time"></a>

[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) API を使用している場合は、パラメータに最適値を使用することで、バッチ変換ジョブの完了にかかる時間を短縮できます。これには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB)、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms)、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-BatchStrategy) などのパラメータが含まれます。`MaxConcurrentTransforms` の理想的な値は、バッチ変換ジョブに含まれるコンピューティングワーカーの数と同じです。

SageMaker AI コンソールを使用する場合は、**[バッチ変換ジョブの設定]** ページの **[追加設定]** セクションで、これらの最適なパラメータ値を指定します。SageMaker AI は、組み込みアルゴリズムの最適なパラメータ設定を自動的に探します。カスタムアルゴリズムの場合は、これらの値を [execution-parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests) エンドポイントを通じて指定します。

## バッチ変換を使用して本番稼働用バリアントをテストする
<a name="batch-transform-test-variants"></a>

さまざまなモデル、またはハイパーパラメータ設定をテストするには、新しいモデルバリアントごとに別々の変換ジョブを作成し、検証データセットを使用します。変換ジョブごとに、一意のモデル名と、出力ファイル用の Amazon S3 の場所を指定します。結果を分析するには、[推論パイプラインのログとメトリクス](inference-pipeline-logs-metrics.md) を使用します。

## バッチ変換のサンプルノートブック
<a name="batch-transform-notebooks"></a>

バッチ変換を使用するサンプルノートブックについては、[PCA によるバッチ変換と DBSCAN を使用した映画のクラスタリング](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_batch_transform/introduction_to_batch_transform/batch_transform_pca_dbscan_movie_clusters.html)の例を参照してください。このノートブックでは、プリンシパルコンポーネント分析 (PCA) モデルでバッチ変換を行い、ユーザーと項目のレビューマトリックス内のデータを削減します。次に、DBSCAN (Density-Based Spatial Clustering of Applications with Noise) アルゴリズムを使用して映画をクラスタリングする方法について示します。

 SageMaker AI でサンプルを実行する際に使用できる Jupyter ノートブックインスタンスを作成してアクセスする手順については、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。ノートブックインスタンスを作成して開いた後、**[SageMaker サンプル]** タブを選択して、すべての SageMaker AI サンプルのリストを表示します。NTM アルゴリズムを使用するトピックモデリングのサンプルノートブックは、**高度な機能**のセクションにあります。ノートブックを開くには、その [**使用**] タブを選び、次に [**コピーを作成**] を選択します。