Configurer un Job de traitement SageMaker Clarify - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer un Job de traitement SageMaker Clarify

Pour analyser vos données et modèles afin de détecter les biais et l'explicabilité à l'aide de SageMaker Clarify, vous devez configurer une tâche de traitement SageMaker Clarify. Ce guide vous montre comment spécifier le nom du jeu de données en entrée, le nom du fichier de configuration d'analyse et l'emplacement de sortie pour une tâche de traitement. Pour configurer le conteneur de traitement, les entrées de tâches, les sorties, les ressources et les autres paramètres, vous avez deux options. Vous pouvez soit utiliser le SageMaker CreateProcessingJobAPI, soit utiliser le SageMaker Python SDK APISageMaker ClarifyProcessor,

Pour plus d'informations sur les paramètres communs à toutes les tâches de traitement, consultez Amazon SageMaker API Reference.

Les instructions suivantes montrent comment fournir chaque partie de la configuration spécifique de SageMaker Clarify à l'aide du CreateProcessingJobAPI.

  1. Entrez l'identifiant de recherche uniforme (URI) d'une image de conteneur SageMaker Clarify dans le AppSpecification paramètre, comme indiqué dans l'exemple de code suivant.

    { "ImageUri": "the-clarify-container-image-uri" }
    Note

    Ils URI doivent identifier une image de conteneur SageMaker Clarify prédéfinie. ContainerEntrypointet ne ContainerArguments sont pas pris en charge. Pour plus d'informations sur les images de conteneurs SageMaker Clarify, consultezCommencez avec un conteneur SageMaker Clarify.

  2. Spécifiez à la fois la configuration de votre analyse et les paramètres de votre jeu de données en entrée dans le paramètre ProcessingInputs.

    1. Spécifiez l'emplacement du fichier de configuration de l'JSONanalyse, qui inclut les paramètres de l'analyse des biais et de l'analyse d'explicabilité. Le paramètre InputName de l'objet ProcessingInput doit être analysis_config tel qu'illustré dans l'exemple de code suivant.

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

      Pour plus d'informations sur le schéma du fichier de configuration d'analyse, consultezConfigurer l'analyse.

    2. Spécifiez l'emplacement du jeu de données en entrée. Le paramètre InputName de l'objet ProcessingInput doit être dataset. Ce paramètre est facultatif si vous avez fourni le "dataset_uri" dans le fichier de configuration d'analyse. Les valeurs suivantes sont requises dans la configuration S3Input.

      1. S3Uri peut être un objet Amazon S3 ou un préfixe S3.

      2. S3InputMode doit être de type File.

      3. S3CompressionType doit être de type None (valeur par défaut).

      4. S3DataDistributionType doit être de type FullyReplicated (valeur par défaut).

      5. S3DataType peut avoir la valeur S3Prefix ou ManifestFile. Pour être utiliséManifestFile, le S3Uri paramètre doit spécifier l'emplacement d'un fichier manifeste qui suit le schéma indiqué dans la section de SageMaker API référence S3Uri. Ce fichier manifeste doit répertorier les objets S3 contenant les données d'entrée pour la tâche.

      Le code suivant montre un exemple de configuration d'entrée.

      { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } }
  3. Spécifiez la configuration pour la sortie de la tâche de traitement dans le paramètre ProcessingOutputConfig. Un seul objet ProcessingOutput est requis dans la configuration Outputs. Les conditions suivantes sont requises dans la configuration de sortie :

    1. OutputName doit avoir pour valeur analysis_result.

    2. S3Uri doit être un préfixe S3 de l'emplacement de sortie.

    3. S3UploadMode doit être défini sur EndOfJob.

    Le code suivant montre un exemple de configuration de sortie.

    { "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] }
  4. Spécifiez la configuration ClusterConfig pour les ressources que vous utilisez dans votre tâche de traitement dans le paramètre ProcessingResources. Les paramètres suivants sont nécessaires à l'intérieur de l'objet ClusterConfig.

    1. InstanceCount indique le nombre d'instances de calcul dans le cluster qui exécute la tâche de traitement. Spécifiez une valeur supérieure à 1 pour activer le traitement distribué.

    2. InstanceType fait référence aux ressources qui exécutent votre tâche de traitement. SageMaker SHAPL'analyse étant gourmande en ressources informatiques, l'utilisation d'un type d'instance optimisé pour le calcul devrait améliorer le temps d'exécution de l'analyse. La tâche de traitement SageMaker Clarify n'utilise pasGPUs.

    Le code suivant montre un exemple de configuration de ressource.

    { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20 } }
  5. Spécifiez la configuration du réseau que vous utilisez dans votre tâche de traitement au sein de l'objet NetworkConfig. Les valeurs suivantes sont requises dans la configuration.

    1. EnableNetworkIsolationdoit être défini sur False (par défaut) afin que SageMaker Clarify puisse invoquer un point de terminaison, si nécessaire, pour les prédictions.

    2. Si le modèle ou le point de terminaison que vous avez fourni à la tâche SageMaker Clarify se trouve dans un Amazon Virtual Private Cloud (AmazonVPC), la tâche SageMaker Clarify doit également se trouver dans le même environnementVPC. Spécifiez l'VPCutilisation VpcConfig. En outre, ils VPC doivent disposer de points de terminaison vers un compartiment, un SageMaker service et un service SageMaker d'exécution Amazon S3.

      Si le traitement distribué est activé, vous devez également autoriser la communication entre les différentes instances d'une même tâche de traitement. Configurez une règle pour votre groupe de sécurité qui autorise les connexions entrantes entre les membres du même groupe de sécurité. Pour de plus amples informations, veuillez consulter Donnez à Amazon SageMaker Clarify Jobs l'accès aux ressources de votre Amazon VPC.

    Le code suivant montre un exemple de configuration réseau.

    { "EnableNetworkIsolation": False, "VpcConfig": { ... } }
  6. Définissez la durée maximale d'exécution de la tâche à l'aide du paramètre StoppingCondition. La durée maximale d'exécution d'une tâche SageMaker Clarify est de 7 jours ou de 604800 secondes. Si la tâche ne peut pas être terminée dans ce délai, elle sera arrêtée et aucun résultat d'analyse ne sera fourni. Par exemple, la configuration suivante limite la durée maximale d'exécution de la tâche à 3 600 secondes.

    { "MaxRuntimeInSeconds": 3600 }
  7. Spécifiez un IAM rôle pour le RoleArn paramètre. Le rôle doit entretenir une relation de confiance avec Amazon SageMaker. Il peut être utilisé pour effectuer les SageMaker API opérations répertoriées dans le tableau suivant. Nous vous recommandons d'utiliser la politique SageMakerFullAccess gérée par Amazon, qui accorde un accès complet à SageMaker. Pour plus d'informations sur cette politique, consultezAWS politique gérée : AmazonSageMakerFullAccess. Si vous avez des préoccupations concernant l'octroi d'un accès complet, les autorisations minimales requises varient selon que vous fournissez un modèle ou un nom de point de terminaison. L'utilisation d'un nom de point de terminaison permet d'accorder moins d'autorisations à SageMaker.

    Le tableau suivant contient les API opérations utilisées par la tâche de traitement SageMaker Clarify. Un X sous-nom du modèle et le nom du point de terminaison indiquent l'APIopération requise pour chaque entrée.

    APIFonctionnement Nom du modèle Nom du point de terminaison Objectif d'utilisation

    ListTags

    X

    Les balises de la tâche sont appliquées au point de terminaison miroir.

    CreateEndpointConfig

    X

    Créer la configuration du point de terminaison en utilisant le nom du modèle que vous avez fourni.

    CreateEndpoint

    X

    Créer un point de terminaison miroir en utilisant la configuration du point de terminaison.

    DescribeEndpoint

    X

    X

    Décrivez le point de terminaison en fonction de son état, le point de terminaison doit être InService destiné à répondre aux demandes.

    InvokeEndpoint

    X

    X

    Invoquer le point de terminaison pour des prédictions.

    Pour plus d’informations sur les autorisations requises, consultez SageMaker APIAutorisations Amazon : référence sur les actions, les autorisations et les ressources.

    Pour plus d'informations sur le transfert de rôles à SageMaker, consultezTransmission de rôles.

    Une fois que vous avez défini les éléments individuels de la configuration de la tâche de traitement, combinez-les pour configurer la tâche.

L'exemple de code suivant montre comment lancer une tâche de traitement SageMaker Clarify à l'aide de AWS SDKfor Python.

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", )

Pour un exemple de bloc-notes contenant des instructions pour exécuter une tâche de traitement SageMaker Clarify à l'aide AWS SDK de Python, voir Équité et explicabilité avec SageMaker Clarify à l'aide de AWS SDK Python. Tout compartiment S3 utilisé dans le bloc-notes doit se trouver dans la même AWS région que l'instance du bloc-notes qui y accède.

Vous pouvez également configurer une tâche de traitement SageMaker Clarify en utilisant le SageMaker ClarifyProcessordans le SageMaker Python SDKAPI. Pour de plus amples informations, veuillez consulter Exécutez des tâches de traitement SageMaker Clarify pour l'analyse des biais et l'explicabilité.