Treinar modelos de machine learning - Amazon SageMaker

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á.

Treinar modelos de machine learning

O estágio de treinamento do ciclo de vida completo de machine learning (ML) abrange desde o acesso ao conjunto de dados de treinamento até a geração de um modelo final e a seleção do modelo com melhor desempenho para implantação. As seções a seguir fornecem uma visão geral dos recursos e recursos de SageMaker treinamento disponíveis, com informações técnicas detalhadas sobre cada um.

O fluxo de trabalho de treinamento mais simples em SageMaker

Se você estiver usando SageMaker pela primeira vez e quiser encontrar uma solução rápida de ML para treinar um modelo em seu conjunto de dados, considere usar uma solução sem código ou com pouco código, como o SageMaker Canvas, JumpStartno SageMaker Studio Classic ou no Autopilot. SageMaker

Para experiências de codificação intermediárias, considere usar um notebook SageMaker Studio Classic ou instâncias de SageMaker notebook. Para começar, siga as instruções no guia Etapa 4: Treinar um modelo de SageMaker introdução. Recomendamos isso para casos de uso nos quais você cria seu próprio modelo e script de treinamento usando um framework de machine learning.

O diagrama de arquitetura a seguir mostra como SageMaker gerencia trabalhos de treinamento de ML e provisiona instâncias do Amazon EC2 em nome dos SageMaker usuários. Você, como SageMaker usuário, pode trazer seu próprio conjunto de dados de treinamento, salvando-o no Amazon S3. Você pode escolher um modelo de treinamento de ML a partir dos algoritmos SageMaker integrados disponíveis ou trazer seu próprio script de treinamento com um modelo criado com estruturas populares de aprendizado de máquina.

Visão completa do fluxo de trabalho e dos recursos do SageMaker treinamento

A jornada completa do treinamento de machine learning envolve tarefas além da ingestão de dados para modelos de machine learning, incluindo o treinamento de modelos em instâncias de computação e a obtenção de artefatos e saídas do modelo. Você precisa avaliar cada fase antes, durante e após o treinamento para garantir que seu modelo seja treinado adequadamente para atingir a precisão desejada para seus objetivos.

O fluxograma a seguir mostra uma visão geral de alto nível de suas ações (em caixas azuis) e dos recursos de SageMaker treinamento disponíveis (em caixas azuis claras) durante toda a fase de treinamento do ciclo de vida do ML.

Antes do treinamento, você deve preparar seus dados, escolher um algoritmo ou estrutura, gerenciar o armazenamento de dados e configurar o acesso aos dados de treinamento. Opcionalmente, você pode usar arquivos de manifesto aumentados para inserir seus dados e analisá-los em busca de predisposição. Durante o treinamento, você deve configurar a infraestrutura e avaliar seu modelo. Opcionalmente, você pode configurar o treinamento distribuído para executar trabalhos paralelos e usar SageMaker Experimentos para gerenciar seus testes de ML. Após a avaliação do modelo, você pode usar o ajuste SageMaker automático do modelo para otimizar o desempenho do modelo. Para trabalhos de aprendizado profundo, talvez você queira considerar o uso do Amazon SageMaker Debugger and SageMaker Training Compiler para otimizar seus trabalhos. Após o treinamento, você deve primeiro obter o modelo básico. Em seguida, você pode analisar as métricas emitidas pelo modelo e usar as CloudWatch métricas para definir alertas. Depois de obter as previsões do seu modelo, você também pode usar o Amazon SageMaker Clarify para analisar seu modelo e seus dados em busca de viés e explicabilidade.

As seções a seguir explicam cada fase do treinamento descrita no fluxograma anterior e os recursos úteis oferecidos SageMaker nos três subestágios do treinamento de ML.

Antes do treinamento

Há vários cenários de configuração de recursos de dados e acesso que você precisa considerar antes do treinamento. Consulte o diagrama a seguir e os detalhes de cada estágio antes do treinamento para ter uma ideia das decisões que você precisa tomar.

Um fluxograma mostrando as tarefas antes do treinamento e os SageMaker recursos associados

Durante o treinamento

Durante o treinamento, você precisa melhorar continuamente a estabilidade, a velocidade e a eficiência do treinamento e, ao mesmo tempo, escalar os recursos de computação, a otimização de custos e, o mais importante, a performance do modelo. Continue lendo para obter mais informações sobre os estágios de treinamento e os recursos de SageMaker treinamento relevantes.

