Notícias portuguesas
Mais recente
IA e Tecnologia

AlexNet: a engenharia CUDA por trás do avanço de 2012

Detalhe ilustrativo de um die de processador, não a GPU NVIDIA discutida no artigo.
Detalhe ilustrativo de um die de processador, não a GPU NVIDIA discutida no artigo.

Em 2012, o avanço do AlexNet provou que redes neurais profundas combinadas com GPUs habilitadas para CUDA podiam superar décadas de engenharia tradicional de visão computacional. No ImageNet Large Scale Visual Recognition Challenge (ILSVRC), Alex Krizhevsky, Ilya Sutskever e Geoffrey Hinton alcançaram uma taxa de erro top-5 de 15,3%, superando os 26,2% do segundo colocado por quase 11 pontos percentuais.

O gargalo de hardware e a solução

Na época, frameworks de deep learning como PyTorch e TensorFlow não existiam, e as GPUs de consumo tinham limites severos de memória.

  • Hardware de jogos para consumidores: a equipe treinou a rede em um quarto usando duas GPUs NVIDIA GTX 580 de nível consumidor. Cada placa tinha apenas 3 GB de VRAM, o que não bastava para conter toda a rede de 60 milhões de parâmetros em um único chip.
  • Paralelismo de modelo via CUDA: Alex Krizhevsky escreveu kernels CUDA C++ personalizados (cuda-convnet) para dividir a rede verticalmente entre as duas GPUs. Cada GPU armazenava metade dos neurônios e dos kernels em seu próprio pool de memória de 3 GB.
  • Comunicação seletiva entre GPUs: como transferir dados entre GPUs pelo barramento PCIe da placa-mãe era lento, Krizhevsky programou as GPUs para se comunicarem apenas em camadas específicas (como a camada 3). As outras camadas operavam de forma totalmente independente em cada placa, minimizando os gargalos de largura de banda.

Principais avanços de arquitetura

Ter poder de computação CUDA bruto permitiu que a equipe combinasse várias técnicas críticas que antes eram lentas demais para serem testadas em escala:

  • Arquitetura profunda: o AlexNet empilhava 8 camadas treináveis (5 camadas convolucionais seguidas de 3 camadas totalmente conectadas), muito mais profundas do que as redes neurais anteriores.
  • Função de ativação ReLU: em vez da matemática tradicional de tanh ou sigmoide, eles usaram Rectified Linear Units (ReLU). A ReLU é computacionalmente simples em CUDA e permitiu que a rede profunda treinasse cerca de seis vezes mais rápido sem o desaparecimento dos gradientes.
  • Aumento de dados e Dropout: enquanto as GPUs processavam a matemática de matrizes, a CPU gerava transformações de imagem em tempo real (recortes e espelhamentos) para evitar overfitting. Eles também aplicaram Dropout, desligando neurônios aleatoriamente durante o treinamento para forçar a rede a aprender características robustas.

Por que isso desencadeou a revolução do deep learning

Antes de setembro de 2012, a maioria dos pesquisadores de visão computacional dependia de algoritmos feitos à mão (como SIFT e HOG) para detectar bordas e formas, vendo as redes neurais profundas como uma teoria sem saída.

  • Tempo de treinamento: mesmo com otimização CUDA personalizada, o AlexNet levou de 5 a 6 dias para treinar com 1,2 milhão de imagens de alta resolução. Sem o CUDA, o mesmo experimento teria levado meses em CPUs.
  • Mudança na indústria: quando o AlexNet esmagou todos os métodos tradicionais no ImageNet, toda a comunidade de pesquisa em IA abandonou as características projetadas à mão quase da noite para o dia. Os pesquisadores correram para comprar GPUs NVIDIA, levando a NVIDIA a se voltar para a IA e a lançar a cuDNN dois anos depois.

Mais notícias: IA e Tecnologia