Pile matérielle et logicielle de l'IA

Lors du calcul de la fonction softmax exp(xi)/Σexp(xj), pourquoi soustrait-on souvent le maximum de chaque xi avant le calcul ?

  1. APour remplacer le résultat par une valeur approchée et accélérer le calcul
  2. BPour que le plus grand élément vaille toujours 0
  3. CParce que le résultat reste identique tout en évitant que les valeurs d'exp ne deviennent trop grandes et ne débordent (infini)
Afficher la réponse et l'explication

Réponse : C. Parce que le résultat reste identique tout en évitant que les valeurs d'exp ne deviennent trop grandes et ne débordent (infini)

exp croît très rapidement ; en FP16, par exemple, exp(x) dépasse la valeur maximale représentable dès que x dépasse environ 11. Soustraire une même constante m à tous les x multiplie numérateur et dénominateur par exp(−m) et ne change pas le résultat. En soustrayant le maximum, les exposants deviennent négatifs ou nuls et les valeurs d'exp restent inférieures ou égales à 1, sans débordement. Cette technique est particulièrement importante en IA, où l'on calcule en faible précision, et elle est aussi utilisée dans les implémentations rapides de l'attention.

S'entraîner sur ce thème Retour au thème

Autres questions sur Pile matérielle et logicielle de l'IA

  1. Quel est le principe du « décodage spéculatif », qui accélère l'inférence des grands modèles de langage ?
  2. Pourquoi la consultation de grandes tables d'embeddings, utilisées notamment dans les modèles de systèmes de recommandation, est-elle difficile à traiter pour le matériel d'IA ?
  3. Quel ordre de la pile logicielle d'IA, de la couche la plus proche de l'utilisateur à la plus proche du matériel, est correct ?
  4. Quelle différence entre « entraînement » et « inférence » d'un réseau de neurones est correcte ?
  5. 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 ?

Comparatifs sur ce thème