Um fluxograma mostrando as tarefas durante o treinamento e os SageMaker recursos associados
  • Configure a infraestrutura: escolha o tipo de instância e as ferramentas de gerenciamento de infraestrutura corretos para seu caso de uso. Você pode começar com uma pequena instância e aumentar a escala de acordo com sua workload. Para treinar um modelo em um conjunto de dados tabular, comece com a menor instância de CPU das famílias de instâncias C4 ou C5. Para treinar um modelo grande para visão computacional ou processamento de linguagem natural, comece com a menor instância de GPU das famílias de instâncias P2, P3, G4dn ou G5. Você também pode misturar diferentes tipos de instância em um cluster ou manter as instâncias em pools aquecidos usando as seguintes ferramentas de gerenciamento de instâncias oferecidas pela SageMaker. Você também pode usar o cache persistente para reduzir a latência e o tempo faturável em tarefas de treinamento iterativo, em vez da redução da latência apenas de grupos de aquecimento. Para saber mais, consulte os tópicos a seguir.

    Você deve ter cota suficiente para executar um trabalho de treinamento. Se você executar seu trabalho de treinamento em uma instância em que não tem cota suficiente, receberá um erro ResourceLimitExceeded. Para verificar as cotas atualmente disponíveis em sua conta, use o console do Service Quotas. Para saber como solicitar um aumento de cota, consulte Regiões e Cotas suportadas. Além disso, para encontrar informações sobre preços e tipos de instância disponíveis, dependendo do Regiões da AWS, consulte as tabelas na página de SageMaker preços da Amazon.

  • Execute um trabalho de treinamento a partir de um código local: você pode anotar seu código local com um decorador remoto para executá-lo como um trabalho de SageMaker treinamento de dentro do Amazon SageMaker Studio Classic, de um SageMaker notebook da Amazon ou de seu ambiente de desenvolvimento integrado local. Para ter mais informações, consulte Execute seu código local como um trabalho SageMaker de treinamento.

  • Monitore trabalhos de treinamento: monitore e acompanhe seus trabalhos de treinamento usando SageMaker Experiments, SageMaker Debugger ou Amazon. CloudWatch Você pode observar o desempenho do modelo em termos de precisão e convergência e executar análises comparativas de métricas entre vários trabalhos de treinamento usando SageMaker Experiments. Você pode observar a taxa de utilização dos recursos computacionais usando as ferramentas de criação de perfil do SageMaker Debugger ou a Amazon. CloudWatch Para saber mais, consulte os tópicos a seguir.

    Além disso, para tarefas de aprendizado profundo, use as ferramentas de depuração de modelos do Amazon SageMaker Debugger e as regras incorporadas para identificar problemas mais complexos nos processos de convergência de modelos e atualização de peso.

  • Treinamento distribuído: se seu trabalho de treinamento estiver em um estágio estável sem interrupções devido à configuração incorreta da infraestrutura de treinamento ou a out-of-memory problemas, talvez você queira encontrar mais opções para escalar seu trabalho e executá-lo por um longo período de dias e até meses. Quando você estiver pronto para expandir, considere o treinamento distribuído. SageMaker fornece várias opções para computação distribuída, desde cargas de trabalho leves de ML até cargas de trabalho pesadas de aprendizado profundo.

    Para tarefas de aprendizado profundo que envolvam o treinamento de modelos muito grandes em conjuntos de dados muito grandes, considere usar uma das estratégias de treinamento SageMaker distribuídas para ampliar e alcançar o paralelismo de dados, o paralelismo de modelos ou uma combinação dos dois. Você também pode usar o SageMaker Training Compiler para compilar e otimizar gráficos de modelos em instâncias de GPU. Esses SageMaker recursos oferecem suporte a estruturas de aprendizado profundo PyTorch, como TensorFlow, e Hugging Face Transformers.

  • Ajuste de hiperparâmetros do modelo: ajuste os hiperparâmetros do seu modelo usando o ajuste automático do modelo com. SageMaker SageMaker fornece métodos de ajuste de hiperparâmetros, como pesquisa em grade e pesquisa bayesiana, iniciando trabalhos de ajuste de hiperparâmetros paralelos com funcionalidade de interrupção antecipada para trabalhos de ajuste de hiperparâmetros que não melhoram.

  • Verificação e economia de custos com instâncias spot: se o tempo de treinamento não for uma grande preocupação, considere otimizar os custos de treinamento de Modelos com instâncias spot gerenciadas. Observe que você deve ativar o ponto de verificação para o treinamento Spot para continuar restaurando após pausas intermitentes no trabalho devido à substituição de instâncias do Spot. Você também pode usar a funcionalidade de ponto de verificação para fazer backup de seus modelos em caso de término inesperado do trabalho de treinamento. Para saber mais, consulte os tópicos a seguir.

Após o treinamento

Após o treinamento, você obtém um artefato do modelo final para usar na implantação e inferência do modelo. Há ações adicionais envolvidas na fase de pós-treinamento, conforme mostrado no diagrama a seguir.

Um fluxograma mostrando as tarefas após o treinamento e os SageMaker recursos associados
  • Obter modelo de linha de base: depois de ter o artefato do modelo, você pode defini-lo como um modelo de linha de base. Considere as seguintes ações de pós-treinamento e o uso de SageMaker recursos antes de passar para a implantação do modelo na produção.

  • Examine o desempenho do modelo e verifique o viés: use o Amazon CloudWatch Metrics e o SageMaker Clarify para detectar qualquer viés pós-treinamento para detectar qualquer viés nos dados recebidos e modelar ao longo do tempo em relação à linha de base. Você precisa avaliar seus novos dados e modelar as previsões em relação aos novos dados regularmente ou em tempo real. Usando esses recursos, você pode receber alertas sobre quaisquer alterações ou anomalias agudas, bem como alterações ou oscilações graduais nos dados e no modelo.

  • Você também pode usar a funcionalidade de treinamento incremental do SageMaker para carregar e atualizar seu modelo (ou ajustá-lo) com um conjunto de dados expandido.

  • Você pode registrar o treinamento de modelos como uma etapa do seu SageMakerpipeline ou como parte de outros recursos de fluxo de trabalho oferecidos pelo SageMaker para orquestrar todo o ciclo de vida do ML.