Desenvolvimento e análise de uma biblioteca de diferenciação automática para ambientes distribuídos

Introdução

O trabalho proposto busca desenvolver uma biblioteca de autodiferenciação que permite que o treinamento de uma rede neural seja executado de forma distribuída. Ele envolveria o desenvolvimento da determinada biblioteca, incluindo a especificação de um protocolo de camada de aplicação para a comunicação entre os nós do ambiente distribuído, assim como uma análise comparativa dos resultados desta com outras bibliotecas do campo a partir do treinamento de uma rede neural com alguns datasets disponíveis publicamente.

Justificativa

O trabalho proposto é relevante porque aborda a otimização do treinamento de redes neurais em ambientes distribuídos, o que é uma demanda crescente no campo da Inteligência Artificial. Além disso, o desenvolvimento de uma biblioteca de autodiferenciação permitirá uma maior flexibilidade e customização dos modelos de redes neurais, possibilitando avanços significativos na área. A especificação de um protocolo de comunicação entre os nós do ambiente distribuído é crucial para garantir a eficiência e a escalabilidade do treinamento em larga escala. Por fim, a análise comparativa dos resultados com outras bibliotecas existentes é importante para avaliar a efetividade da abordagem proposta e fornecer informações valiosas para futuros desenvolvimentos na área.

Objetivos

  1. Desenvolver uma biblioteca de operações em tensor
  2. Desenvolver uma biblioteca que implementa autodiferenciação sobre esses tensores
  3. Desenvolver uma arquitetura e protocolo de redes para realizar o treinamento de uma rede neural de forma distribuída
  4. Analisar os resultados do desenvolvimento com outras bibliotecas do campo.

Metodologia

  1. Estudo de implementações de bibliotecas de autodiferenciação tais como tensorflow, pytorch e tinygrad.
  2. Estudo de bibliotecas que implementam a parte de inferência sobre modelos de forma optimizada: whisper.cpp, llmapa.cpp
  3. Estudo de algoritmos de aprendizado e arquitetura de redes que implementam aprendizado de forma distribuída como o _DistBelief_ do Google
  4. Desenvolvimento da biblioteca de operações de tensor
  5. Implementação de autodiferenciação sobre essa biblioteca
  6. Desenvolvimento de protocolos e arquiteturas que permitam o treinamento de forma distribuída
  7. Análise e comparação entre as arquiteturas, assim como possível continuação do desenvolvimento das arquiteturas baseado no conhecimento adquirido na análise.
  8. Treinamento de algum modelo de ML não trivial nesta arquitetura, comparando com resultados em outras arquiteturas/bibliotecas

Cronograma

Mês Ponto de entrega intermediário
Abril Estudo e definição das arquiteturas a serem desenvolvidas
Maio Implementação da biblioteca de operação em tensores
Junho Implementação da biblioteca de autodiferenciação
Julho Implementação de protocolos e arquiteturas de redes 1
Agosto Implementação de protocolos e arquiteturas de redes 2
Setembro Análise das arquiteturas desenvolvidas
Outubro Continuação do desenvolvimento baseado na análise
Novembro Treinamento de um modelo não trivial na arquitetura desenvolvida

Este cronograma é apenas uma estimativa e pode sofrer alterações de acordo com o andamento do projeto. Além disso, pode haver a necessidade de incluir outras etapas não previstas inicialmente.

Ao final do projeto, espera-se ter uma biblioteca de operações em tensor com autodiferenciação e uma arquitetura de rede distribuída para treinamento de modelos de aprendizado de máquina. A análise dos resultados permitirá comparar a eficácia da solução proposta com outras bibliotecas e arquiteturas disponíveis no mercado.

Referências

  • Langer, Matthias, Zhen He, Wenny Rahayu, and Yanbo Xue. “Distributed Training of Deep Learning Models: A Taxonomic Perspective.” IEEE Transactions on Parallel and Distributed Systems 31, no. 12 (December 1, 2020): 2802–18. https://doi.org/10.1109/TPDS.2020.3003307.
  • McCandlish, Sam, Jared Kaplan, and Dario Amodei. “An Empirical Model of Large-Batch Training,” n.d.
  • Bahrampour, Soheil, Naveen Ramakrishnan, Lukas Schott, and Mohak Shah. 2016. “Comparative Study of Deep Learning Software Frameworks.” arXiv. http://arxiv.org/abs/1511.06435.