Qu'est-ce que Rétropropagation ?

Calcul qui, lors de l'entraînement d'un réseau de neurones, propage l'erreur entre sortie et valeur attendue de la sortie vers l'entrée pour obtenir le gradient de chaque poids (backpropagation).

Nom japonais: 逆伝播

« Rétropropagation » apparaît dans 8 questions d'entraînement réparties sur 2 thèmes, dont Pile matérielle et logicielle de l'IA, Arithmétique des ordinateurs.

Domaine: Pile matérielle et logicielle de l'IA

S'entraîner : questions sur Rétropropagation

Lors de l'entraînement d'un réseau de neurones en FP16 (demi-précision : 1 bit de signe, 5 d'exposant, 10 de mantisse), quel problème survient fréquemment et se traite en multipliant la perte par un facteur (loss scaling) ?

  1. ALa mantisse est trop longue et la consommation mémoire augmente
  2. BLa plage représentable est étroite et les petits gradients deviennent nuls
  3. CLes valeurs sont traitées comme des entiers et les fractions ne sont pas représentables
Afficher la réponse et l'explication

Réponse : B. La plage représentable est étroite et les petits gradients deviennent nuls

Avec seulement 5 bits d'exposant, FP16 ne représente que les valeurs positives d'environ 6 × 10⁻⁸ (dénormalisés compris) à 65504. Les gradients calculés pendant l'entraînement comportent de nombreuses valeurs très petites qui, en FP16, subissent un soupassement et deviennent nulles, ce qui bloque l'apprentissage. Le loss scaling multiplie la perte, par exemple par 1024, avant la rétropropagation afin de ramener les gradients dans la plage représentable, puis rétablit l'échelle avant la mise à jour des poids. La mantisse, de 10 bits, est plus courte que celle de FP32, et les fractions sont représentables.

Quelle différence entre « entraînement » et « inférence » d'un réseau de neurones est correcte ?

  1. AL'entraînement détermine les poids en répétant propagation avant, rétropropagation et mise à jour des poids ; l'inférence n'effectue que la propagation avant avec les poids fixés pour produire une réponse
  2. BL'entraînement comme l'inférence n'effectuent que la propagation avant
  3. CL'inférence met à jour les poids, et l'entraînement n'utilise pas de poids
Afficher la réponse et l'explication

Réponse : A. L'entraînement détermine les poids en répétant propagation avant, rétropropagation et mise à jour des poids ; l'inférence n'effectue que la propagation avant avec les poids fixés pour produire une réponse

L'entraînement répète sur un grand volume de données le cycle suivant : calcul successif de la sortie à partir de l'entrée (propagation avant), remontée de l'erreur par rapport à la bonne réponse de la sortie vers l'entrée pour obtenir le gradient de chaque poids (rétropropagation), puis correction progressive des poids selon ce gradient. L'inférence n'effectue que la propagation avant avec les poids déterminés à l'entraînement. La rétropropagation demande environ deux fois plus de calcul que la propagation avant et exige de conserver les résultats intermédiaires ; l'entraînement est donc bien plus lourd que l'inférence.

« Rétropropagation » dans les explications

Questions mentionnant « Rétropropagation » (8)

  1. Lors de l'entraînement d'un réseau de neurones en FP16 (demi-précision : 1 bit de signe, 5 d'exposant, 10 de mantisse), quel problème survient fréquemment et se traite en multipliant la perte par un facteur (loss scaling) ?
  2. Quelle différence entre « entraînement » et « inférence » d'un réseau de neurones est correcte ?
  3. Laquelle des propositions suivantes n'explique pas pourquoi la mémoire nécessaire à l'entraînement est bien plus grande que pour l'inférence du même modèle ?
  4. Quelle définition du « graphe de calcul » utilisé dans les frameworks et compilateurs d'IA est correcte ?
  5. Quelle est la principale raison pour laquelle les environnements d'exécution d'inférence comme TensorRT ou ONNX Runtime sont plus rapides qu'une inférence directe dans le framework d'entraînement ?
  6. Quelle définition du parallélisme de données pour l'entraînement sur plusieurs GPU est correcte ?
  7. Quelle définition du point de contrôle des gradients (recalcul des activations) utilisé en entraînement est correcte ?
  8. Quelle approximation est couramment utilisée pour estimer le nombre d'opérations nécessaires à l'entraînement d'un modèle Transformer, avec N le nombre de paramètres et D le nombre de jetons d'entraînement ?

Termes associés

GPU Inférence Exposant Mantisse Graphe de calcul ONNX Moteur d'inférence (runtime) NPU (unité de traitement neuronal) Parallélisme de données All-reduce

Retour au glossaire