SageMaker Clarify 処理ジョブを設定する - Amazon SageMaker AI

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

SageMaker Clarify 処理ジョブを設定する

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

すべての処理ジョブに共通するパラメータの詳細については、「Amazon SageMaker API リファレンス」を参照してください。

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

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

    { "ImageUri": "the-clarify-container-image-uri" }
    注記

    事前構築済みの SageMaker Clarify コンテナイメージは、URI で識別することができる必要があります。ContainerEntrypointContainerArguments はサポートされていません。SageMaker Clarify コンテナイメージの詳細については、「構築済みの SageMaker Clarify コンテナ」を参照してください。

  2. 分析の設定と入力データセットのパラメータの両方を 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" } }

      分析設定ファイルのスキーマの詳細については、「分析設定ファイル」を参照してください。

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

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

      2. S3InputModeFile タイプでなければなりません。

      3. S3CompressionTypeNone タイプ (デフォルト値) でなければなりません。

      4. S3DataDistributionTypeFullyReplicated タイプ (デフォルト値) でなければなりません。

      5. S3DataTypeS3Prefix または ManifestFile のいずれかになります。ManifestFile を使用するには、S3Uri パラメータに SageMaker API リファレンスセクション S3Uri のスキーマに従うマニフェストファイルの場所を指定する必要があります。このマニフェストファイルには、ジョブの入力データを含む S3 オブジェクトが一覧表示されている必要があります。

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

      { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } }
  3. 処理ジョブの出力設定を ProcessingOutputConfig パラメータ内に指定します。Outputs 設定には ProcessingOutput オブジェクトが 1 つ必要です。出力設定には以下が必要です。

    1. OutputNameanalysis_result である必要があります。

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

    3. S3UploadModeEndOfJob に設定する必要があります。

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

    { "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] }
  4. ProcessingResources処理ジョブで使用するリソースの設定 ClusterConfig を パラメータ内に指定します。ClusterConfig オブジェクト内では次のパラメータが必要です。

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

    2. InstanceType は処理ジョブを実行するリソースを指します。SageMaker AI SHAP 分析は計算集約型であるため、コンピューティング用に最適化されたインスタンスタイプを使用すると、分析のランタイムが向上します。SageMaker Clarify の処理ジョブは GPU を使用しません。

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

    { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20 } }
  5. NetworkConfig オブジェクト内の処理ジョブで使用するネットワークの設定を指定します。設定には以下の値が必要です。

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

    2. SageMaker Clarify ジョブに指定したモデルまたはエンドポイントが Amazon Virtual Private Cloud (Amazon VPC) 内にある場合、SageMaker Clarify ジョブも同じ VPC 内にある必要があります。VpcConfig を使用して VPC を指定します。さらに、VPC には Amazon S3 バケット、SageMaker AI サービス、SageMaker AI ランタイムサービスへのエンドポイントが必要です。

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

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

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

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

    以下の表には、SageMaker Clarify 処理ジョブで使用される API 操作が記載されています。モデル名エンドポイント名の下の X は、各入力に必要な API 操作を示しています。

    API 操作 モデル名 エンドポイント名 使用目的

    ListTags

    X

    ジョブのタグがシャドウエンドポイントに適用されます。

    CreateEndpointConfig

    X

    指定したモデル名を使用してエンドポイント設定を作成します。

    CreateEndpoint

    X

    エンドポイント設定を使用してシャドウエンドポイントを作成します。

    DescribeEndpoint

    X

    X

    エンドポイントのステータスを記述します。リクエストを処理するには、エンドポイントが InService である必要があります。

    InvokeEndpoint

    X

    X

    予測用のエンドポイントを呼び出します。

    必要なアクセス許可の詳細については、「Amazon SageMaker AI API のアクセス許可: アクション、アクセス許可、リソースのリファレンス」を参照してください。

    SageMaker AI にロールを渡す方法の詳細については、「」を参照してくださいロールを渡す

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

以下のコード例は、AWS SDK for Python を使用して SageMaker Clarify 処理ジョブを起動する方法を示しています。

sagemaker_client.create_processing_job( ProcessingJobName="your-clarify-job-name", AppSpecification={ "ImageUri": "the-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 での公平性と説明可能性」を参照してください。ノートブックで使用する S3 バケットは、それにアクセスするノートブックインスタンスと同じ AWS リージョンに存在する必要があります。

SageMaker Python SDK API の SageMaker ClarifyProcessor を使用して SageMaker Clarify 処理ジョブを設定することもできます。詳細については、「バイアス分析と説明可能性のための SageMaker Clarify 処理ジョブを実行する」を参照してください。