Os clientes da AWS contam com a infraestrutura como código (IaC) para projetar, desenvolver e gerenciar sua infraestrutura de nuvem. A IaC garante que a infraestrutura e os serviços do cliente sejam consistentes, escaláveis e reproduzíveis, além de poder seguir as melhores práticas na área de operações de desenvolvimento (DevOps).
Uma abordagem possível para gerenciar a infraestrutura e os serviços da AWS com IaC é Terraform, que permite que os desenvolvedores organizem sua infraestrutura em módulos de código reutilizáveis. Esse aspecto está ganhando cada vez mais importância na área de aprendizado de máquina (ML). Desenvolver e gerenciar pipelines de ML, incluindo treinamento e inferência com o Terraform como IaC, permite dimensionar facilmente para vários casos de uso de ML ou regiões sem precisar desenvolver a infraestrutura do zero. Além disso, fornece consistência para a infraestrutura (por exemplo, tipo e tamanho da instância) para treinamento e inferência em diferentes implementações do pipeline de ML. Isso permite rotear solicitações e tráfego de entrada para diferentes Amazon Sage Maker pontos finais.
Nesta postagem, mostramos como implantar e gerenciar pipelines de ML usando o Terraform e o Amazon SageMaker.
Visão geral da solução
Esta postagem fornece o código e orienta você pelas etapas necessárias para implantar a infraestrutura da AWS para pipelines de ML com o Terraform para treinamento e inferência de modelos usando o Amazon SageMaker. O pipeline de ML é gerenciado por meio de Funções de etapa da AWS para orquestrar as diferentes etapas implementadas no pipeline de ML, conforme ilustrado na figura a seguir.
O Step Functions inicia um AWS Lambda função, gerando um ID de trabalho exclusivo, que é usado ao iniciar um trabalho de treinamento do SageMaker. O Step Functions também cria um modelo, configuração de terminal e terminal usado para inferência. Os recursos adicionais incluem o seguinte:
- Gerenciamento de acesso e identidade da AWS (IAM) funções e políticas anexadas aos recursos para permitir a interação com outros recursos
- Serviço de armazenamento simples da Amazon (Amazon S3) buckets para dados de treinamento e saída do modelo
- An Registro do Amazon Elastic Container (Amazon ECR) repositório para o Estivador imagem contendo a lógica de treinamento e inferência
O código relacionado a ML para treinamento e inferência com uma imagem do Docker depende principalmente do trabalho existente no seguinte Repositório GitHub.
O diagrama a seguir ilustra a arquitetura da solução:
Orientamos você pelas seguintes etapas de alto nível:
- Implante sua infraestrutura da AWS com o Terraform.
- Envie sua imagem do Docker para o Amazon ECR.
- Execute o pipeline de ML.
- Invoque seu ponto de extremidade.
Estrutura do repositório
Você pode encontrar o repositório contendo o código e os dados usados para esta postagem no seguinte Repositório GitHub.
O repositório inclui os seguintes diretórios:
/terraform
– Consiste nas seguintes subpastas:./infrastructure
– Contém o arquivo main.tf chamando o módulo de pipeline de ML, além das declarações de variáveis que usamos para implantar a infraestrutura./ml-pipeline-module
– Contém o módulo de pipeline do Terraform ML, que podemos reutilizar
/src
– Consiste nas seguintes subpastas:./container
– Contém código de exemplo para treinamento e inferência com as definições da imagem do Docker./lambda_function
– Contém o código Python para as configurações de geração da função Lambda, como um ID de trabalho exclusivo para o trabalho de treinamento do SageMaker
/data
– Contém o seguinte arquivo:./iris.csv
– Contém dados para treinar o modelo de ML
Pré-requisitos
Para este passo a passo, você deve ter os seguintes pré-requisitos:
- Uma conta da AWS
- Terraform versão 0.13.5 ou superior
- Interface de linha de comando da AWS (AWS CLI) v2
- Python 3.7 ou superior
- Estivador
Implante sua infraestrutura da AWS com o Terraform
Para implantar o pipeline de ML, você precisa ajustar algumas variáveis e nomes de acordo com suas necessidades. O código desta etapa está no /terraform
diretório.
Ao inicializar pela primeira vez, abra o arquivo terraform/infrastructure/terraform.tfvars
e ajuste a variável Nome do Projeto ao nome do seu projeto, além da variável região se você deseja implantar em outra região. Você também pode alterar variáveis adicionais, como tipos de instância para treinamento e inferência.
Em seguida, use os seguintes comandos para implantar a infraestrutura com o Terraform:
Verifique a saída e certifique-se de que os recursos planejados apareçam corretamente e confirme com sim no estágio de aplicação se tudo está correto. Em seguida, acesse o console do Amazon ECR (ou verifique a saída do Terraform no terminal) e obtenha a URL do seu repositório ECR que você criou por meio do Terraform.
A saída deve ser semelhante à saída exibida a seguir, incluindo a URL do repositório ECR:
Envie sua imagem do Docker para o Amazon ECR
Para que o pipeline de ML e o SageMaker treinem e provisionem um endpoint do SageMaker para inferência, você precisa fornecer uma imagem do Docker e armazená-la no Amazon ECR. Você pode encontrar um exemplo no diretório src/container
. Se você já aplicou a infraestrutura da AWS da etapa anterior, pode enviar a imagem do Docker conforme descrito. Depois que sua imagem do Docker for desenvolvida, você pode executar as seguintes ações e enviá-la para o Amazon ECR (ajuste o URL do Amazon ECR de acordo com suas necessidades):
Se você já aplicou a infraestrutura da AWS com o Terraform, você pode enviar as alterações do seu código e imagem do Docker diretamente para o Amazon ECR sem implantar novamente via Terraform.
Execute o pipeline de ML
Para treinar e executar o pipeline de ML, acesse o console do Step Functions e inicie a implementação. Você pode verificar o andamento de cada etapa na visualização da máquina de estado. Você também pode verificar o progresso do trabalho de treinamento do SageMaker e o status do seu endpoint do SageMaker.
Depois de executar com êxito a máquina de estado no Step Functions, você pode ver que o ponto de extremidade do SageMaker foi criado. No console do SageMaker, escolha Inferência no painel de navegação e, em seguida, Pontos finais. Certifique-se de aguardar o status mudar para InService.
Invoque seu endpoint
Para invocar seu endpoint (neste exemplo, para o conjunto de dados iris), você pode usar o seguinte script Python com o SDK da AWS para Python (Boto3). Você pode fazer isso em um notebook SageMaker ou incorporar o seguinte trecho de código em uma função do Lambda:
limpar
Você pode destruir a infraestrutura criada pelo Terraform com o comando terraform destroy, mas primeiro é necessário excluir os dados e os arquivos nos buckets do S3. Além disso, o endpoint do SageMaker (ou vários endpoints do SageMaker, se executados várias vezes) é criado por meio do Step Functions e não gerenciado pelo Terraform. Isso significa que a implantação acontece ao executar o pipeline de ML com o Step Functions. Portanto, certifique-se de excluir o endpoint ou os endpoints do SageMaker criados por meio do pipeline do Step Functions ML para evitar custos desnecessários. Conclua as seguintes etapas:
- No console do Amazon S3, exclua o conjunto de dados no bucket de treinamento do S3.
- Exclua todos os modelos que você treinou por meio do pipeline de ML no bucket de modelos do S3, seja por meio do console do Amazon S3 ou da AWS CLI.
- Destrua a infraestrutura criada via Terraform:
- Exclua os endpoints do SageMaker, a configuração do endpoint e os modelos criados por meio do Step Functions, no console do SageMaker ou por meio da AWS CLI.
Conclusão
Parabéns! Você implantou um pipeline de ML usando o SageMaker com Terraform. Este exemplo de solução mostra como você pode implantar facilmente a infraestrutura e os serviços da AWS para pipelines de ML de maneira reutilizável. Isso permite dimensionar para vários casos de uso ou regiões e permite treinar e implantar modelos de ML com um clique de maneira consistente. Além disso, você pode executar o pipeline de ML várias vezes, por exemplo, quando novos dados estiverem disponíveis ou você quiser alterar o código do algoritmo. Você também pode optar por rotear solicitações ou tráfego para diferentes pontos de extremidade do SageMaker.
Incentivo você a explorar a adição de recursos de segurança e a adoção de práticas recomendadas de segurança de acordo com suas necessidades e padrões potenciais da empresa. Além disso, incorporar essa solução em seus pipelines de CI/CD fornecerá mais recursos para adotar e estabelecer as melhores práticas e padrões de DevOps de acordo com seus requisitos.
Sobre o autor
Oliver Zollikofer é Cientista de Dados na Amazon Web Services. Ele permite que clientes corporativos globais criem, treinem e implantem modelos de aprendizado de máquina, bem como gerenciem o ciclo de vida do modelo de ML com MLOps. Além disso, ele cria e arquiteta soluções de nuvem relacionadas.
- Coinsmart. A melhor troca de Bitcoin e criptografia da Europa.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. ACESSO LIVRE.
- CryptoHawk. Radar Altcoin. Teste grátis.
- Fonte: https://aws.amazon.com/blogs/machine-learning/deploy-and-manage-machine-learning-pipelines-with-terraform-using-amazon-sagemaker/
- "
- 100
- 7
- Acesso
- Segundo
- em
- ações
- Adição
- Adicional
- algoritmo
- Todos os Produtos
- já
- Amazon
- Amazon Web Services
- Outro
- abordagem
- arquitetura
- ÁREA
- disponível
- AWS
- ser
- MELHOR
- melhores práticas
- corpo
- fronteira
- construir
- Constrói
- capacidades
- casos
- CD
- alterar
- Escolha
- Na nuvem
- infraestrutura de nuvem
- código
- Empresa
- Configuração
- cônsul
- Recipiente
- contém
- custos
- criado
- cria
- cliente
- Clientes
- dados,
- cientista de dados
- implantar
- implantado
- Implantação
- desenvolvimento
- descrito
- Design
- destruir
- destruído
- desenvolver
- desenvolvido
- desenvolvedores
- em desenvolvimento
- Desenvolvimento
- diferente
- diretamente
- Estivador
- facilmente
- permitir
- encorajar
- Ponto final
- Empreendimento
- tudo
- exemplo
- existente
- explorar
- Moda
- Funcionalidades
- Figura
- Primeiro nome
- primeira vez
- seguir
- seguinte
- função
- mais distante
- gerando
- Global
- ter
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- Dados de identificação:
- imagem
- implementação
- implementado
- importância
- incluir
- inclui
- Incluindo
- cada vez mais
- Infraestrutura
- entrada
- interação
- IT
- Trabalho
- mais recente
- aprendizagem
- Line
- máquina
- aprendizado de máquina
- gerencia
- gerenciados
- gestão
- ML
- modelo
- modelos
- múltiplo
- nomes
- Navegação
- necessário
- caderno
- aberto
- Operações
- ordem
- Outros
- políticas
- possível
- potencial
- projeto
- fornecer
- fornece
- repositório
- solicitar
- pedidos
- Requisitos
- Recursos
- resposta
- Rota
- Execute
- corrida
- escalável
- Escala
- Cientista
- Sdk
- segurança
- Serviços
- semelhante
- simples
- Tamanho
- sólido
- solução
- Soluções
- Etapa
- padrões
- começo
- começa
- Estado
- Status
- armazenamento
- loja
- entraram com sucesso
- terminal
- assim sendo
- Através da
- tempo
- tráfego
- Training
- único
- usar
- visualização
- esperar
- web
- serviços web
- enquanto
- sem
- Atividades: