Configurar um SageMaker Clarify Processing Job - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar um SageMaker Clarify Processing Job

Para analisar seus dados e modelos em busca de viés e explicabilidade usando o SageMaker Clarify, você deve configurar um trabalho de processamento do SageMaker Clarify. Este guia mostra como especificar o nome do conjunto de dados de entrada, o nome do arquivo de configuração de análise e o local de saída para um trabalho de processamento. Para configurar o contêiner de processamento, entradas, saídas, recursos e outros parâmetros de trabalhos, você tem duas opções. Você pode usar a CreateProcessingJob API SageMaker AI ou usar a API SageMaker AI Python SDK, SageMaker ClarifyProcessor

Para obter informações sobre parâmetros que são comuns a todos os trabalhos de processamento, consulte Amazon SageMaker API Reference.

As instruções a seguir mostram como fornecer cada parte da configuração específica do SageMaker Clarify usando a CreateProcessingJob API.

  1. Insira o identificador uniforme de pesquisa (URI) de uma imagem do contêiner SageMaker Clarify dentro do AppSpecification parâmetro, conforme mostrado no exemplo de código a seguir.

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

    O URI deve identificar uma imagem pré-criada do contêiner SageMaker Clarify. ContainerEntrypointe não ContainerArguments são compatíveis. Para obter mais informações sobre imagens de contêiner do SageMaker Clarify, consulteContêineres SageMaker Clarify pré-construídos.

  2. Especifique a configuração para sua análise e os parâmetros para seu conjunto de dados de entrada dentro do parâmetro ProcessingInputs.

    1. Especifique a localização do arquivo de configuração de análise JSON, que inclui os parâmetros para análise de desvio e análise de explicabilidade. O parâmetro InputName do objeto ProcessingInput deve ser analysis_config, conforme mostrado no exemplo de código a seguir.

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

      Para obter mais informações sobre o esquema do arquivo de configuração da análise, consulte Arquivos de configuração de análise.

    2. Especifique o local do conjunto de dados de entrada. O parâmetro InputName do objeto ProcessingInput deve ser dataset. Esse parâmetro é opcional se você tiver fornecido o “dataset_uri” no arquivo de configuração da análise. Os valores a seguir são obrigatórios na configuração S3Input.

      1. S3Uri pode ser um objeto do Amazon S3 ou um prefixo do S3.

      2. S3InputMode deve ser do tipo File.

      3. S3CompressionType deve ser do tipo None (o valor padrão).

      4. S3DataDistributionType deve ser do tipo FullyReplicated (o valor padrão).

      5. S3DataType pode ser S3Prefix ou ManifestFile. Para ser usadoManifestFile, o S3Uri parâmetro deve especificar a localização de um arquivo de manifesto que segue o esquema da seção Referência da SageMaker API S3Uri. Esse arquivo manifesto deve listar os objetos do S3 que contêm os dados de entrada para o trabalho.

      O código a seguir mostra um exemplo de configuração da entrada.

      { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } }
  3. Especifique a configuração para a saída do trabalho de processamento dentro do parâmetro ProcessingOutputConfig. É necessário um único objeto ProcessingOutput na configuração Outputs. Os dados a seguir são obrigatórios na configuração de saída:

    1. OutputName deve ser analysis_result.

    2. S3Uri deve ser um prefixo do S3 para o local de saída.

    3. S3UploadMode deve ser definido como EndOfJob.

    O código a seguir mostra um exemplo de configuração de saída.

    { "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] }
  4. Especifique a configuração ClusterConfig dos recursos que você usa em seu trabalho de processamento dentro do parâmetro ProcessingResources. Os seguintes parâmetros são obrigatórios dentro do objeto ClusterConfig:

    1. InstanceCount especifica o número de instâncias de computação no cluster que executa o trabalho de processamento. Especifique um valor maior que 1 para ativar o processamento distribuído.

    2. InstanceType refere-se aos recursos que executam seu trabalho de processamento. Como a análise do SageMaker AI SHAP exige muita computação, o uso de um tipo de instância otimizado para computação deve melhorar o tempo de execução da análise. A tarefa de processamento do SageMaker Clarify não usa GPUs.

    O código a seguir mostra um exemplo de configuração de recursos.

    { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20 } }
  5. Especifique a configuração da rede que você usa em seu trabalho de processamento dentro do objeto NetworkConfig. Os valores a seguir são obrigatórios na configuração.

    1. EnableNetworkIsolationdeve ser definido como False (padrão) para que o SageMaker Clarify possa invocar um endpoint, se necessário, para previsões.

    2. Se o modelo ou endpoint que você forneceu para o trabalho do SageMaker Clarify estiver dentro de uma Amazon Virtual Private Cloud (Amazon VPC), o trabalho SageMaker do Clarify também deverá estar na mesma VPC. Especifique a VPC usando. VpcConfig Além disso, a VPC deve ter endpoints para um bucket Amazon S3, serviço de IA e serviço SageMaker AI Runtime. SageMaker

      Se o processamento distribuído estiver ativado, você precisará permitir a comunicação entre as diferentes instâncias no mesmo trabalho de processamento. Configure uma regra para seu grupo de segurança que permita conexões de entrada entre membros do mesmo grupo de segurança. Para obter mais informações, consulte Dê ao Amazon SageMaker Clarify Jobs acesso aos recursos em sua Amazon VPC.

    O código a seguir mostra um exemplo de uma configuração de rede.

    { "EnableNetworkIsolation": False, "VpcConfig": { ... } }
  6. Defina o tempo máximo em que o trabalho será executado usando o parâmetro StoppingCondition. O tempo máximo que uma tarefa do SageMaker Clarify pode ser executada é de 7 dias ou 604800 segundos. Se o trabalho não puder ser concluído dentro desse prazo, ele será interrompido e nenhum resultado de análise será fornecido. Como exemplo, a configuração a seguir limita o tempo máximo que o trabalho pode ser executado a 3600 segundos.

    { "MaxRuntimeInSeconds": 3600 }
  7. Especifique um perfil do IAM para o parâmetro RoleArn. A função deve ter uma relação de confiança com a Amazon SageMaker AI. Ele pode ser usado para realizar as operações de SageMaker API listadas na tabela a seguir. Recomendamos usar a política gerenciada do Amazon SageMaker AIFull Access, que concede acesso total à SageMaker IA. Para obter mais informações sobre essa política, consulte AWS política gerenciada: AmazonSageMakerFullAccess. Se você tiver dúvidas sobre a concessão de acesso total, as permissões mínimas necessárias dependerão de você fornecer um modelo ou um nome de endpoint. Usar um nome de endpoint permite conceder menos permissões à SageMaker IA.

    A tabela a seguir contém as operações de API usadas pela tarefa de processamento do SageMaker Clarify. Um X abaixo do nome do modelo e do nome do endpoint indica a operação de API que é necessária para cada entrada.

    Operação de API Nome do modelo Nome do endpoint Para que é usado

    ListTags

    X

    As tags do trabalho são aplicadas ao endpoint de sombra.

    CreateEndpointConfig

    X

    Criar a configuração do endpoint usando o nome do modelo que você forneceu

    CreateEndpoint

    X

    Criar um endpoint de sombra usando a configuração do endpoint.

    DescribeEndpoint

    X

    X

    Descreva o endpoint por seu status, o endpoint deve ser InService para atender às solicitações.

    InvokeEndpoint

    X

    X

    Invoque o endpoint para fazer predições.

    Para obter mais informações sobre as permissões necessárias, consulte Permissões da API Amazon SageMaker AI: referência de ações, permissões e recursos.

    Para obter mais informações sobre a transferência de funções para a SageMaker IA, consultePerfis de aprovação.

    Depois de configurar as partes individuais do trabalho de processamento, combine-as para configurar o trabalho.

O exemplo de código a seguir mostra como iniciar uma tarefa de processamento do SageMaker Clarify usando o AWS SDK para 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", )

Para ver um exemplo de notebook com instruções para executar uma tarefa de processamento do SageMaker Clarify usando o AWS SDK para Python, consulte Imparcialidade e explicabilidade com o SageMaker Clarify usando o SDK for Python. AWS Qualquer bucket do S3 usado no notebook deve estar na mesma AWS região da instância do notebook que o acessa.

Você também pode configurar uma tarefa de processamento do SageMaker Clarify usando a SageMaker ClarifyProcessorAPI do SDK do SageMaker Python. Para obter mais informações, consulte Execute trabalhos de processamento do SageMaker Clarify para análise de viés e explicabilidade.