Apprentissage vs inférence en IA : les principales différences
L’apprentissage détermine les poids d’un modèle en répétant un très grand nombre de fois les étapes suivantes : propager les données vers l’avant pour calculer la perte, calculer les gradients par rétropropagation, puis mettre à jour les poids avec l’optimiseur. L’inférence n’effectue que la propagation avant, avec des poids figés, pour répondre à de nouvelles entrées. L’apprentissage conserve, en plus des poids, les gradients, l’état de l’optimiseur et les activations nécessaires à la rétropropagation : il demande donc beaucoup plus de mémoire et de calcul que l’inférence du même modèle. Un calcul d’inférence est petit, mais il s’exécute à chaque utilisation, et la rapidité de réponse y est primordiale.
| Critère | Apprentissage (entraînement) | Inférence |
|---|---|---|
| Objectif | Déterminer les poids du modèle à partir des données | Répondre à de nouvelles entrées avec des poids figés |
| Nature des calculs | Répétition de : propagation avant → calcul de la perte → calcul des gradients par rétropropagation → mise à jour des poids par l’optimiseur | Propagation avant uniquement |
| Ordre de grandeur du calcul | Environ 3 fois la propagation avant par entrée (la rétropropagation coûte environ 2 fois la propagation avant). Pour un Transformer, environ 6 × nombre de paramètres × nombre de tokens au total | Environ 2N par token pour un modèle à N paramètres |
| Mémoire nécessaire | Poids, gradients, état de l’optimiseur (deux pour Adam) et activations pour la rétropropagation. Tout en FP32 : 16 octets par paramètre, plus les activations | Poids et activations en cours de calcul (plus le cache KV pour les grands modèles de langage). En FP16 : 2 octets par paramètre |
| Formats numériques | Précision mixte en BF16 ou FP16 (poids maîtres en FP32) | FP16 ou BF16, ou formats quantifiés comme l’INT8 ou l’INT4 |
| Taille de lot | Grands lots pour augmenter le taux d’utilisation des unités de calcul | Petite lorsque la réponse est urgente (parfois 1). Les serveurs regroupent plusieurs requêtes pour gagner en efficacité |
| Performance recherchée | Débit (temps jusqu’à la fin de l’apprentissage, taux d’utilisation des unités de calcul) | Équilibre entre latence (temps de réponse à une requête) et débit, et coût par traitement |
| Matériel | De nombreux GPU ou accélérateurs dotés d’une HBM de grande capacité et d’une forte puissance de calcul, reliés par un réseau rapide | Très varié : des GPU de centre de données et accélérateurs d’inférence jusqu’aux NPU de smartphones et aux microcontrôleurs |
| Parallélisation | Parallélisme de données, de tenseurs et de pipeline. Les gradients sont agrégés par all-reduce | Traitement en parallèle de plusieurs requêtes. Les grands modèles sont répartis sur plusieurs puces, notamment par parallélisme de tenseurs |
| Énergie | Un apprentissage fait tourner de nombreuses puces pendant longtemps et consomme beaucoup d’électricité | Faible par exécution, mais exécutée à chaque utilisation ; avec un usage intensif, le total devient important |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.