Melhore o desempenho do aprendizado de máquina eliminando os zeros

Atualização: 6 de agosto de 2023
Melhore o desempenho do aprendizado de máquina eliminando os zeros

Os pesquisadores do KAUST descobriram uma maneira de aumentar significativamente a velocidade do treinamento. Modelos grandes de aprendizado de máquina podem ser treinados com muito mais rapidez, observando a frequência com que resultados zero são produzidos no aprendizado de máquina distribuído que usa grandes conjuntos de dados de treinamento.

Os modelos de IA desenvolvem sua “inteligência” sendo treinados em conjuntos de dados que foram rotulados para dizer ao modelo como diferenciar entre diferentes entradas e, em seguida, responder de acordo. Quanto mais dados rotulados forem inseridos, melhor se tornará o modelo na execução de qualquer tarefa para a qual foi designado. Para aplicações complexas de aprendizagem profunda, como veículos autônomos, isso requer enormes conjuntos de dados de entrada e tempos de treinamento muito longos, mesmo ao usar plataformas de supercomputação altamente paralelas poderosas e caras.

Durante o treinamento, pequenas tarefas de aprendizagem são atribuídas a dezenas ou centenas de nós de computação, que então compartilham seus resultados em uma rede de comunicação antes de executar a próxima tarefa. Uma das maiores fontes de sobrecarga de computação em tais tarefas de computação paralela é, na verdade, essa comunicação entre os nós de computação em cada etapa do modelo.

“A comunicação é um grande gargalo de desempenho no aprendizado profundo distribuído”, explica a equipe KAUST. “Junto com o aumento acelerado do tamanho do modelo, também vemos um aumento na proporção de valores zero que são produzidos durante o processo de aprendizagem, o que chamamos de esparsidade. Nossa ideia era explorar essa dispersão para maximizar o uso eficaz da largura de banda, enviando apenas blocos de dados diferentes de zero. ”

Com base em um desenvolvimento KAUST anterior chamado SwitchML, que otimizou as comunicações entre nós ao executar um código de agregação eficiente nos switches de rede que processam a transferência de dados, Fei, Marco Canini e seus colegas deram um passo adiante, identificando resultados zero e desenvolvendo uma maneira de interromper a transmissão sem interromper a sincronização do processo de computação paralela.

“Exatamente como explorar a dispersão para acelerar o treinamento distribuído é um problema desafiador, diz a equipe. “Todos os nós precisam processar blocos de dados no mesmo local em um intervalo de tempo, então temos que coordenar os nós para garantir que apenas blocos de dados no mesmo local sejam agregados. Para superar isso, criamos um processo agregador para coordenar os trabalhadores, instruindo-os sobre qual bloco enviar a seguir. ”

A equipe demonstrou seu esquema OmniReduce em um ambiente de teste que consiste em uma série de unidades de processamento gráfico (GPU) e alcançou uma aceleração de oito vezes para o típico deep learning tarefas.

Horários ELE
+ postagens
  • A BD Soft se une ao Data Resolve e fortalece suas ofertas em segurança cibernética e inteligência empresarial
  • Abordagem combinada encontra a melhor trajetória direta para a geração do caminho do robô
  • Um material com duas funções pode levar a uma memória mais rápida
  • Novo Equipar Poderia levar a versão mais rápida do 5G para sua casa e local de trabalho