Acelerando o treinamento de redes neurais em larga escala em CPUs com ThirdAI e AWS Graviton | Amazon Web Services

Acelerando o treinamento de redes neurais em larga escala em CPUs com ThirdAI e AWS Graviton | Amazon Web Services

Este post convidado foi escrito por Vihan Lakshman, Tharun Medini e Anshumali Shrivastava da ThirdAI.

A aprendizagem profunda em grande escala produziu recentemente avanços revolucionários numa vasta gama de campos. Embora este progresso impressionante na inteligência artificial continue a ser notável, os custos financeiros e o consumo de energia necessários para treinar estes modelos surgiram como um gargalo crítico devido à necessidade de hardware especializado, como GPUs. Tradicionalmente, mesmo modelos neurais de tamanho modesto exigem aceleradores de hardware dispendiosos para treinamento, o que limita o número de organizações com meios financeiros para aproveitar ao máximo esta tecnologia.

Fundada em 2021, a ThirdAI Corp. é uma startup dedicada à missão de democratizar as tecnologias de inteligência artificial por meio de inovações algorítmicas e de software que mudam fundamentalmente a economia do aprendizado profundo. Desenvolvemos um mecanismo de aprendizado profundo esparso, conhecido como BOLT, que é projetado especificamente para treinar e implantar modelos em hardware de CPU padrão, em oposição a aceleradores caros e que consomem muita energia, como GPUs. Muitos de nossos clientes têm relatou forte satisfação com a capacidade da ThirdAI de treinar e implantar modelos de aprendizagem profunda para problemas críticos de negócios em infraestrutura de CPU econômica.

Nesta postagem, investigamos o potencial do processador AWS Graviton3 para acelerar o treinamento de rede neural para o mecanismo de aprendizado profundo exclusivo baseado em CPU da ThirdAI.

Os benefícios das CPUs de alto desempenho

Na ThirdAI, alcançamos esses avanços no treinamento eficiente de redes neurais em CPUs por meio de algoritmos esparsos dinâmicos proprietários que ativam apenas um subconjunto de neurônios para uma determinada entrada (veja a figura a seguir), evitando assim a necessidade de cálculos totalmente densos. Ao contrário de outras abordagens para treinamento de redes neurais esparsas, ThirdAI usa hashing sensível à localidade para selecionar dinamicamente neurônios para uma determinada entrada, conforme mostrado nas linhas em negrito abaixo. Em certos casos, observámos mesmo que o nosso modelos esparsos baseados em CPU treine mais rápido do que a arquitetura densa comparável em GPUs.

Arquitetura neural densa com linhas em negrito mostrando quais neurônios estão selecionados

Dado que muitos de nossos clientes-alvo operam na nuvem (e entre eles, a maioria usa AWS), ficamos entusiasmados em testar o processador AWS Graviton3 para ver se as impressionantes melhorias de preço-desempenho da inovação de silício da Amazon se traduziriam em nossa carga de trabalho exclusiva. de treinamento esparso de redes neurais e, assim, proporcionar mais economia para os clientes. Embora tanto a comunidade de pesquisa quanto a equipe do AWS Graviton tenham apresentado avanços interessantes na aceleração inferência de rede neural em instâncias de CPU, nós da ThirdAI somos, até onde sabemos, os primeiros a estudar seriamente como treinar modelos neurais em CPUs de forma eficiente.

Conforme mostrado em nossos resultados, observamos uma aceleração significativa no treinamento com o AWS Graviton3 em relação às instâncias comparáveis ​​da Intel e da NVIDIA em diversas cargas de trabalho de modelagem representativas.

Tipos de instância

Para nossa avaliação, consideramos duas instâncias de CPU AWS comparáveis: uma máquina c6i.8xlarge com processador Ice Lake da Intel e uma c7g.8xlarge com AWS Graviton3. A tabela a seguir resume os detalhes de cada instância.

Instância vCPU RAM (GB) Subcontratante Preço sob demanda (us-east-1)
c7g.8xgrande 32 64 AWS Graviton3 $ 1.1562 / hr
c6i.8xgrande 32 64 Intel Ice Lake $ 1.36 / hr
g5g.8xgrande (GPU) 32 64 com memória GPU de 16 GB Processadores AWS Graviton2 com 1 GPU NVIDIA T4G $ 1.3720 / hr

Avaliação 1: Classificação extrema

Para nossa primeira avaliação, nos concentramos no problema da classificação extrema de múltiplos rótulos (XMC), um paradigma de aprendizado de máquina (ML) cada vez mais popular, com uma série de aplicações práticas em pesquisa e recomendações (incluindo em Amazon). Para nossa avaliação, nos concentramos no público Tarefa de recomendação de produto Amazon-670K, que, dado um produto de entrada, identifica produtos similares em uma coleção de mais de 670,000 mil itens.

Neste experimento, comparamos o mecanismo BOLT da ThirdAI com o TensorFlow 2.11 e PyTorch 2.0 nas opções de hardware mencionadas acima: Intel Ice Lake, AWS Graviton3 e uma GPU NVIDIA T4G. Para nossos experimentos em Intel e AWS Graviton, usamos o AWS Deep Learning AMI (Ubuntu 18.04) versão 59.0. Para nossa avaliação de GPU, usamos o AMI Arm64 otimizada para GPU NVIDIA, disponível no AWS Marketplace. Para esta avaliação, utilizamos o Arquitetura do modelo SLIDE, que alcança desempenho competitivo nesta tarefa de classificação extrema e forte desempenho de treinamento em CPUs. Para nossas comparações entre TensorFlow e PyTorch, implementamos a versão análoga da arquitetura SLIDE multi-layer perceptron (MLP) com multiplicações de matrizes densas. Treinamos cada modelo por cinco épocas (passagens completas pelo conjunto de dados de treinamento) com um tamanho de lote fixo de 256 e uma taxa de aprendizado de 0.001. Observamos que todos os modelos alcançaram a mesma precisão de teste de 33.6%.

O gráfico a seguir compara o tempo de treinamento do BOLT da ThirdAI com o TensorFlow 2.11 e PyTorch 2.0 no benchmark de classificação extrema Amazon670k. Todos os modelos alcançam a mesma precisão de teste. Observamos que o AWS Graviton3 acelera consideravelmente o desempenho do BOLT pronto para uso, sem a necessidade de personalizações – em aproximadamente 40%. O BOLT da ThirdAI no AWS Graviton3 também alcança um treinamento consideravelmente mais rápido do que os modelos TensorFlow ou PyTorch treinados na GPU. Observe que não há resultado ThirdAI no benchmark de GPU NVIDIA porque o BOLT foi projetado para rodar em CPUs. Não incluímos benchmarks de CPU TensorFlow e PyTorch devido ao tempo de treinamento proibitivamente longo.

Gráfico de barras de tempo de treinamento do Amazon 670k comparando instâncias c6i.8xlarge vs c7g.8xlarge

A tabela a seguir resume o tempo de treinamento e a precisão do teste para cada processador/processador especializado (GPU).

Subcontratante Motor Tempo(s) de treinamento Precisão do teste
Intel Ice Lake (c6i.8xgrande) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xgrande) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xgrande) PyTorch 5130 33.6

Avaliação 2: análise de sentimento do Yelp Polarity

Para a nossa segunda avaliação, nos concentramos no popular Polaridade do Yelp benchmark de análise de sentimento, que envolve classificar uma avaliação como positiva ou negativa. Para esta avaliação, comparamos o ThirdAI Transformadores profundos universais (UDT) modelo contra um ajuste fino DestilBERT rede, um modelo de linguagem compactado pré-treinado que atinge desempenho quase de última geração com latência de inferência reduzida. Como o ajuste fino dos modelos DistilBERT em uma CPU levaria um tempo proibitivamente longo (pelo menos vários dias), comparamos os modelos baseados em CPU da ThirdAI com os modelos DistilBERT ajustados em uma GPU. Treinamos todos os modelos com tamanho de lote de 256 para uma única passagem pelos dados (uma época). Observamos que podemos obter uma precisão um pouco maior com o BOLT com passagens adicionais pelos dados, mas nos restringimos a uma única passagem nesta avaliação para fins de consistência.

Conforme mostrado na figura a seguir, o AWS Graviton3 acelera novamente consideravelmente o treinamento do modelo UDT da ThirdAI. Além disso, o UDT é capaz de atingir uma precisão de teste comparável ao DistilBERT com uma fração do tempo de treinamento e sem a necessidade de uma GPU. Notamos que também houve trabalhos recentes em otimizando o ajuste fino da polaridade do Yelp em CPUs. Nossos modelos, porém, ainda alcançam maiores ganhos de eficiência e evitam o custo de pré-treinamento, que é substancial e requer o uso de aceleradores de hardware como GPUs.

Tempo de treinamento no Yelp Polarity C7g vs c6i

A tabela a seguir resume o tempo de treinamento, a precisão do teste e a latência de inferência.

Subcontratante Motor Modelo Tempo(s) de treinamento Precisão do teste Latência de inferência (ms)
Intel Icelake (c6i.8xgrande) BOLT UDT 47 93.2 <1
Graviton3 (c7g.8xgrande) BOLT UDT 29 92.9 <1
GPU T4G (g5g.8xlarge) TensorFlow DestilBERT 4200 93.3 8.7
GPU T4G (g5g.8xlarge) PyTorch DestilBERT 3780 93.4 8.3

Avaliação 3: Classificação de texto multiclasse (DBPedia)

Para nossa avaliação final, focamos no problema de classificação de texto multiclasse, que envolve atribuir um rótulo a um determinado texto de entrada de um conjunto de mais de duas classes de saída. Nós nos concentramos no DBPedia benchmark, que consiste em 14 classes de saída possíveis. Novamente, vemos que o AWS Graviton3 acelera o desempenho do UDT em relação à instância comparável da Intel em aproximadamente 40%. Também vemos que o BOLT alcança resultados comparáveis ​​​​ao modelo baseado em transformador DistilBERT ajustado em uma GPU, ao mesmo tempo em que atinge latência inferior a um milissegundo.

Tempo de treinamento ThirdAI BOLT em c7g vs c6i

A tabela a seguir resume o tempo de treinamento, a precisão do teste e a latência de inferência.

Subcontratante Motor Modelo Tempo(s) de treinamento Precisão do teste Latência de inferência (ms)
Intel Icelake (c6i.8xgrande) BOLT UDT 23 98.23 <1
Graviton3 (c7g.8xgrande) BOLT UDT 14 98.10 <1
GPU T4G (g5g.8xlarge) TensorFlow DestilBERT 4320 99.23 8.6
GPU T4G (g5g.8xlarge) PyTorch DestilBERT 3480 99.29 8

Comece a usar o ThirdAI no AWS Graviton

Projetamos nosso software BOLT para compatibilidade com todas as principais arquiteturas de CPU, incluindo AWS Graviton3. Na verdade, não tivemos que fazer nenhuma customização em nosso código para rodar no AWS Graviton3. Portanto, você pode usar o ThirdAI para treinamento e implantação de modelo no AWS Graviton3 sem nenhum esforço adicional. Além disso, conforme detalhado em nosso recente artigo de pesquisa, desenvolvemos um conjunto de novas técnicas matemáticas para ajustar automaticamente os hiperparâmetros especializados associados aos nossos modelos esparsos, permitindo que nossos modelos funcionem bem imediatamente.

Observamos também que nossos modelos funcionam bem principalmente para tarefas de pesquisa, recomendação e processamento de linguagem natural que normalmente apresentam espaços de saída grandes e de alta dimensão e um requisito de latência de inferência extremamente baixa. Estamos trabalhando ativamente para estender nossos métodos a domínios adicionais, como visão computacional, mas esteja ciente de que nossas melhorias de eficiência não se traduzem em todos os domínios de ML neste momento.

