Notícias

Inovando o treinamento de IA distribuído ao aplicar novas abordagens

A ciência de dados é um trabalho árduo e não um feitiço de mágica. Se o desempenho de um modelo de IA ocorre conforme o planejado depende de quão bem ele foi treinado e não existe uma abordagem “coringa” para o processo de treinamento de modelos de IA. 

O mal necessário do treinamento de IA distribuído

A escalabilidade é uma das considerações mais complicadas ao treinar modelos de IA, já que o treinamento pode ser especialmente desafiador quando um modelo consome muitos recursos para ser processado completamente em qualquer plataforma de computação única.  

Um modelo pode ter crescido tanto que excede o limite de memória de uma única plataforma de processamento ou um acelerador exigiu o desenvolvimento de algoritmos ou infraestrutura especiais. Os conjuntos de dados de treinamento podem crescer tanto que o treinamento leva um tempo excessivamente longo e se torna proibitivamente caro. 

Mas a escalabilidade pode ser algo fácil de lidar se não exigirmos que o modelo seja particularmente bom em sua tarefa atribuída. Porém, à medida que aumentamos o nível de precisão de inferência necessário, o processo de treinamento pode se estender por mais tempo e consumir cada vez mais recursos.  

A solução desse obstáculo não é apenas uma questão de lançar um hardware mais poderoso para o problema. Como em muitas cargas de trabalho de aplicativos, não é possível confiar apenas em processadores mais rápidos para sustentar o dimensionamento linear, à medida que a complexidade do modelo de IA aumenta. 

Por isso, o treinamento distribuído pode ser necessário. Se os componentes de um modelo puderem ser particionados e distribuídos para nós otimizados para processamento em paralelo, o tempo necessário para treinar um modelo poderá ser reduzido significativamente. No entanto, a paralelização pode, por si só, ser um exercício árduo, considerando a fragilidade de um modelo estatístico. 

O modelo pode falhar espetacularmente se alguma mudança aparentemente menor no gráfico – suas camadas, nós, conexões, pesos, hiperparâmetros etc. – interromper a capacidade do modelo de fazer inferências precisas. Mesmo se deixarmos o gráfico subjacente intacto e tentar particionar as camadas do modelo em componentes distribuídos, precisaremos recombinar seus resultados em um conjunto coeso. 

Se não tomarmos cuidado, essa questão pode resultar em um modelo recombinado que de alguma forma é distorcido no desempenho de sua tarefa designada. 

Novas estruturas da indústria para treinamento de IA distribuído

 Em toda a profissão de ciência de dados, observamos a inovação no treinamento do modelo de IA, com grande parte focada em como fazê-lo de forma eficiente em multiclouds e outros ambientes distribuídos. 

Nesse sentido, o Google e a Microsoft lançaram recentemente novas estruturas para o treinamento de modelos de deep learning: o GPipe do Google e o PipeDream da Microsoft. As estruturas seguem princípios de escala semelhantes. 

 Embora diferente em vários aspectos, o GPipe e o PipeDream compartilham uma visão comum para o treinamento distribuído de modelos de IA. Essa visão envolve algumas necessidades: 

  • Determinar como dividir modelos específicos, com base na implantação de hardware;
  • Treinar modelos de qualquer tamanho, tipo e estrutura em conjuntos de dados de qualquer escala e formato e de uma maneira independente da tarefa de inferência pretendida;
  • Criar modelos de partição para que o treinamento paralelo não distorça o conhecimento do domínio (como reconhecer uma face) que foi projetado para representar;
  • Paralelizar o treinamento de uma maneira independente da topologia de ambientes de destino distribuídos;
  • Paralelizar os modelos e os dados em um pipeline de treinamento distribuído complexo;
  • Aumentar a velocidade de computação da GPU (unidades de processamento gráfico) para várias cargas de trabalho de treinamento;
  • Permitir o uso eficiente dos recursos de hardware no processo de treinamento;
  • Reduzir os custos de comunicação em grande escala ao treinar na infraestrutura de nuvem.

Escalando o treinamento quando modelos e redes se tornam extremamente complexos

O que distingue essas duas estruturas é a extensão em que elas suportam o desempenho otimizado dos fluxos de trabalho de treinamento para modelos com camadas sequenciais (que é sempre mais difícil de paralelizar) e em ambientes de destino mais complexos, como multicloud, mesh e cenários cloud-to-edge. 

 O GPipe do Google é adequado para treinamento paralelo rápido de redes neurais profundas que incorporam várias camadas sequenciais. O que ele faz automaticamente: 

  • Particiona modelos e move os modelos particionados para diferentes aceleradores, como GPUs ou TPUs (unidades de processamento de tensor), que possuem hardware especial que foi otimizado para diferentes cargas de trabalho de treinamento;
  • Divide um mini lote de exemplos de treinamento em pequenos lotes que podem ser processados pelos aceleradores em paralelo;
  • Permite o aprendizado distribuído entre nós usando descida de gradiente estocástico síncrono e paralelismo de pipeline em uma biblioteca de machine learning distribuído.

O PipeDream da Microsoft também explora o paralelismo de modelo e dados, mas é mais voltado para melhorar o desempenho de fluxos de trabalho complexos de treinamento de IA em ambientes distribuídos.

Um dos projetos de treinamento em IA da iniciativa Project Fiddle da Microsoft Research, o PipeDream realiza isso automaticamente porque pode: 

  • Separar a computação e a comunicação entre nós, de maneira a facilitar o paralelismo de dados e modelos no treinamento de IA distribuído;
  • Particionar modelos de IA em estágios que consistem em um conjunto consecutivo de camadas;
  • Mapear cada estágio para uma GPU separada que execute as funções de rede neural de passagem para frente e para trás para todas as camadas nesse estágio;
  • Determinar como particionar os modelos com base em uma execução de criação de perfil executada em uma única GPU;
  • Equilibrar as cargas computacionais entre diferentes partições e nós do modelo, mesmo quando a topologia distribuída de um ambiente de treinamento é altamente complexa;
  • Minimizar as comunicações entre os nós do trabalhador distribuído que manipulam as várias partições, uma vez que cada trabalhador precisa se comunicar apenas com um único outro trabalhador e comunicar apenas subconjuntos dos gradientes do modelo geral e das ativações de saída.

Mais detalhes sobre as duas estruturas estão em seus respectivos documentos de pesquisa: GPipe e PipeDream , ambos em inglês. 

A necessidade de consenso e escalabilidade

O treinamento é um recurso crítico do sucesso da IA, e mais profissionais da IA estão distribuindo esses fluxos de trabalho entre multiclouds, malhas e arestas distribuídas. 

No futuro, o Google e a Microsoft devem alinhar suas respectivas estruturas em uma abordagem de consenso do setor para treinamento de IA distribuído. Eles podem querer considerar o envolvimento da Uber nesse sentido.  

A empresa de compartilhamento de viagens já tem uma reivindicação maior pela distinção de primeira no mercado em estruturas de treinamento distribuídas. A empresa abriu seu projeto Horovod há três anos. O projeto, hospedado pela AI Foundation, da Linux Foundation, foi integrado aos principais ambientes de modelagem de IA, como TensorFlow, PyTorch, Keras e Apache MXNet

 A escalabilidade deve ser uma consideração essencial de toda e qualquer estrutura desse tipo. No momento, o Horovod possui alguns recursos úteis a esse respeito, mas não possui o foco de escala acentuado que o Google e a Microsoft incorporaram em seus respectivos projetos.  

Em termos de escalabilidade, o Horovod pode ser executado em GPUs únicas ou múltiplas e até em vários hosts distribuídos sem alterações de código. Ele é capaz de agrupar pequenas operações, automatizar o ajuste distribuído e intercalar os pipelines de comunicação e computação. 

 As preocupações de escalabilidade variam de acordo com o cenário de treinamento que você considera. Independentemente de qual estrutura se torne dominante – GPipe, PipeDream, Horovod ou qualquer outra coisa – seria bom ver o desenvolvimento da indústria de fluxos de trabalho de referência para implantação distribuída dos seguintes cenários de treinamento especializados: 

  • Aprendizado semi-supervisionado, que utiliza pequenas quantidades de dados rotulados (talvez fornecidos por usuários humanos em aplicativos móveis) para acelerar a identificação de padrões em conjuntos de dados grandes e não rotulados, como aqueles ingeridos pelas câmeras, microfones e sensores ambientais dos dispositivos IoT.
  • Aprendizado por reforço, que envolve a construção de módulos de IA, como os implantados em robôs industriais, que podem aprender autonomamente com pouco ou nenhum dado de treinamento de “verdade básica”, embora possivelmente com orientação humana.
  • Aprendizado colaborativo, que distribuiu módulos de IA, talvez implantados em drones, que coletivamente examinam, trocam e exploram ótimos hiperparâmetros permitindo que todos os módulos convirjam dinamicamente na troca ideal de velocidade de aprendizado versus precisão.
  • Aprendizado evolutivo, que treina um grupo de entidades orientadas por IA (talvez pontos de extremidade móveis e IoT) por meio de um procedimento que aprende com um agregado de decisões de interesse próprio que eles tomam, com base no conhecimento no nível da entidade e em diferentes graus de compartilhamento de parâmetros do modelo entre entidades.
  • Aprendizado de transferência, que reutiliza quaisquer dados de treinamento relevantes, representações de recursos, arquiteturas de nós neurais, hiperparâmetros e outras propriedades de modelos existentes, como aqueles executados em nós de mesmo nível.
  • Treinamento no dispositivo, que permite que os aplicativos ingiram dados locais recentemente detectados e atualize rapidamente os modelos de IA específicos que persistem nesses dispositivos.
  • Aprendizado de navegação por robô, que trabalha com informações sensoriais brutas, explora regularidades nos layouts de ambiente e requer apenas um pouco de dados de treinamento.

Essa lista nem começa a sugerir a diversidade de fluxos de trabalho de treinamento de IA distribuídos que prevalecerão no futuro. Na medida em que temos estruturas de referência padrão em vigor em 2020, os cientistas de dados terão uma base sólida para levar a revolução da IA em todas as direções. 

Recent Posts

Pure Storage aposta em mudança de paradigma para gestão de dados corporativos

A Pure Storage está redefinindo sua estratégia de mercado com uma abordagem que abandona o…

3 dias ago

A inteligência artificial é mesmo uma catalisadora de novos unicórnios?

A inteligência artificial (IA) consolidou-se como a principal catalisadora de novos unicórnios no cenário global…

3 dias ago

Finlândia ativa a maior bateria de areia do mundo

À primeira vista, não parece grande coisa. Mas foi na pequena cidade de Pornainen, na…

3 dias ago

Reforma tributária deve elevar custos com mão de obra no setor de tecnologia

O processo de transição previsto na reforma tributária terá ao menos um impacto negativo sobre…

3 dias ago

Relação entre OpenAI e Microsoft entra em clima de tensão, aponta WSJ

O que antes parecia uma aliança estratégica sólida começa a mostrar rachaduras. Segundo reportagem do…

3 dias ago

OpenAI fecha contrato de US$ 200 milhões com Departamento de Defesa dos EUA

O Departamento de Defesa dos Estados Unidos firmou um contrato de US$ 200 milhões com…

3 dias ago