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á.
Simplifique os fluxos de trabalho de aprendizado de máquina, do desenvolvimento local aos experimentos escaláveis, usando SageMaker IA e Hydra
David Sauerwein, Marco Geiger e Julian Ferdinand Grueber, Amazon Web Services
Resumo
Esse padrão fornece uma abordagem unificada para configurar e executar algoritmos de aprendizado de máquina (ML), desde o teste local até a produção na Amazon SageMaker AI. Os algoritmos de ML são o foco deste padrão, mas sua abordagem se estende à engenharia de atributos, inferência e pipelines completos de ML. Esse padrão demonstra a transição do desenvolvimento de scripts locais para trabalhos de treinamento de SageMaker IA por meio de um exemplo de caso de uso.
Um fluxo de trabalho típico de ML consiste em desenvolver e testar soluções em uma máquina local, realizar experimentos em grande escala (por exemplo, com diferentes parâmetros) na nuvem e implantar a solução aprovada na nuvem. Após isso, a solução implantada precisa ser monitorada e mantida. Sem uma abordagem unificada para esse fluxo de trabalho, os desenvolvedores frequentemente precisam refatorar o código em cada etapa. Se a solução depender de um grande número de parâmetros que podem mudar em qualquer etapa desse fluxo de trabalho, pode se tornar cada vez mais complexo manter a organização e a consistência.
Este padrão aborda esses desafios. Primeiro, ele elimina a necessidade de refatoração de código entre ambientes, fornecendo um fluxo de trabalho unificado que permanece consistente, seja em execução em máquinas locais, em contêineres ou em IA. SageMaker Segundo, o padrão simplifica o gerenciamento de parâmetros por meio do sistema de configuração do Hydra, em que os parâmetros são definidos em arquivos de configuração separados, que podem ser facilmente modificados e combinados, com o registro em log automático da configuração de cada execução. Para obter mais detalhes sobre como este padrão aborda esses desafios, consulte a seção de Informações adicionais.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS
Uma função de usuário AWS Identity and Access Management (IAM) para implantar e iniciar os trabalhos de treinamento de SageMaker IA
AWS Command Line Interface (AWS CLI) versão 2.0 ou posterior instalada e configurada
Poetry
versão 1.8 ou versões posteriores, mas anterior à 2.0, instalada Docker
instalado Python versão 3.10.x
Limitações
Atualmente, o código visa apenas trabalhos de treinamento de SageMaker IA. Estendê-lo para trabalhos de processamento e pipelines completos de SageMaker IA é simples.
Para uma configuração de SageMaker IA totalmente produtiva, detalhes adicionais precisam estar em vigor. Os exemplos podem ser chaves personalizadas AWS Key Management Service (AWS KMS) para computação e armazenamento ou configurações de rede. Além disso, é possível configurar essas opções adicionais usando o Hydra em uma subpasta específica dentro da pasta
config.Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
O diagrama a seguir representa a arquitetura da solução.

O diagrama mostra o seguinte fluxo de trabalho:
O cientista de dados pode iterar o algoritmo em pequena escala em um ambiente local, ajustar parâmetros e testar o script de treinamento rapidamente sem a necessidade de Docker ou SageMaker IA. (Para obter mais detalhes, consulte a tarefa “Realize a execução localmente para testes rápidos” na seção Épicos.)
Quando estiver satisfeito com o algoritmo, o cientista de dados desenvolve e envia por push a imagem do Docker para o repositório do Amazon Elastic Container Registry (Amazon ECR) chamado
hydra-sm-artifact. (Para obter mais detalhes, consulte “Executar fluxos de trabalho em SageMaker IA” em Epics.)O cientista de dados inicia trabalhos de treinamento de SageMaker IA ou de otimização de hiperparâmetros (HPO) usando scripts Python. Para as tarefas de treinamento regulares, a configuração ajustada é gravada no bucket do Amazon Simple Storage Service (Amazon S3) chamado
hydra-sample-config. Para as tarefas de HPO, a configuração padrão localizada na pastaconfigé aplicada.O trabalho de treinamento de SageMaker IA extrai a imagem do Docker, lê os dados de entrada do
hydra-sample-databucket do Amazon S3 e busca a configuração do bucket do Amazon S3 ou usa a configuração padrãohydra-sample-config. Após o treinamento, a tarefa salva os dados de saída no bucket do Amazon S3 chamadohydra-sample-data.
Automação e escala
Para treinamento, reciclagem ou inferência automatizados, você pode integrar o AWS CLI código a serviços como AWS LambdaAWS CodePipeline, ou Amazon. EventBridge
A escalabilidade pode ser alcançada alterando as configurações de tamanhos de instância ou adicionando configurações para treinamento distribuído.
Ferramentas
Serviços da AWS
AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando. Para esse padrão, o AWS CLI é útil tanto para configuração inicial de recursos quanto para testes.
O Amazon Elastic Container Registry (Amazon ECR) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
O Amazon SageMaker AI é um serviço gerenciado de aprendizado de máquina (ML) que ajuda você a criar e treinar modelos de ML e depois implantá-los em um ambiente hospedado pronto para produção. SageMaker O treinamento de IA é um serviço de ML totalmente gerenciado dentro da SageMaker IA que permite o treinamento de modelos de ML em grande escala. A ferramenta pode lidar com as demandas computacionais de modelos de treinamento de forma eficiente, fazendo uso da escalabilidade integrada e da integração com outros. Serviços da AWS SageMaker O treinamento de IA também oferece suporte a algoritmos e contêineres personalizados, tornando-o flexível para uma ampla variedade de fluxos de trabalho de ML.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
Outras ferramentas
O Docker
é um conjunto de produtos de plataforma como serviço (PaaS) que usam a virtualização no nível do sistema operacional para fornecer software em contêineres. Foi usado neste padrão para garantir ambientes consistentes em várias etapas, desde o desenvolvimento até a implantação, e para empacotar dependências e código com confiabilidade. A containerização proporcionada pelo Docker possibilitou uma escalabilidade simples e um controle de versão em todo o fluxo de trabalho. O Hydra
é uma ferramenta de gerenciamento de configurações que proporciona flexibilidade no manuseio de diversas configurações e no gerenciamento dinâmico de recursos. Ela é fundamental no gerenciamento de configurações de ambiente, permitindo a implantação sem interrupções em diferentes ambientes. Para obter mais detalhes sobre o Hydra, consulte Informações adicionais. Python
é uma linguagem de programação de computador de uso geral. O Python foi usado para gravar o código de ML e o fluxo de trabalho de implantação. O Poetry
é uma ferramenta para gerenciamento de dependências e empacotamento em Python.
Repositório de código
O código desse padrão está disponível no repositório GitHub configuring-sagemaker-training-jobs-with-hydra
Práticas recomendadas
Escolha uma função do IAM para implantar e iniciar os trabalhos de treinamento de SageMaker IA que siga o princípio do menor privilégio e conceda as permissões mínimas necessárias para realizar uma tarefa. Para obter mais informações, consulte Concessão de privilégio mínimo e nas melhores práticas de segurança na documentação do IAM.
Use credenciais temporárias para acessar o perfil do IAM no terminal.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie e ative o ambiente virtual. | Para criar e ativar o ambiente virtual, execute os seguintes comandos na raiz do repositório:
| AWS geral |
Implantar a infraestrutura. | Para implantar a infraestrutura usando CloudFormation, execute o seguinte comando:
| AWS geral, DevOps engenheiro |
Faça o download dos dados de amostra. | Para fazer o download dos dados de entrada do openml
| AWS geral |
Realize a execução localmente para testes rápidos. | Para executar o código de treinamento localmente para fins de teste, use o seguinte comando:
Os logs de todas as execuções são armazenados e organizados pelo horário de execução em uma pasta chamada Além disso, é possível executar vários treinamentos simultaneamente, cada um com parâmetros distintos, por meio da funcionalidade | Cientista de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Defina as variáveis de ambiente. | Para executar seu trabalho na SageMaker IA, defina as seguintes variáveis de ambiente, fornecendo sua Região da AWS e sua Conta da AWS ID:
| AWS geral |
Crie e envie por push a imagem do Docker. | Para criar a imagem do Docker e enviá-la por push para o repositório do Amazon ECR, execute o seguinte comando:
Esta tarefa assume que há credenciais válidas configuradas no seu ambiente. A imagem do Docker é enviada para o repositório Amazon ECR especificado na variável de ambiente na tarefa anterior e é usada para ativar o contêiner de SageMaker IA no qual o trabalho de treinamento será executado. | Engenheiro de ML e usuário geral da AWS |
Copie os dados de entrada para o Amazon S3. | O trabalho de treinamento de SageMaker IA precisa coletar os dados de entrada. Para copiar os dados de entrada para o bucket do Amazon S3 destinado aos dados, execute o seguinte comando:
| Engenheiro de dados e usuário geral da AWS |
Envie vagas de treinamento em SageMaker IA. | Para simplificar a execução dos scripts, especifique os parâmetros de configuração padrão no arquivo
| Usuário geral da AWS, engenheiro de ML e cientista de dados |
Execute o ajuste de hiperparâmetros de SageMaker IA. | Executar o ajuste de hiperparâmetros de SageMaker IA é semelhante ao envio de um trabalho de treinamento de SageMaker AII. No entanto, o script de execução difere em alguns pontos importantes, como você pode conferir no arquivo start_sagemaker_hpo_job.py Para iniciar a tarefa de otimização de hiperparâmetros (HPO), execute os seguintes comandos:
| Cientista de dados |
Solução de problemas
| Problema | Solução |
|---|---|
Token expirado | Exporte novas AWS credenciais. |
Permissões do IAM insuficientes | Certifique-se de exportar as credenciais de uma função do IAM que tenha todas as permissões necessárias do IAM para implantar o CloudFormation modelo e iniciar os trabalhos de treinamento de SageMaker IA. |
Recursos relacionados
Treine um modelo com a Amazon SageMaker AI (AWS documentação)
Mais informações
Este padrão aborda os seguintes desafios:
Consistência do desenvolvimento local à implantação em grande escala — Com esse padrão, os desenvolvedores podem usar o mesmo fluxo de trabalho, independentemente de estarem usando scripts Python locais, executando contêineres Docker locais, conduzindo grandes experimentos SageMaker em IA ou implantando em produção em IA. SageMaker Essa consistência é importante pelos seguintes motivos:
Iteração mais ágil: permite experimentações rápidas e locais sem a necessidade de grandes ajustes ao aumentar a escala verticalmente.
Sem refatoração — A transição para experimentos maiores em SageMaker IA é perfeita, não exigindo nenhuma revisão da configuração existente.
Melhoria contínua: desenvolver novos recursos e aprimorar continuamente o algoritmo é simples, pois o código permanece o mesmo em todos os ambientes.
Gerenciamento de configuração: este padrão usa o Hydra
Os parâmetros são definidos em arquivos de configuração, separados do código.
Diferentes conjuntos de parâmetros podem ser trocados ou combinados com facilidade.
O acompanhamento dos experimentos é simplificado, pois a configuração de cada execução é registrada em log automaticamente.
Experimentos na nuvem podem usar a mesma estrutura de configuração que as execuções locais, garantindo consistência.
Com o Hydra, é possível gerenciar a configuração de forma eficiente, possibilitando os seguintes recursos:
Fragmentar as configurações: separe as configurações do projeto em blocos menores e administráveis, passíveis de alterações independentes. Essa abordagem facilita o gerenciamento de projetos complexos.
Ajustar padrões com facilidade: altere rapidamente as configurações de linha de base, simplificando o teste de novas ideias.
Alinhar entradas da CLI e arquivos de configuração: combine de forma integrada as entradas da linha de comando com seus arquivos de configuração. Essa abordagem reduz a desordem e a confusão, tornando o projeto mais fácil de gerenciar ao longo do tempo.