Conclusão

Nesta postagem, investigamos o potencial do processador AWS Graviton3 para acelerar o treinamento de rede neural para o mecanismo de aprendizado profundo baseado em CPU exclusivo da ThirdAI. Nossos benchmarks de pesquisa, classificação de texto e benchmarks de recomendações sugerem que o AWS Graviton3 pode acelerar as cargas de trabalho de treinamento de modelo da ThirdAI em 30 a 40% em relação às instâncias x86 comparáveis, com uma melhoria de preço-desempenho de quase 50%. Além disso, como as instâncias AWS Graviton3 estão disponíveis a um custo menor do que as máquinas análogas Intel e NVIDIA e permitem tempos de treinamento e inferência mais curtos, você pode desbloquear ainda mais o valor do modelo de uso pré-pago da AWS usando custos mais baixos máquinas por períodos mais curtos de tempo.

Estamos muito entusiasmados com a economia de preço e desempenho do AWS Graviton3 e buscaremos repassar essas melhorias aos nossos clientes para que eles possam desfrutar de treinamento e inferência de ML mais rápidos com melhor desempenho em CPUs de baixo custo. Como clientes da AWS, estamos satisfeitos com a velocidade com que o AWS Graviton3 nos permite experimentar nossos modelos e esperamos usar mais inovações de ponta em silício da AWS daqui para frente. Guia Técnico Graviton é um bom recurso a ser considerado ao avaliar suas cargas de trabalho de ML para execução no Graviton. Você também pode experimentar instâncias Graviton t4g teste grátis.

O conteúdo e as opiniões desta postagem são de responsabilidade do autor terceirizado e a AWS não é responsável pelo conteúdo ou precisão desta postagem. No momento em que este artigo foi escrito, as instâncias mais atuais eram c6i e, portanto, a comparação foi feita com instâncias c6i.


Sobre o autor

Vihan Lakshman – Vihan Lakshman é um cientista pesquisador da ThirdAI Corp. focado no desenvolvimento de sistemas para aprendizado profundo com eficiência de recursos. Antes da ThirdAI, ele trabalhou como Cientista Aplicado na Amazon e recebeu graduação e mestrado pela Universidade de Stanford. Vihan também recebeu uma bolsa de pesquisa da National Science Foundation.

Tharun Medini – Tharun Medini é cofundador e CTO da ThirdAI Corp. Ele fez seu doutorado em “Algoritmos Hashing para pesquisa e recuperação de informações” na Rice University. Antes da ThirdAI, Tharun trabalhou na Amazon e na Target. Tharun recebeu vários prêmios por sua pesquisa, incluindo a Ken Kennedy Institute BP Fellowship, a American Society of Indian Engineers Scholarship e a Rice University Graduate Fellowship.

Anshumali Shrivastava – Anshumali Shrivastava é professor associado do departamento de ciência da computação da Rice University. Ele também é o fundador e CEO da ThirdAI Corp, uma empresa que está democratizando a IA para hardware como commodity por meio de inovações de software. Seus amplos interesses de pesquisa incluem algoritmos probabilísticos para aprendizado profundo com economia de recursos. Em 2018, o Science News nomeou-o um dos 10 melhores cientistas com menos de 40 anos para assistir. Ele recebeu o prêmio CAREER da National Science Foundation, o prêmio Young Investigator do Escritório de Pesquisa Científica da Força Aérea, um prêmio de pesquisa de aprendizado de máquina da Amazon e um prêmio de pesquisa em ciência de dados da Adobe. Ele ganhou vários prêmios de artigos, incluindo Best Paper Awards no NIPS 2014 e MLSys 2022, bem como o Most Reproducible Paper Award no SIGMOD 2019. Seu trabalho em tecnologias eficientes de aprendizado de máquina em CPUs foi coberto pela imprensa popular, incluindo Wall Street Journal, New York Times, TechCrunch, NDTV, etc.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS