Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS

Em 9 de agosto de 2022, anunciamos a disponibilidade geral do compartilhamento entre contas de Entidades do Amazon SageMaker Pipelines. Agora você pode usar o suporte entre contas para Pipelines Amazon SageMaker para compartilhar entidades de pipeline entre contas da AWS e acessar pipelines compartilhados diretamente por meio Amazon Sage Maker Chamadas de API.

Os clientes estão adotando cada vez mais arquiteturas multicontas para implantar e gerenciar fluxos de trabalho de aprendizado de máquina (ML) com SageMaker Pipelines. Isso envolve criar fluxos de trabalho em contas de desenvolvimento ou experimentação (dev), implantá-los e testá-los em uma conta de teste ou pré-produção (teste) e, finalmente, promovê-los para contas de produção (prod) para integração com outros processos de negócios. Você pode se beneficiar do compartilhamento entre contas de pipelines do SageMaker nos seguintes casos de uso:

  • Quando os cientistas de dados criam fluxos de trabalho de ML em uma conta de desenvolvimento, esses fluxos de trabalho são então implantados por um engenheiro de ML como um pipeline do SageMaker em uma conta de teste dedicada. Para monitorar ainda mais esses fluxos de trabalho, os cientistas de dados agora exigem permissão somente leitura entre contas para o pipeline implantado na conta de teste.
  • Engenheiros de ML, administradores de ML e equipes de conformidade, que gerenciam a implantação e as operações desses fluxos de trabalho de ML a partir de uma conta de serviços compartilhada, também exigem visibilidade do pipeline implantado na conta de teste. Eles também podem exigir permissões adicionais para iniciar, interromper e tentar novamente esses fluxos de trabalho de ML.

Nesta postagem, apresentamos um exemplo de arquitetura multicontas para desenvolver e implantar fluxos de trabalho de ML com SageMaker Pipelines.

Visão geral da solução

Uma estratégia de várias contas ajuda você a obter isolamento de dados, projetos e equipes, ao mesmo tempo que oferece suporte às etapas do ciclo de vida de desenvolvimento de software. O compartilhamento de pipeline entre contas oferece suporte a uma estratégia de várias contas, eliminando a sobrecarga de login e logout de várias contas e melhorando os testes de ML e os fluxos de trabalho de implantação, compartilhando recursos diretamente entre várias contas.

Neste exemplo, temos uma equipe de ciência de dados que usa uma conta de desenvolvimento dedicada para o desenvolvimento inicial do pipeline do SageMaker. Esse pipeline é então entregue a um engenheiro de ML, que cria um pipeline de integração contínua e entrega contínua (CI/CD) na conta de serviços compartilhados para implantar esse pipeline em uma conta de teste. Para ainda poder monitorar e controlar o pipeline implantado a partir de suas respectivas contas de desenvolvimento e serviços compartilhados, compartilhamentos de recursos estão configurados com Gerenciador de acesso a recursos da AWS nas contas de teste e desenvolvimento. Com essa configuração, o engenheiro de ML e o cientista de dados agora podem monitorar e controlar os pipelines nas contas de desenvolvimento e teste de suas respectivas contas, conforme mostrado na figura a seguir.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

No fluxo de trabalho, o cientista de dados e o engenheiro de ML executam as seguintes etapas:

  1. O cientista de dados (DS) cria um pipeline de modelo na conta de desenvolvimento.
  2. O engenheiro de ML (MLE) produz o pipeline do modelo e cria um pipeline (para esta postagem, chamamos isso sagemaker-pipeline).
  3. sagemaker-pipeline código está comprometido com um AWS CodeCommit repositório na conta de serviços compartilhados.
  4. O cientista de dados cria um compartilhamento de recursos AWS RAM para sagemaker-pipeline e compartilha-o com a conta de serviços compartilhados, que aceita o compartilhamento de recursos.
  5. Na conta de serviços compartilhados, os engenheiros de ML agora podem descrever, monitorar e administrar as execuções do pipeline na conta de desenvolvimento usando Chamadas de API do SageMaker.
  6. Um pipeline de CI/CD acionado na conta de serviço compartilhado cria e implanta o código na conta de teste usando AWS Code Pipeline.
  7. O pipeline de CI/CD cria e executa sagemaker-pipeline na conta de teste.
  8. Depois de correr sagemaker-pipeline na conta de teste, o pipeline de CI/CD cria um compartilhamento de recursos para sagemaker-pipeline na conta de teste.
  9. Um compartilhamento de recursos do teste sagemaker-pipeline com permissões somente leitura é criado com a conta dev, que aceita o compartilhamento de recursos.
  10. O cientista de dados agora é capaz de descrever e monitorar o status de execução do pipeline de teste usando chamadas de API do SageMaker da conta de desenvolvimento.
  11. Um compartilhamento de recursos do teste sagemaker-pipeline com permissões estendidas é criado com a conta de serviços compartilhados, que aceita o compartilhamento de recursos.
  12. O engenheiro de ML agora é capaz de descrever, monitorar e administrar a execução do pipeline de teste usando chamadas de API do SageMaker da conta de serviços compartilhados.

Nas seções a seguir, entraremos em mais detalhes e forneceremos uma demonstração sobre como configurar o compartilhamento entre contas para pipelines do SageMaker.

Como criar e compartilhar pipelines do SageMaker entre contas

Nesta seção, percorremos as etapas necessárias para criar e compartilhar pipelines entre contas usando AWS RAM e a API SageMaker.

Configure o ambiente

Primeiro, precisamos configurar um ambiente de várias contas para demonstrar o compartilhamento entre contas de pipelines do SageMaker:

  1. Configure duas contas AWS (desenvolvimento e teste). Você pode configurar isso como contas-membro de uma organização ou como contas independentes.
  2. Se estiver configurando suas contas como membro de uma organização, você poderá ativar compartilhamento de recursos com sua organização. Com essa configuração, quando você compartilha recursos na sua organização, o AWS RAM não envia convites aos principais. Os principais da sua organização obtêm acesso a recursos compartilhados sem trocar convites.
  3. Na conta de teste, inicie Estúdio Amazon SageMaker e execute o notebook treinar-registrar-implantar-modelo de pipeline. Isso cria um exemplo de pipeline na sua conta de teste. Para simplificar a demonstração, usamos o SageMaker Studio na conta de teste para iniciar o pipeline. Para projetos da vida real, você deve usar o Studio apenas na conta de desenvolvimento e iniciar o SageMaker Pipeline na conta de teste usando suas ferramentas de CI/CD.

Siga as instruções na próxima seção para compartilhar esse pipeline com a conta de desenvolvimento.

Configurar um compartilhamento de recursos de pipeline

Para compartilhar seu pipeline com a conta de desenvolvimento, siga estas etapas:

  1. No console do AWS RAM, escolha Criar compartilhamento de recursos.
  2. Escolha Selecione o tipo de recurso, escolha Pipelines SageMaker.
  3. Selecione o pipeline que você criou na etapa anterior.
  4. Escolha Próximo.
  5. Escolha Permissões, escolha suas permissões associadas.
  6. Escolha Próximo.
    Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Em seguida, você decide como deseja conceder acesso aos principais.
  7. Se você precisar compartilhar o pipeline apenas nas contas da sua organização, selecione Permitir compartilhamento apenas dentro da sua organização; caso contrário, selecione Permitir compartilhar com qualquer pessoa.
  8. Escolha Principais, escolha o tipo de entidade principal (você pode usar uma conta, organização ou unidade organizacional da AWS, com base no seu requisito de compartilhamento). Para esta postagem, compartilhamos com qualquer pessoa no nível de conta da AWS.
  9. Selecione seu ID principal.
  10. Escolha Próximo.
    Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  11. No Revise e crie página, verifique se suas informações estão corretas e escolha Criar compartilhamento de recursos.
    Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  12. Navegue até sua conta de destino (para esta postagem, sua conta de desenvolvedor).
  13. No console AWS RAM, em Compartilhou comigo no painel de navegação, escolha Compartilhamento de recursos.
  14. Escolha seu compartilhamento de recursos e escolha Aceitar compartilhamento de recursos.
    Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Permissões de compartilhamento de recursos

Ao criar seu compartilhamento de recursos, você pode escolher uma das duas políticas de permissão compatíveis para associar ao tipo de recurso de pipeline do SageMaker. Ambas as políticas concedem acesso a qualquer pipeline selecionado e a todas as suas execuções.

A AWSRAMDefaultPermissionSageMakerPipeline a política permite as seguintes ações somente leitura:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

A AWSRAMPermissionSageMakerPipelineAllowExecution inclui todas as permissões somente leitura da política padrão e também permite que contas compartilhadas iniciem, interrompam e tentem novamente execuções de pipeline.

A política estendida de permissão de execução de pipeline permite as seguintes ações:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

Acesse entidades de pipeline compartilhadas por meio de chamadas diretas de API

Nesta seção, explicamos como você pode usar várias chamadas de API do SageMaker Pipeline para obter visibilidade dos pipelines em execução em contas remotas que foram compartilhadas com você. Para testar as APIs no pipeline em execução na conta de teste da conta dev, faça login na conta dev e use AWS CloudShell.

Para chamadas de API do SageMaker Pipeline entre contas, você sempre precisa usar o ARN do pipeline como identificação do pipeline. Isso também inclui os comandos que exigem o nome do pipeline, onde você precisa usar o ARN do pipeline como o nome do pipeline.

Para obter o ARN do pipeline, na sua conta de teste, navegue até os detalhes do pipeline no Studio por meio de Recursos do SageMaker.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Escolha Dutos na sua lista de recursos.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Escolha seu pipeline e vá para ele Configurações aba. Você pode encontrar o ARN do pipeline com seu metadados Informação. Neste exemplo, seu ARN é definido como "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

ListaPipelineExecuções

Esta chamada de API lista as corridas do seu pipeline. Execute o seguinte comando, substituindo $SHARED_PIPELINE_ARN com o ARN do pipeline do CloudShell ou usando o Interface de linha de comando da AWS (AWS CLI) configurado com o apropriado Gerenciamento de acesso e identidade da AWS (IAM) papel:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

A resposta lista todas as execuções do seu pipeline com seus PipelineExecutionArn, StartTime, PipelineExecutionStatus e PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

DescreverPipeline

Esta chamada de API descreve o detalhe do seu pipeline. Execute o seguinte comando, substituindo $SHARED_PIPELINE_ARN com o ARN do seu pipeline:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

A resposta fornece os metadados do seu pipeline, bem como informações sobre sua criação e modificações:

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

DescreverPipelineExecution

Esta chamada de API descreve o detalhe da execução do seu pipeline. Execute o seguinte comando, substituindo $SHARED_PIPELINE_ARN com o ARN do seu pipeline:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

A resposta fornece detalhes sobre a execução do pipeline, incluindo o PipelineExecutionStatus, ExperimentName e TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

IniciarPipelineExecução

Esta chamada de API começa uma execução de pipeline. Execute o seguinte comando, substituindo $SHARED_PIPELINE_ARN com o ARN do seu pipeline e $CLIENT_REQUEST_TOKEN com um identificador exclusivo que diferencia maiúsculas de minúsculas gerado para esta execução. O identificador deve ter entre 32 e 128 caracteres. Por exemplo, você pode gerar uma string usando o Comando AWS CLI kms generate-random.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Como resposta, esta chamada de API retorna o PipelineExecutionArn da corrida iniciada:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

PararPipelineExecução

Esta chamada de API pára uma execução de pipeline. Execute o seguinte comando, substituindo $PIPELINE_EXECUTION_ARN com o ARN de execução do pipeline do seu pipeline em execução e $CLIENT_REQUEST_TOKEN com um identificador exclusivo que diferencia maiúsculas de minúsculas gerado para esta execução. O identificador deve ter entre 32 e 128 caracteres. Por exemplo, você pode gerar uma string usando o Comando AWS CLI kms generate-random.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Como resposta, esta chamada de API retorna o PipelineExecutionArn do pipeline parado:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

Conclusão

O compartilhamento entre contas de pipelines do SageMaker permite que você compartilhe entidades de pipeline com segurança entre contas da AWS e acesse pipelines compartilhados por meio de chamadas diretas de API, sem precisar fazer login e logout em várias contas.

Nesta postagem, nos aprofundamos na funcionalidade para mostrar como você pode compartilhar pipelines entre contas e acessá-los por meio de chamadas de API do SageMaker.

Na próxima etapa, você pode usar esse recurso em seu próximo projeto de ML.

Recursos

Para começar a usar o SageMaker Pipelines e compartilhar pipelines entre contas, consulte os seguintes recursos:


Sobre os autores

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Carneiro Vital é arquiteto de soluções especialista em ML na AWS. Ele tem mais de 20 anos de experiência em arquitetura e construção de aplicativos distribuídos, híbridos e em nuvem. Ele é apaixonado por criar soluções de IA/ML e big data seguras e escaláveis ​​para ajudar os clientes corporativos em sua jornada de adoção e otimização da nuvem para melhorar seus resultados de negócios. Em seu tempo livre, ele gosta de tênis, fotografia e filmes de ação.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Tanque Maira Ladeira é arquiteto de soluções especialista em ML na AWS. Com experiência em ciência de dados, ela tem 9 anos de experiência em arquitetura e construção de aplicativos de ML com clientes em todos os setores. Como líder técnica, ela ajuda os clientes a acelerar a conquista de valor comercial por meio de tecnologias emergentes e soluções inovadoras. Em seu tempo livre, Maira gosta de viajar e passar o tempo com sua família em algum lugar quente.

Use o compartilhamento de pipeline do Amazon SageMaker para visualizar ou gerenciar pipelines em contas da AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Gabriel Zylka é consultor de serviços profissionais na AWS. Ele trabalha em estreita colaboração com os clientes para acelerar a jornada de adoção da nuvem. Especializado no domínio MLOps, ele se concentra na produção de cargas de trabalho de aprendizado de máquina, automatizando ciclos de vida completos de aprendizado de máquina e ajudando a alcançar os resultados de negócios desejados. Nas horas vagas, ele gosta de viajar e fazer caminhadas nos Alpes da Baviera.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS