Treinamento com o Amazon SageMaker

O Amazon SageMaker facilita o treinamento de modelos de machine learning (ML), fornecendo tudo o que você precisa para ajustar e depurar modelos e executar experimentos de treinamento.

Recursos

Gerenciamento e rastreamento de experiências

Machine learning é um processo iterativo baseado em experimentação contínua, por exemplo, tentando novos algoritmos de aprendizado ou aprimorando os hiperparâmetros do algoritmo, observando o impacto de tais alterações incrementais no desempenho e na precisão do modelo. Com o tempo, essa explosão de dados torna mais difícil rastrear os melhores modelos, observações e lições aprendidas durante a experimentação e também os ingredientes e receitas exatos que foram usados na criação desses modelos.

O Amazon SageMaker Experiments ajuda a rastrear, avaliar e organizar experimentos de treinamento de maneira fácil e escalável. O SageMaker Experiments vem junto com o Amazon SageMaker Studio bem como um SDK de Python com integrações profundas do Jupyter.

Com o Amazon SageMaker Experiments, você pode organizar milhares de experimentos de treinamento, registrar artefatos de experimentos, como conjuntos de dados, hiperparâmetros e métricas, e reproduzir experimentos. Como o SageMaker Experiments integra-se ao SageMaker Studio, você pode visualizar modelos e avaliar rápida e facilmente os melhores modelos. Você também pode registrar e manter um registro contínuo de anotações e comentários à medida que as experiências progridem e clicar e compartilhar com facilidade as experiências entre os membros da equipe. O SageMaker Experiments também preserva toda a linhagem dos experimentos; portanto, se um modelo começar a se desviar do resultado pretendido, você poderá voltar no tempo e inspecionar seus artefatos.

Experiments

Analise e depure com informações completas

É um desafio obter uma visão completa e visibilidade do processo de treinamento da ML. Não há uma maneira fácil de garantir que seu modelo esteja aprendendo progressivamente os valores corretos para seus parâmetros. Por exemplo, ao treinar um modelo de visão computacional usando uma rede neural convolucional, pode ser necessário executar o trabalho de treinamento por horas. Durante esse período, não há visibilidade de como os diferentes parâmetros do modelo de ML estão afetando o treinamento do modelo e se o processo de treinamento está produzindo os resultados desejados.

O Amazon SageMaker Debugger fornece visibilidade total do processo de treinamento. O SageMaker Debugger facilita a inspeção, fornecendo uma interface visual para os desenvolvedores analisarem os dados de depuração e também fornecendo indicadores visuais sobre possíveis anomalias no processo de treinamento.

O SageMaker Debugger detecta e alerta automaticamente para erros comuns, como valores desiguais ficando muito grandes ou muito pequenos. Você também pode usar o SDK do Debugger para detectar automaticamente novas classes de erros específicos de modelos ou analisar interativamente as execuções de treinamento em um SageMaker Notebook. Como resultado, o esforço de depuração para modelos de machine learning pode ser reduzido de dias para minutos. Os dados coletados pelo SageMaker Debugger permanecem em sua própria conta, permitindo o uso para os aplicativos mais confidenciais.

O SageMaker Debugger produz métricas de desempenho em tempo real dos seus modelos. Isso inclui perda de treinamento e validação (que representa o erro do modelo e deve ser o mais baixo possível), matrizes de confusão (para modelos de classificação, isso representa previsões falsas positivas e negativas e como elas mudam durante o treinamento) e gradientes de aprendizado ( a revisão das curvas de aprendizado dos modelos durante o treinamento é usada para diagnosticar problemas com o aprendizado, como um modelo de underfit ou overfit, bem como se os conjuntos de dados de treinamento e validação são adequadamente representativos). Essas métricas podem ser exibidas e visualizadas em notebooks no Amazon SageMaker Studio.

O SageMaker Debugger também poderá fornecer avisos e conselhos de correção quando problemas comuns de treinamento são detectados. Por exemplo, se seu modelo aprendeu tudo o que pode com os dados e não está melhorando, mas ainda está sendo treinado (o que leva tempo e custa dinheiro), o SageMaker Debugger ajudará a identificar isso cedo, para que você possa encerrar o treinamento. Ele também pode identificar problemas comuns de validação de dados, como se os pesos de sua rede estão constantemente sendo definidos como zero, além de identificar se seu modelo está começando a superestimar os dados.

Debugger

Treinamento em um clique

