Crie um aplicativo usando o AWS CLI - 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á.

Crie um aplicativo usando o AWS CLI

Você pode criar um aplicativo usando o AWS CLI para uma personalização de segurança mais granular.

Pré-requisitos

Para criar um aplicativo usando oAWS CLI, você deve ter o seguinte:

  • Acesso a um terminal. Isso pode incluir local IDEs, uma EC2 instância da Amazon ouAWS CloudShell.

  • Acesso a um ambiente de desenvolvimento. Isso pode incluir um ambiente de notebook local IDEs ou Jupyter no Studio ou no Studio Classic.

  • Uma AWS CLI instalação configurada. Para obter mais informações, consulte Configurar a AWS CLI.

  • Um perfil do IAM com as permissões adequadas. As etapas a seguir exigem que seu ambiente tenha as permissões iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy e iam:ListPolicies. Essas permissões são necessárias no perfil que está sendo usado para executar as etapas deste guia do usuário. As instruções neste guia criam uma função do IAM que é usada como função de execução do MLflow aplicativo para que ele possa acessar dados em seus buckets do Amazon S3. Além disso, uma política é criada para dar ao papel do IAM do usuário que está interagindo com o aplicativo por meio do MLflow SDK permissão para chamar. MLflow APIs Para obter mais informações, consulte Modificar a política de permissões (console).

    Se estiver usando um SageMaker Studio Notebook, atualize a função de serviço do seu perfil de usuário do Studio com essas permissões do IAM. Para atualizar a função de serviço, navegue até o console do SageMaker AI e selecione o domínio que você está usando. Em seguida, no domínio, selecione o perfil de usuário que você está usando. Você verá o perfil de serviço listado. Navegue até o console do IAM, pesquise o perfil de serviço em Perfis e atualize seu perfil com uma política que permita as ações iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy e iam:ListPolicies.

Configurar AWS CLI modelo

Siga estas etapas da linha de comando em um terminal para configurar o AWS CLI para Amazon SageMaker AI com MLflow.

  1. Instale uma versão atualizada doAWS CLI. Para obter mais informações, consulte Instalar ou atualizar para a versão mais recente da AWS CLI, no Guia do usuário da AWS CLI.

  2. Verifique se o AWS CLI está instalado usando o seguinte comando:

    aws sagemaker help

    Clique em q para sair do prompt.

    Para obter ajuda sobre a solução de problemas, consulte Solucionar problemas comuns de configuração.

Configure a MLflow infraestrutura

A seção a seguir mostra como configurar um MLflow aplicativo junto com o bucket do Amazon S3 e a função do IAM necessária para o aplicativo.

Crie um bucket do S3

Em seu terminal, use os seguintes comandos para criar um bucket do Amazon S3 de uso geral:

Importante

Ao fornecer o URI do Amazon S3 para seu armazenamento de artefatos, certifique-se de que o bucket do Amazon S3 esteja no mesmo que seu aplicativo. Região da AWS MLflow Não é possível usar armazenamento de artefatos entre regiões.

bucket_name=bucket-name region=valid-region aws s3api create-bucket \ --bucket $bucket_name \ --region $region \ --create-bucket-configuration LocationConstraint=$region

A saída deve ser semelhante à seguinte:

{ "Location": "/bucket-name" }

Configurar políticas de confiança do IAM

Use as etapas a seguir para criar uma política de confiança do IAM. Para obter mais informações sobre políticas e perfis, consulte Termos e conceitos das funções no Guia do usuário do AWS Identity and Access Management.

  1. No terminal, use o comando a seguir para criar um arquivo chamado mlflow-trust-policy.json.

    cat <<EOF > /tmp/mlflow-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF
  2. No terminal, use o comando a seguir para criar um arquivo chamado custom-policy.json.

    cat <<EOF > /tmp/custom-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:UpdateModelPackage", "s3:List*" ], "Resource": "*" } ] } EOF
  3. Use a política de confiança para criar um perfil. Em seguida, anexe políticas de função do IAM que permitam MLflow acessar o Amazon S3 e o SageMaker Model Registry em sua conta. MLflow deve ter acesso ao Amazon S3 para o armazenamento de artefatos do seu aplicativo e ao Registro de modelos para o registro automático do SageMaker modelo.

    nota

    Porém, se quiser atualizar um perfil existente, use o seguinte comando: aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json.

    role_name=role-name aws iam create-role \ --role-name $role_name \ --assume-role-policy-document file:///tmp/mlflow-trust-policy.json aws iam put-role-policy \ --role-name $role_name \ --policy-name custom-policy \ --policy-document file:///tmp/custom-policy.json role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)

Criar MLflow aplicativo

No seu terminal, use a create-mlflow-app API para criar um aplicativo no local Região da AWS de sua escolha. Essa etapa normalmente leva aproximadamente de 2 a 3 minutos.

O comando a seguir cria um novo aplicativo com o registro automático do modelo ativado. Para desativar o registro automático do modelo, especifique --no-automatic-model-registration.

Depois de criar seu aplicativo, você pode iniciar a MLflow interface do usuário. Para obter mais informações, consulte Iniciar a interface do usuário do MLflow com o uso de um URLs pré-assinado..

nota

Pode levar de 2 a 3 minutos para concluir a criação do aplicativo. Se o aplicativo levar mais de 3 minutos para ser criado, verifique se você tem as permissões necessárias do IAM. Quando você cria um aplicativo com sucesso, ele é iniciado automaticamente.

Por padrão, o aplicativo criado é a versão mais recente e será atualizado automaticamente.

app_name=app-name region=valid-region version=valid-version aws sagemaker create-mlflow-app \ --name $app_name \ --artifact-store-uri s3://$bucket_name \ --role-arn $role_arn \ --automatic-model-registration \ --region $region

A saída deve ser semelhante ao seguinte:

{ "AppArn": "arn:aws:sagemaker:region:123456789012:mlflow-app/app-name" }
Importante

Anote o ARN do aplicativo para uso posterior. Você também precisará de $bucket_name para as etapas de limpeza.