Actualités françaises
Dernier
Intelligence artificielle et technologie

AlexNet : l'ingénierie CUDA derrière la percée de 2012

Détail d'une puce de processeur, à titre d'illustration, et non le GPU NVIDIA dont parle l'article.
Détail d'une puce de processeur, à titre d'illustration, et non le GPU NVIDIA dont parle l'article.

En 2012, la percée d'AlexNet a prouvé que des réseaux de neurones profonds associés à des GPU compatibles CUDA pouvaient surpasser des décennies d'ingénierie traditionnelle en vision par ordinateur. Lors de l'ImageNet Large Scale Visual Recognition Challenge (ILSVRC), Alex Krizhevsky, Ilya Sutskever et Geoffrey Hinton ont obtenu un taux d'erreur top-5 de 15,3 %, battant les 26,2 % du deuxième de près de 11 points de pourcentage.

Le goulot d'étranglement matériel et sa solution

À l'époque, les frameworks de deep learning comme PyTorch et TensorFlow n'existaient pas, et les GPU grand public avaient de sévères limites de mémoire.

  • Matériel de jeu grand public : l'équipe a entraîné le réseau dans une chambre avec deux GPU NVIDIA GTX 580 grand public. Chaque carte n'avait que 3 Go de VRAM, ce qui ne suffisait pas pour contenir tout le réseau de 60 millions de paramètres sur une seule puce.
  • Parallélisme de modèle avec CUDA : Alex Krizhevsky a écrit des kernels CUDA C++ personnalisés (cuda-convnet) pour diviser le réseau verticalement entre les deux GPU. Chaque GPU stockait la moitié des neurones et des kernels dans son propre espace mémoire de 3 Go.
  • Communication sélective entre GPU : comme le transfert de données entre GPU via le bus PCIe de la carte mère était lent, Krizhevsky a programmé les GPU pour qu'ils ne communiquent qu'à certaines couches (comme la couche 3). Les autres couches fonctionnaient de façon totalement indépendante sur chaque carte, ce qui minimisait les goulots d'étranglement de bande passante.

Principales avancées d'architecture

La puissance brute de calcul CUDA a permis à l'équipe de combiner plusieurs techniques essentielles qui étaient auparavant trop lentes pour être testées à grande échelle :

  • Architecture profonde : AlexNet empilait 8 couches apprises (5 couches convolutives suivies de 3 couches entièrement connectées), ce qui était bien plus profond que les réseaux de neurones précédents.
  • Fonction d'activation ReLU : au lieu des mathématiques traditionnelles de tanh ou de sigmoïde, ils ont utilisé des unités linéaires rectifiées (ReLU). ReLU est simple à calculer en CUDA et a permis au réseau profond de s'entraîner environ six fois plus vite sans disparition des gradients.
  • Augmentation de données et Dropout : pendant que les GPU traitaient les calculs matriciels, le CPU générait en temps réel des transformations d'images (recadrages et retournements) pour éviter le surapprentissage. Ils ont aussi appliqué le Dropout, qui désactive aléatoirement des neurones pendant l'entraînement pour forcer le réseau à apprendre des caractéristiques robustes.

Pourquoi cela a déclenché la révolution du deep learning

Avant septembre 2012, la plupart des chercheurs en vision par ordinateur s'appuyaient sur des algorithmes conçus à la main (comme SIFT et HOG) pour détecter les contours et les formes, et considéraient les réseaux de neurones profonds comme une théorie sans issue.

  • Temps d'entraînement : même avec l'optimisation CUDA personnalisée, AlexNet a mis 5 à 6 jours à s'entraîner sur 1,2 million d'images haute résolution. Sans CUDA, la même expérience aurait pris des mois sur des CPU.
  • Basculement de l'industrie : lorsqu'AlexNet a écrasé toutes les méthodes traditionnelles à ImageNet, toute la communauté de recherche en IA a abandonné les caractéristiques conçues à la main presque du jour au lendemain. Les chercheurs se sont précipités pour acheter des GPU NVIDIA, poussant NVIDIA à se tourner vers l'IA et à publier cuDNN deux ans plus tard.

Plus d'actualités: Intelligence artificielle et technologie