O treinamento de modelos é fácil com o Amazon SageMaker. Quando você estiver pronto para treinar no SageMaker, especifique a localização dos dados no Amazon S3 e indique o tipo e a quantidade de instâncias do ML do SageMaker necessárias para começar com um único clique. O SageMaker configura um cluster de computação distribuído, faz o treinamento, envia o resultado para o Amazon S3 e desfaz o cluster após a conclusão. 

Ao especificar a localização dos seus dados no Amazon S3, o SageMaker executará seu algoritmo em um cluster de treinamento isolado na própria rede definida de software configurada para suas necessidades. Quando você escolhe o tipo de instância, incluindo o Amazon EC2 P3dn, a instância mais poderosa baseada em GPU na nuvem, o SageMaker cria seu cluster em um grupo de escalabilidade automática. O SageMaker também anexará volumes EBS a cada nó, configurará os pipelines de dados e iniciará o treinamento com seu TensorFlow, MXNet, Pytorch, Chainer ou seu script de estrutura, algoritmo interno ou personalizado. Depois de concluídos, os resultados são armazenados no S3, e o cluster é automaticamente desativado.

Para facilitar a realização de treinamento em larga escala, otimizamos o stream dos dados de treinamento vindos do Amazon S3. Pela API, você pode especificar se deseja que todos os dados sejam enviados para cada nó no cluster ou se gostaria que o SageMaker gerenciasse a distribuição dos dados pelos nós, dependendo das necessidades do seu algoritmo. Combinado com algoritmos internos, o dimensionamento do treinamento que é viabilizado pelo Amazon SageMaker pode reduzir bastante o tempo e o custo dos ciclos de treinamento.

Ajuste automático de modelos

O Amazon SageMaker pode ajustar seu modelo automaticamente ajustando milhares de combinações de parâmetros de algoritmo diferentes a fim de obter as previsões mais exatas que o modelo é capaz de produzir.

Enquanto ajusta seu modelo para ser mais exato, você precisa alterar duas alavancas importantes: modificar as entradas de dados fornecidas ao modelo (por exemplo, usar o log de um número) e ajustar os parâmetros que definem o comportamento do modelo. Eles são chamados de hiperparâmetros, e encontrar os valores certos pode ser difícil. Normalmente, você começa com algo aleatório e vai iterando com ajustes conforme vai vendo o impacto das alterações. O ciclo pode ser longo, dependendo de quantos hiperparâmetros o seu modelo tem.

O SageMaker torna isso mais fácil, ao oferecer o ajuste automático de modelos como opção durante o treinamento. O ajuste automático de modelos usa machine learning para ajustar seu modelo para que seja o mais preciso possível. Esse recurso permite ignorar o processo tedioso de tentativa e erro de ajustar hiperparâmetros de modelos manualmente. Em vez disso, o ajuste automático de modelos realiza a otimização de hiperparâmetros através de várias execuções de treinamento, descobrindo recursos interessantes em seus dados e aprendendo como esses recursos interagem para afetar a precisão. Você economiza dias, ou até semanas, do tempo gasto maximizando a qualidade do modelo treinado.

Você simplesmente especifica o número de tarefas de treinamento por meio da API ou do console, e o SageMaker lida com o restante usando a machine learning para ajustar seu modelo. Ele funciona aprendendo o que afeta os diferentes tipos de dados que estão no modelo e aplicando esse conhecimento em várias cópias do modelo para localizar rapidamente o melhor resultado possível. Como desenvolvedor ou cientista de dados, isso significa que você só precisa mesmo se preocupar com os ajustes que deseja fazer nos dados que serão passados para o modelo, o que reduz bastante a quantidade de preocupações durante o treinamento.

Treinamento gerenciado de spots

Você pode reduzir o custo de treinamento de modelos de machine learning em até 90% usando o treinamento gerenciado de spots. O treinamento gerenciado de spots usa instâncias spot do Amazon EC2, que são capacidade ociosa do EC2, para executar tarefas de treinamento a custos muito inferiores em relação às instâncias sob demanda do Amazon EC2. O Amazon SageMaker gerencia as tarefas de treinamento para executá-las quando a capacidade computacional fica disponível. Como resultado, você não precisa sondar continuamente a capacidade. O treinamento gerenciado de spots elimina a necessidade de criar ferramentas adicionais para gerenciar interrupções. O treinamento gerenciado de spots funciona com ajuste automático de modelos, algoritmos e estruturas integrados que acompanham o Amazon SageMaker e algoritmos personalizados.

Ajuste automático de modelos com o Amazon SageMaker

Aprenda com estes exercícios de ajuste de modelo automático no GitHub.

Treine modelos de machine learning usando o TensorFlow no Amazon SageMaker

Aprenda a treinar modelos de machine learning baseados em TensorFlow.