Reduza o tempo e o custo do treinamento de deep learning com o MosaicML Composer no AWS PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Reduza o tempo e o custo de treinamento de deep learning com o MosaicML Composer na AWS

Na última década, vimos Ciência de aprendizagem profunda (DL) adotada em um ritmo tremendo pelos clientes da AWS. Os parâmetros abundantes e treinados em conjunto dos modelos DL têm uma grande capacidade representacional que trouxe melhorias em vários casos de uso de clientes, incluindo análise de imagem e fala, processamento de linguagem natural (PNL), processamento de séries temporais e muito mais. Neste post, destacamos os desafios comumente relatados especificamente no treinamento EAD e como a biblioteca de código aberto Compositor MosaicML ajuda a resolvê-los.

O desafio do treinamento EAD

Os modelos DL são treinados iterativamente, em um loop for aninhado. Um loop percorre o conjunto de dados de treinamento, pedaço por pedaço e, se necessário, esse loop é repetido várias vezes em todo o conjunto de dados. Os profissionais de ML que trabalham no treinamento EAD enfrentam vários desafios:

  • A duração do treinamento aumenta com o tamanho dos dados. Com conjuntos de dados em constante crescimento, os tempos e custos de formação também aumentam e o ritmo da descoberta científica abranda.
  • Os scripts DL geralmente exigem código padrão, principalmente a estrutura de loop for duplo mencionada acima, que divide o conjunto de dados em minilotes e o treinamento em épocas.
  • O paradoxo da escolha: vários artigos e bibliotecas de otimização de treinamento são publicados, mas não está claro qual deles testar primeiro e como combinar seus efeitos.

Nos últimos anos, várias bibliotecas de código aberto, como Keras, Relâmpago PyTorch, Transformadores de rosto abraçando e Trem de raios têm tentado tornar o treinamento em EAD mais acessível, principalmente reduzindo a verbosidade do código, simplificando assim a forma como as redes neurais são programadas. A maioria dessas bibliotecas se concentrou na experiência do desenvolvedor e na compactação do código.

Neste post, apresentamos uma nova biblioteca de código aberto que tem uma postura diferente no treinamento EAD: Compositor MosaicML é uma biblioteca centrada na velocidade cujo objetivo principal é tornar os scripts de treinamento de redes neurais mais rápidos por meio da inovação algorítmica. No mundo do DL na nuvem, é aconselhável focar na velocidade, porque a infraestrutura de computação geralmente é paga por uso, até mesmo por segundo. Treinamento Amazon SageMaker—e melhorias na velocidade podem se traduzir em economia de dinheiro.

Historicamente, a aceleração do treinamento em EAD tem sido feita principalmente pelo aumento do número de iterações de modelos de computação de máquinas em paralelo, uma técnica chamada paralelismo de dados. Embora o paralelismo de dados às vezes acelere o treinamento (o que não é garantido porque perturba a convergência, conforme destacado em Goyal et al.), isso não reduz o custo geral do trabalho. Na prática, tende a aumentá-lo, devido à sobrecarga de comunicação entre máquinas e ao maior custo unitário da máquina, porque as máquinas DL distribuídas são equipadas com redes de ponta e interconexão de GPU no servidor.

Embora o MosaicML Composer suporte o paralelismo de dados, sua filosofia central é diferente do movimento de paralelismo de dados. O seu objetivo é acelerar a formação sem exigir mais máquinas, inovando ao nível da implementação científica. Portanto, visa obter economia de tempo que resultaria em economia de custos devido à estrutura de taxas de pagamento por uso da AWS.

Apresentando a biblioteca de código aberto MosaicML Composer

MosaicML Composer é uma biblioteca de treinamento DL de código aberto desenvolvida especificamente para simplificar a integração dos algoritmos mais recentes e combiná-los em novas receitas que aceleram o treinamento do modelo e ajudam a melhorar a qualidade do modelo. No momento em que este artigo foi escrito, ele suporta PyTorch e inclui 25 técnicas – chamadas métodos no mundo MosaicML, juntamente com modelos padrão, conjuntos de dados e benchmarks

O compositor é disponível via pip:

pip install mosaicml

As técnicas de aceleração implementadas no Composer podem ser acessadas com sua API funcional. Por exemplo, o trecho a seguir aplica o BlurPool técnica para um TorchVision ResNet:

import logging

from composer import functional as CF
import torchvision.models as models
logging.basicConfig(level=logging.INFO)

model = models.resnet50()
CF.apply_blurpool(model)

Opcionalmente, você também pode usar um Treinador para compor sua própria combinação de técnicas:

from composer import Trainer
from composer.algorithms import LabelSmoothing, CutMix, ChannelsLast

trainer = Trainer(
    model=.. # must be a composer.ComposerModel
    train_dataloader=...,
    max_duration="2ep",  # can be a time, a number of epochs or batches
    algorithms=[
        LabelSmoothing(smoothing=0.1),
        CutMix(alpha=1.0),
        ChannelsLast(),
    ]
)

trainer.fit()

Exemplos de métodos implementados no Composer

Alguns dos métodos disponíveis no Composer são específicos para visão computacional, por exemplo, técnicas de aumento de imagem ColOut, Cortar foraou Redimensionamento progressivo de imagem. Outros são específicos para modelagem de sequência, como Aquecimento da duração da sequência or Álibi. Curiosamente, vários são agnósticos quanto ao caso de uso e podem ser aplicados a uma variedade de redes neurais PyTorch, além da visão computacional e da PNL. Esses métodos genéricos de aceleração de treinamento de rede neural incluem Suavização de rótulo, Backprop Seletivo, Média de peso estocástico, Congelamento de Camada e Minimização com reconhecimento de nitidez (SAM).

Vamos nos aprofundar em alguns deles que foram considerados particularmente eficazes pela equipe do MosaicML:

  • Minimização com reconhecimento de nitidez (SAM) é um otimizador que minimiza a função de perda do modelo e sua nitidez calculando um gradiente duas vezes para cada etapa de otimização. Para limitar a computação extra para penalizar o rendimento, o SAM pode ser executado periodicamente.
  • Atenção com vieses lineares (ALiBi), inspirado por Pressione et al., é específico para modelos de Transformers. Ele elimina a necessidade de incorporações posicionais, substituindo-as por uma tendência não aprendida de atenção aos pesos.
  • Backprop Seletivo, inspirado por Jiang et ai., permite executar a retropropagação (os algoritmos que melhoram os pesos do modelo seguindo sua inclinação de erro) apenas em registros com função de alta perda. Este método ajuda a evitar computação desnecessária e ajuda a melhorar o rendimento.

Ter essas técnicas disponíveis em uma única estrutura de treinamento compacta é um valor agregado significativo para os profissionais de ML. O que também é valioso é o feedback de campo acionável que a equipe do MosaicML produz para cada técnica, testada e avaliada. No entanto, dada uma caixa de ferramentas tão rica, você pode se perguntar: que método devo usar? É seguro combinar o uso de vários métodos? Entre no MosaicML Explorer.

Explorador MosaicML

Para quantificar o valor e a compatibilidade dos métodos de treinamento EAD, a equipe MosaicML mantém Explorer, um painel ao vivo pioneiro que retrata dezenas de experimentos de treinamento DL em cinco conjuntos de dados e sete modelos. O painel retrata o fronteira ótima de pareto na compensação custo/tempo/qualidade e permite que você navegue e encontre combinações de métodos com melhor pontuação - chamadas receitas no mundo MosaicML – para um determinado modelo e conjunto de dados. Por exemplo, os gráficos a seguir mostram que para um treinamento GPT125 de parâmetro de 2M, o treinamento mais barato mantendo uma perplexidade de 24.11 é obtido combinando AliBi, Sequence Length Warmup e Scale Schedule, atingindo um custo de cerca de US$ 145.83 na Nuvem AWS! No entanto, observe que este cálculo de custo e os que se seguem nesta postagem são baseados apenas em uma computação sob demanda do EC2; outras considerações de custo podem ser aplicáveis, dependendo do seu ambiente e das necessidades do seu negócio.

Captura de tela do MosaicML Explorer para treinamento GPT-2

Conquistas notáveis ​​com o Composer na AWS

Ao executar a biblioteca Composer na AWS, a equipe MosaicML obteve vários resultados impressionantes. Observe que as estimativas de custos relatadas pela equipe do MosaicML consistem apenas em cobrança de computação sob demanda.

Conclusão

Você pode começar a usar o Composer em qualquer plataforma compatível, desde seu laptop até grandes servidores em nuvem equipados com GPU. A biblioteca apresenta recursos intuitivos Tour de boas-vindas e Iniciando páginas de documentação. Usar o Composer na AWS permite acumular a ciência de otimização de custos do Composer com serviços e programas de otimização de custos da AWS, incluindo computação Spot (Amazon EC2, Amazon Sage Maker), Plano de Poupança, SageMaker ajuste automático do modelo, e mais. A equipe MosaicML mantém um tutorial do Composer na AWS. Ele fornece uma demonstração passo a passo de como você pode reproduzir os resultados do MLPerf e treinar o ResNet-50 na AWS com a precisão padrão de 76.6% top-1 em apenas 27 minutos.

Se você está lutando com redes neurais que treinam muito lentamente ou se deseja manter seus custos de treinamento DL sob controle, experimente o MosaicML na AWS e conte-nos o que você construiu!


Sobre os autores

Reduza o tempo e o custo do treinamento de deep learning com o MosaicML Composer no AWS PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Bandish Xá é gerente de engenharia da MosaicML e trabalha para unir o aprendizado profundo eficiente com sistemas distribuídos em larga escala e computação de desempenho. Bandish tem mais de uma década de experiência na construção de sistemas para aprendizado de máquina e aplicativos empresariais. Ele gosta de passar tempo com amigos e família, cozinhar e assistir Star Trek repetidamente em busca de inspiração.

Reduza o tempo e o custo do treinamento de deep learning com o MosaicML Composer no AWS PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Olivier Cruchant é um arquiteto de soluções especialista em aprendizado de máquina na AWS, com sede na França. A Olivier ajuda os clientes da AWS – de pequenas startups a grandes empresas – a desenvolver e implantar aplicativos de aprendizado de máquina de nível de produção. Em seu tempo livre, ele gosta de ler trabalhos de pesquisa e explorar o deserto com amigos e familiares.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS