Noticias en español
El último
IA y tecnología

AlexNet: la ingeniería CUDA detrás del avance de 2012

Detalle ilustrativo de un die de procesador, no la GPU de NVIDIA de la que trata el artículo.
Detalle ilustrativo de un die de procesador, no la GPU de NVIDIA de la que trata el artículo.

En 2012, el avance de AlexNet demostró que las redes neuronales profundas combinadas con GPU compatibles con CUDA podían superar décadas de ingeniería tradicional en visión por computador. En el ImageNet Large Scale Visual Recognition Challenge (ILSVRC), Alex Krizhevsky, Ilya Sutskever y Geoffrey Hinton lograron una tasa de error top-5 del 15,3 %, superando el 26,2 % del segundo clasificado por casi 11 puntos porcentuales.

El cuello de botella del hardware y la solución

En aquel momento, los frameworks de deep learning como PyTorch y TensorFlow no existían, y las GPU de consumo tenían límites de memoria severos.

  • Hardware de juegos de consumo: el equipo entrenó la red en un dormitorio con dos GPU NVIDIA GTX 580 de gama de consumo. Cada tarjeta tenía solo 3 GB de VRAM, lo que no bastaba para alojar toda la red de 60 millones de parámetros en un solo chip.
  • Paralelismo de modelo mediante CUDA: Alex Krizhevsky escribió kernels CUDA C++ personalizados (cuda-convnet) para dividir la red verticalmente entre las dos GPU. Cada GPU almacenaba la mitad de las neuronas y los kernels en su propio bloque de memoria de 3 GB.
  • Comunicación selectiva entre GPU: como transferir datos entre GPU a través del bus PCIe de la placa base era lento, Krizhevsky programó las GPU para que se comunicaran solo en capas concretas (como la capa 3). Las demás capas funcionaban de forma totalmente independiente en cada tarjeta, lo que minimizaba los cuellos de botella de ancho de banda.

Principales avances de arquitectura

Disponer de potencia de cómputo CUDA en bruto permitió al equipo combinar varias técnicas críticas que antes eran demasiado lentas para probarse a escala:

  • Arquitectura profunda: AlexNet apilaba 8 capas entrenables (5 capas convolucionales seguidas de 3 capas totalmente conectadas), mucho más profunda que las redes neuronales anteriores.
  • Función de activación ReLU: en lugar de las matemáticas tradicionales de tanh o sigmoide, usaron unidades lineales rectificadas (ReLU). ReLU es computacionalmente simple en CUDA y permitió que la red profunda se entrenara unas seis veces más rápido sin que los gradientes se desvanecieran.
  • Aumento de datos y Dropout: mientras las GPU procesaban las matemáticas de matrices, la CPU generaba transformaciones de imagen en tiempo real (recortes y volteos) para evitar el sobreajuste. También aplicaron Dropout, que apaga neuronas al azar durante el entrenamiento para obligar a la red a aprender características robustas.

Por qué desencadenó la revolución del deep learning

Antes de septiembre de 2012, la mayoría de los investigadores de visión por computador confiaban en algoritmos diseñados a mano (como SIFT y HOG) para detectar bordes y formas, y veían las redes neuronales profundas como una teoría sin salida.

  • Tiempo de entrenamiento: incluso con la optimización CUDA personalizada, AlexNet tardó de 5 a 6 días en entrenarse con 1,2 millones de imágenes de alta resolución. Sin CUDA, el mismo experimento habría llevado meses en CPU.
  • Cambio en la industria: cuando AlexNet aplastó todos los métodos tradicionales en ImageNet, toda la comunidad de investigación en IA abandonó las características diseñadas a mano casi de la noche a la mañana. Los investigadores corrieron a comprar GPU de NVIDIA, lo que llevó a NVIDIA a girar hacia la IA y a lanzar cuDNN dos años después.

Más noticias: IA y tecnología