Analise os gastos do Amazon SageMaker e determine as oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Amazon Web Services

Analise os gastos do Amazon SageMaker e determine as oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Amazon Web Services

Em 2021, lançamos Serviços proativos de suporte da AWS como parte do Suporte empresarial da AWS plano. Desde sua introdução, ajudamos centenas de clientes a otimizar suas cargas de trabalho, definir proteções e melhorar a visibilidade do custo e uso de suas cargas de trabalho de aprendizado de máquina (ML).

Nesta série de postagens, compartilhamos lições aprendidas sobre como otimizar custos em Amazon Sage Maker. Nesta postagem, nos concentramos nos trabalhos de treinamento do SageMaker.

Trabalhos de treinamento do SageMaker

Os trabalhos de treinamento do SageMaker são processos em lote assíncronos com recursos integrados para treinamento e otimização de modelos de ML.

Com os trabalhos de treinamento do SageMaker, você pode trazer seu próprio algoritmo ou escolher entre mais de 25 algoritmos integrados. O SageMaker oferece suporte a várias fontes de dados e padrões de acesso, treinamento distribuído, incluindo clusters heterogêneos, bem como recursos de gerenciamento de experimentos e ajuste automático de modelo.

O custo de um trabalho de treinamento é baseado nos recursos que você usa (instâncias e armazenamento) durante a execução (em segundos) dessas instâncias. Isso inclui o tempo de duração do treinamento e, se você estiver usando o recurso de piscina quente, o período de manutenção de atividade que você configura. Em Parte 1, mostramos como começar a usar Explorador de custos da AWS para identificar oportunidades de otimização de custos no SageMaker. Você pode filtrar os custos de treinamento aplicando um filtro no tipo de uso. Os nomes desses tipos de uso são os seguintes:

  • REGION-Train:instanceType (por exemplo, USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (por exemplo, USE1-Train:VolumeUsage.gp2)

Para visualizar um detalhamento de seus custos de treinamento no Explorador de custos, você pode inserir train: como um prefixo para Tipo de uso. Se você filtrar apenas por horas usadas (veja a captura de tela a seguir), o Explorador de custos gerará dois gráficos: Custo e Uso. Essa exibição ajudará você a priorizar suas oportunidades de otimização e identificar quais instâncias são de longa duração e caras.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Antes de otimizar um trabalho de treinamento existente, recomendamos seguir as práticas recomendadas abordadas em Otimização de custos para machine learning com o Amazon SageMaker: teste seu código localmente e use modo local para testes, use modelos pré-treinados sempre que possível e considere treinamento local gerenciado (que pode otimizar o custo em até 90% em instâncias sob demanda).

Quando um trabalho sob demanda é iniciado, ele passa por cinco fases: Iniciando, Baixando, Treinamento, Carregamento e Concluído. Você pode ver essas fases e descrições na página do trabalho de treinamento no console do SageMaker.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Do ponto de vista do preço, você é cobrado pelas fases de download, treinamento e upload.

A revisão dessas fases é um primeiro passo para diagnosticar onde otimizar seus custos de treinamento. Neste post, discutimos as fases de download e treinamento.

Fase de download

No exemplo anterior, a fase de download levou menos de um minuto. No entanto, se o download de dados for um grande fator de custo de treinamento, você deve considerar a fonte de dados que está usando e os métodos de acesso. Os trabalhos de treinamento do SageMaker oferecem suporte nativo a três fontes de dados: Sistema de arquivos elástico da Amazon (Amazônia EFS), Serviço de armazenamento simples da Amazon (Amazon S3) e Amazon FSx para Lustre. Para o Amazon S3, o SageMaker oferece três maneiras gerenciadas de seu algoritmo acessar o treinamento: modo de arquivo (onde os dados são baixados para o armazenamento de bloco da instância), modo de pipe (os dados são transmitidos para a instância, eliminando assim a duração da fase de download) e modo Fast File (combina a facilidade de uso do modo File existente com o desempenho do modo Pipe). Para obter orientações detalhadas sobre como escolher a fonte de dados e os métodos de acesso corretos, consulte Escolha a melhor fonte de dados para seu trabalho de treinamento do Amazon SageMaker.

Ao usar o treinamento pontual gerenciado, quaisquer fases repetidas de download que ocorreram devido à interrupção não são cobradas (portanto, você só é cobrado pela duração do download de dados uma vez).

É importante observar que, embora os trabalhos de treinamento do SageMaker ofereçam suporte às fontes de dados mencionadas, eles não são obrigatórios. Em seu código de treinamento, você pode implementar qualquer método para baixar os dados de treinamento de qualquer fonte (desde que a instância de treinamento possa acessá-los). Existem outras maneiras de acelerar o tempo de download, como usar a API Boto3 com multiprocessamento para baixar arquivos simultaneamente ou usar bibliotecas de terceiros, como WebDataset ou s5cmd, para download mais rápido do Amazon S3. Para mais informações, consulte Paralelizando cargas de trabalho S3 com s5cmd.

Fase de treinamento

A otimização do custo da fase de treinamento consiste em otimizar dois vetores: escolher a infraestrutura certa (família e tamanho da instância) e otimizar o próprio treinamento. Podemos dividir aproximadamente as instâncias de treinamento em duas categorias: baseadas em GPU aceleradas, principalmente para modelos de aprendizado profundo, e baseadas em CPU para estruturas de ML comuns. Para obter orientação sobre como selecionar a família de instâncias correta para treinamento, consulte Garanta recursos de computação eficientes no Amazon SageMaker. Se o seu treinamento requer instâncias de GPUs, recomendamos consultar o vídeo Como selecionar instâncias de GPU do Amazon EC2 para aprendizado profundo.

Como orientação geral, se sua carga de trabalho exigir uma GPU NVIDIA, descobrimos que os clientes obtêm economias significativas com dois Amazon Elastic Compute Nuvem (Amazon EC2) tipos de instância: ml.g4dn e ml.g5. O ml.g4dn está equipado com NVIDIA T4 e oferece um custo particularmente baixo por memória. A instância ml.g5 é equipada com NVIDIA A10g Tensor Core e tem o menor custo por CUDA flop (fp32).

A AWS oferece recursos específicos de economia de custos para treinamento em deep learning:

Para dimensionar corretamente e otimizar sua instância, você deve primeiro olhar para o Amazon CloudWatch métricas que os trabalhos de treinamento estão gerando. Para mais informações, consulte Tarefas do SageMaker e métricas de endpoint. Você ainda pode usar o CloudWatch métricas de algoritmo personalizadas para monitorar o desempenho do treinamento.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Essas métricas podem indicar gargalos ou superprovisionamento de recursos. Por exemplo, se você observar alta CPU com baixas utilizações de GPU, poderá resolver o problema usando aglomerados heterogêneos. Outro exemplo pode ser a baixa utilização consistente da CPU ao longo da duração do trabalho — isso pode levar à redução do tamanho da instância.

Se você estiver usando treinamento distribuído, você deve testar diferentes métodos de distribuição (torre, Ring-AllReduce, espelhado e assim por diante) para validar a utilização máxima e ajustar os parâmetros de sua estrutura adequadamente (para obter um exemplo, consulte Práticas recomendadas para treinamento de aceleração do TensorFlow 1.x no Amazon SageMaker). É importante destacar que você pode usar a API de distribuição do SageMaker e bibliotecas como Paralelo de dados distribuídos do SageMaker, Modelo SageMaker Paralelo e Paralelo de dados fragmentados do SageMaker, que são otimizados para a infraestrutura da AWS e ajudam a reduzir os custos de treinamento.

Observe que o treinamento distribuído não escala necessariamente linearmente e pode introduzir alguma sobrecarga, o que afetará o tempo de execução geral.

Para modelos de aprendizado profundo, outra técnica de otimização é usar precisão mista. A precisão mista pode acelerar o treinamento, reduzindo assim o tempo de treinamento e o uso de memória com mínimo ou nenhum impacto na precisão do modelo. Para mais informações, consulte o Treine com Data Parallel e Model Parallel seção em Treinamento distribuído no Amazon SageMaker.

Por fim, a otimização de parâmetros específicos da estrutura pode ter um impacto significativo na otimização do processo de treinamento. SageMaker ajuste automático do modelo localiza hiperparâmetros com melhor desempenho, conforme medido por uma métrica objetiva escolhida por você. Definir o tempo de treinamento como uma métrica objetiva e a configuração da estrutura como hiperparâmetros pode ajudar a remover gargalos e reduzir o tempo geral de treinamento. Para obter um exemplo de como otimizar as configurações padrão do TensorFlow e remover um gargalo da CPU, consulte Aerobotics melhora a velocidade de treinamento em 24 vezes por amostra com Amazon SageMaker e TensorFlow.

Outra oportunidade para otimizar o tempo de download e processamento é considerar o treinamento em um subconjunto de seus dados. Se seus dados consistirem em várias entradas ou recursos duplicados com baixo ganho de informação, você poderá treinar em um subconjunto de dados e reduzir o download e o tempo de treinamento, bem como usar uma instância menor e Loja de blocos elásticos da Amazon (Amazon EBS). Para um exemplo, consulte Use uma abordagem centrada em dados para minimizar a quantidade de dados necessária para treinar modelos do Amazon SageMaker. Além disso, Gerenciador de dados do Amazon SageMaker pode simplificar a análise e a criação de amostras de treinamento. Para mais informações, consulte Crie amostras de dados aleatórias e estratificadas com o Amazon SageMaker Data Wrangler.

Depurador SageMaker

Para garantir treinamento eficiente e utilização de recursos, o SageMaker pode criar o perfil de seu trabalho de treinamento usando Depurador do Amazon SageMaker. Ofertas do depurador regras embutidas para alertar sobre problemas comuns que estão afetando seu treinamento, como gargalo de CPU, aumento de memória de GPU ou gargalo de E/S, ou você pode criar suas próprias regras. Você pode acessar e analisar o relatório gerado em Estúdio Amazon SageMaker. Para obter mais informações, consulte IU do Amazon SageMaker Debugger em experimentos do Amazon SageMaker Studio. A captura de tela a seguir mostra a exibição do depurador no Studio.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Você pode detalhar os operadores e funções do Python (o Principais operações na GPU seção) que são executados para executar o trabalho de treinamento. As regras integradas do Depurador para criação de perfil de problemas relacionados à operação da estrutura de observação, incluindo tempo excessivo de inicialização de treinamento devido ao download de dados antes do início do treinamento e discrepâncias de duração da etapa em loops de treinamento. Você deve observar que, embora o uso das regras integradas seja gratuito, os custos das regras personalizadas se aplicam com base na instância que você configura para a duração do trabalho de treinamento e armazenamento anexado a ela.

Conclusão

Nesta postagem, fornecemos orientações sobre análise de custos e práticas recomendadas ao treinar modelos de ML usando trabalhos de treinamento do SageMaker. À medida que o aprendizado de máquina se estabelece como uma ferramenta poderosa em todos os setores, o treinamento e a execução de modelos de ML precisam permanecer econômicos. O SageMaker oferece um conjunto de recursos amplo e profundo para facilitar cada etapa do pipeline de ML e oferece oportunidades de otimização de custos sem afetar o desempenho ou a agilidade.


Sobre os autores

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Deepali Rajale é um especialista sênior em IA/ML da AWS. Ela trabalha com clientes corporativos fornecendo orientação técnica com as melhores práticas para implantação e manutenção de soluções AI/ML no ecossistema da AWS. Ela trabalhou com uma ampla gama de organizações em vários casos de uso de aprendizado profundo envolvendo PNL e visão computacional. Ela é apaixonada por capacitar as organizações a alavancar a IA generativa para aprimorar sua experiência de uso. Nas horas vagas, gosta de cinema, música e literatura.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 4: Trabalhos de treinamento | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Uri Rosenberg é o Gerente Técnico Especialista em AI & ML para a Europa, Oriente Médio e África. Com sede em Israel, a Uri trabalha para capacitar os clientes corporativos em tudo o que é ML para projetar, construir e operar em escala. Em seu tempo livre, ele gosta de andar de bicicleta, fazer caminhadas e aumentar a entropia.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS