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

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

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

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

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

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

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

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

    は、構築済みの SageMaker Clarify コンテナイメージを識別URIする必要があります。 ContainerEntrypointおよび ContainerArgumentsはサポートされていません。 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 のいずれかになります。を使用するにはManifestFileS3Uriパラメータで、リファレンスセクション S3Uri の SageMaker APIスキーマに従うマニフェストファイルの場所を指定する必要があります。このマニフェストファイルには、ジョブの入力データを含む 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 SHAP、コンピューティングに最適化されたインスタンスタイプを使用すると、分析のランタイムが向上します。 SageMaker Clarify 処理ジョブは を使用しませんGPUs。

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

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

    1. EnableNetworkIsolationFalse (デフォルト) に設定する必要があります。これにより、 SageMaker Clarify は必要に応じて予測のためにエンドポイントを呼び出すことができます。

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

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

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

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

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

    次の表に、 SageMaker Clarify 処理ジョブで使用されるAPIオペレーションを示します。モデル名エンドポイント名Xの下には、各入力に必要なAPIオペレーションが記述されます。

    API オペレーション モデル名 エンドポイント名 使用目的

    ListTags

    X

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

    CreateEndpointConfig

    X

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

    CreateEndpoint

    X

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

    DescribeEndpoint

    X

    X

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

    InvokeEndpoint

    X

    X

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

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

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

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

次のコード例は、 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", )

for Python を使用して SageMaker Clarify 処理ジョブを実行する手順が記載されたノートブックの例については、 AWS SDK「for Python を使用して AWS SDK SageMaker Clarify で公平性と説明可能性」を参照してください。ノートブックで使用される S3 バケットは、それにアクセスするノートブックインスタンスと同じ AWS リージョンにある必要があります。

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