Configurer un Job de traitement SageMaker Clarify - Amazon SageMaker AI

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 l'CreateProcessingJobAPI SageMaker AI, soit utiliser l'API SageMaker SageMaker ClarifyProcessor AI Python SDK,

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 de l'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

    L'URI doit 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, consultezConteneurs SageMaker Clarify préfabriqués.

  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 d'analyse JSON, qui inclut les paramètres d'analyse des biais et d'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, consultezFichiers de configuration d'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 de la section de référence de l' SageMaker API 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. L'analyse SageMaker AI SHAP é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 pas GPUs.

    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 (Amazon VPC), la tâche SageMaker Clarify doit également se trouver dans le même VPC. Spécifiez le VPC à l'aide de. VpcConfig En outre, le VPC doit disposer de points de terminaison vers un compartiment Amazon S3, un service AI et SageMaker un service SageMaker AI Runtime.

      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 rôle IAM pour le paramètre RoleArn. Le rôle doit entretenir une relation de confiance avec Amazon SageMaker AI. Il peut être utilisé pour effectuer les opérations SageMaker d'API répertoriées dans le tableau suivant. Nous vous recommandons d'utiliser la politique gérée Amazon SageMaker AIFull Access, qui accorde un accès complet à l' SageMaker IA. 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 à l' SageMaker IA.

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

    Opération API 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 Autorisations d'API Amazon SageMaker AI : référence sur les actions, les autorisations et les ressources.

    Pour plus d'informations sur le transfert de rôles à SageMaker l'IA, 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 du AWS SDK pour 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 du AWS SDK pour Python, voir Équité et explicabilité avec SageMaker Clarify à l'aide du AWS SDK pour 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 SageMaker ClarifyProcessorà l'aide de l'API du SDK SageMaker Python. Pour de plus amples informations, veuillez consulter Exécutez des tâches de traitement SageMaker Clarify pour l'analyse des biais et l'explicabilité.