

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

# SageMaker Clarify 処理ジョブを設定する
<a name="clarify-processing-job-configure-parameters"></a>

SageMaker Clarify を使用してデータとモデルのバイアスと説明可能性を分析するには、SageMaker Clarify 処理ジョブを設定する必要があります。このガイドでは、処理ジョブの入力データセット名、分析設定ファイル名、出力場所を指定する方法を示します。処理コンテナ、ジョブの入力、出力、リソース、その他のパラメータを設定するには、2 つのオプションがあります。SageMaker AI `CreateProcessingJob` API を使用するか、SageMaker Python SDK API `SageMaker ClarifyProcessor` を使用できます。

すべての処理ジョブに共通するパラメータの詳細については、「[Amazon SageMaker API リファレンス](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html?icmpid=docs_sagemaker_lp)」を参照してください。

## SageMaker API を使用して SageMaker Clarify 処理ジョブを設定する
<a name="clarify-processing-job-configure-parameters-API"></a>

以下の手順は、`CreateProcessingJob` API を使用して SageMaker Clarify 固有の設定の各部分を指定する方法を示しています。

1. 次のコード例に示すように、SageMaker Clarify コンテナイメージのユニフォームリサーチ識別子 (URI) を `AppSpecification` パラメータに入力します。

   ```
   {
       "ImageUri": "{{the-clarify-container-image-uri}}"
   }
   ```
**注記**  
事前構築済みの SageMaker Clarify コンテナイメージは、URI で識別することができる必要があります。`ContainerEntrypoint` と `ContainerArguments` はサポートされていません。SageMaker Clarify コンテナイメージの詳細については、「[構築済みの SageMaker Clarify コンテナ](clarify-processing-job-configure-container.md)」を参照してください。

1. 分析の設定と入力データセットのパラメータの両方を `ProcessingInputs` パラメータ内に指定します。

   1. バイアス分析と説明可能性分析のパラメータを含む JSON 分析設定ファイルの場所を指定します。`ProcessingInput` オブジェクトの `InputName` パラメータは、次のコード例に示すとおり **analysis\_config** でなければなりません。

      ```
      {
          "InputName": "analysis_config",
          "S3Input": {
              "S3Uri": "{{s3://your-bucket/analysis_config.json}}",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/{{input/config}}"
          }
      }
      ```

      分析設定ファイルのスキーマの詳細については、「[分析設定ファイル](clarify-processing-job-configure-analysis.md)」を参照してください。

   1. 入力データセットの場所を指定します。`ProcessingInput` オブジェクトの `InputName` パラメータは `dataset` でなければなりません。分析設定ファイルに "dataset\_uri" を指定している場合、このパラメータはオプションです。`S3Input` 設定には以下の値が必要です。

      1. `S3Uri` は Amazon S3 オブジェクトまたは S3 プレフィックスのいずれかになります。

      1. `S3InputMode` は **File** タイプでなければなりません。

      1. `S3CompressionType` は `None` タイプ (デフォルト値) でなければなりません。

      1. `S3DataDistributionType` は `FullyReplicated` タイプ (デフォルト値) でなければなりません。

      1. `S3DataType` は `S3Prefix` または `ManifestFile` のいずれかになります。`ManifestFile` を使用するには、`S3Uri` パラメータに SageMaker API リファレンスセクション [S3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html#sagemaker-Type-S3DataSource-S3Uri) のスキーマに従うマニフェストファイルの場所を指定する必要があります。このマニフェストファイルには、ジョブの入力データを含む S3 オブジェクトが一覧表示されている必要があります。

      次のコードは、入力設定の例を示しています。

      ```
      {
          "InputName": "dataset",
          "S3Input": {
              "S3Uri": "{{s3://your-bucket/your-dataset.csv}}",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/{{input/data}}"
          }
      }
      ```

1. 処理ジョブの出力設定を `ProcessingOutputConfig` パラメータ内に指定します。`Outputs` 設定には `ProcessingOutput` オブジェクトが 1 つ必要です。出力設定には以下が必要です。

   1. `OutputName` は **analysis\_result** である必要があります。

   1. `S3Uri` は出力場所の S3 プレフィックスである必要があります。

   1. `S3UploadMode` を **EndOfJob** に設定する必要があります。

   次のコードは、出力設定の例を示しています。

   ```
   {
       "Outputs": [{ 
           "OutputName": "analysis_result",
           "S3Output": { 
               "S3Uri": "{{s3://your-bucket/result/}}",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/{{output}}"
            }
        }]
   }
   ```

1. `ProcessingResources`処理ジョブで使用するリソースの設定 `ClusterConfig` を パラメータ内に指定します。`ClusterConfig` オブジェクト内では次のパラメータが必要です。

   1. `InstanceCount` は処理ジョブを実行するクラスター内のコンピューティングインスタンスの数を指定します。分散処理を有効にするには、1 より大きい値を指定します。

   1. `InstanceType` は処理ジョブを実行するリソースを指します。SageMaker AI SHAP 分析はコンピューティング集約的であるため、コンピューティング用に最適化されたインスタンスタイプを使用すると、分析の実行時間を改善できます。SageMaker Clarify の処理ジョブは GPU を使用しません。

   次のコードは、リソース設定の例を示しています。

   ```
   {
       "ClusterConfig": {
            "InstanceCount": {{1}},
            "InstanceType": "{{ml.m5.xlarge}}",
            "VolumeSizeInGB": {{20}}
        }
   }
   ```

1. `NetworkConfig` オブジェクト内の処理ジョブで使用するネットワークの設定を指定します。設定には以下の値が必要です。

   1. SageMaker Clarify が必要に応じて予測用のエンドポイントを呼び出せるように、`EnableNetworkIsolation` を `False` (デフォルト) に設定する必要があります。

   1. SageMaker Clarify ジョブに指定したモデルまたはエンドポイントが Amazon Virtual Private Cloud (Amazon VPC) 内にある場合、SageMaker Clarify ジョブも同じ VPC 内にある必要があります。[VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) を使用して VPC を指定します。また、VPC には Amazon S3 バケット、SageMaker サービス、SageMaker ランタイムサービスへのエンドポイントが必要です。

      分散型処理が有効の場合、同じ処理ジョブ内の異なるインスタンス間の通信を許可する必要もあります。同じセキュリティグループのメンバー間のインバウンド接続を許可するセキュリティグループのルールを設定します。詳細については、「[Amazon VPC のリソースへのアクセス権を Amazon SageMaker Clarify ジョブに付与する](clarify-vpc.md)」を参照してください。

   次のコードは、ネットワーク設定の例を示しています。

   ```
   {
       "EnableNetworkIsolation": False,
       "VpcConfig": {
           ...
       }
   }
   ```

1. `StoppingCondition` パラメータを使用してジョブの最大実行時間を設定します。SageMaker Clarify ジョブが実行できる最長時間は `7` 日または `604800` 秒です。この制限時間内にジョブを完了できない場合、ジョブは停止され、分析結果は提供されません。例えば、以下の設定ではジョブを実行できる最大時間を 3600 秒に制限しています。

   ```
   {
       "MaxRuntimeInSeconds": 3600
   }
   ```

1. `RoleArn` パラメータの IAM ロールを指定します。このロールには Amazon SageMaker AI との信頼関係が必要です。これを使用して、次の表に記載されている SageMaker API 操作を実行できます。SageMaker AI へのフルアクセスを許可する Amazon SageMaker AIFullAccess マネージドポリシーを使用することをお勧めします。このポリシーの詳細については、[AWS マネージドポリシー: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess) を参照してください。フルアクセス許可の付与について懸念がある場合、必要な最小限のアクセス許可は、モデル名とエンドポイント名のどちらを指定するかによって異なります。エンドポイント名を使用すると、SageMaker AI に付与する許可を低減できます。

   以下の表には、SageMaker Clarify 処理ジョブで使用される API 操作が記載されています。**モデル名**と**エンドポイント名**の下の **X** は、各入力に必要な API 操作を示しています。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/clarify-processing-job-configure-parameters.html)

   必要なアクセス許可の詳細については、「[Amazon SageMaker AI API アクセス許可: アクション、アクセス許可、リソースの参照](api-permissions-reference.md)」を参照してください。

   SageMaker AI へのロールの受け渡しの詳細については、「[ロールを渡す](sagemaker-roles.md#sagemaker-roles-pass-role)」を参照してください。

   処理ジョブの設定を個別に作成したら、それらを組み合わせてジョブを設定します。

## AWS SDK for Python を使用して SageMaker Clarify 処理ジョブを設定する
<a name="clarify-processing-job-configure-parameters-SDK"></a>

以下のコード例は、[AWS SDK for Python](https://aws.amazon.com/sdk-for-python/) を使用して SageMaker Clarify 処理ジョブを起動する方法を示しています。

```
sagemaker_client.create_processing_job(
    ProcessingJobName="{{your-clarify-job-name}}",
    AppSpecification={
        "ImageUri": "t{{he-clarify-container-image-uri}}",
    },
    ProcessingInputs=[{
            "InputName": "analysis_config",
            "S3Input": {
                "S3Uri": "s3://{{your-bucket/analysis_config.json}}",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/{{input/config}}",
            },
        }, {
            "InputName": "dataset",
            "S3Input": {
                "S3Uri": "s3://{{your-bucket/your-dataset.csv}}",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/{{input/data}}",
            },
        },
    ],
    ProcessingOutputConfig={
        "Outputs": [{ 
            "OutputName": "analysis_result",
            "S3Output": { 
               "S3Uri": "s3://{{your-bucket/result/}}",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/{{output}}",
            },   
        }],
    },
    ProcessingResources={
        "ClusterConfig": {
            "InstanceCount": {{1}},
            "InstanceType": "{{ml.m5.xlarge}}",
            "VolumeSizeInGB": {{20}},
        },
    },
    NetworkConfig={
        "EnableNetworkIsolation": False,
        "VpcConfig": {
            ...
        },
    },
    StoppingCondition={
        "MaxRuntimeInSeconds": {{3600}},
    },
    RoleArn="arn:aws:iam::{{<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole}}",
)
```

 AWS SDK for Python を使用して SageMaker Clarify 処理ジョブを実行する手順を含むノートブックの例については、[AWS 「 SDK for Python を使用した SageMaker Clarify の公平性と説明可能性](http://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_boto3.ipynb)」を参照してください。ノートブックで使用する S3 バケットは、それにアクセスするノートブックインスタンスと同じ AWS リージョンに存在する必要があります。

## SageMaker Python SDK を使用して SageMaker Clarify 処理ジョブを設定する
<a name="clarify-processing-job-configure-parameters-SM-SDK"></a>

SageMaker Python SDK API の [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor) を使用して SageMaker Clarify 処理ジョブを設定することもできます。詳細については、「[バイアス分析と説明可能性のための SageMaker Clarify 処理ジョブを実行する](clarify-processing-job-run.md)」を参照してください。

**Topics**
+ [構築済みの SageMaker Clarify コンテナ](clarify-processing-job-configure-container.md)
+ [分析設定ファイル](clarify-processing-job-configure-analysis.md)
+ [データ形式互換性ガイド](clarify-processing-job-data-format.md)