Qu'est-ce que bfloat16 ?

Format à virgule flottante sur 16 bits : 1 bit de signe, 8 bits d'exposant, 7 bits de mantisse. Son exposant étant identique à celui du FP32, sa plage est large ; malgré sa faible précision, il est utilisé pour l'entraînement d'IA. Le FP16 (exposant 5 bits, mantisse 10 bits) est plus précis mais de plage plus étroite.

Nom japonais: bfloat16

« bfloat16 » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Arithmétique des ordinateurs.

Domaine: Arithmétique des ordinateurs

S'entraîner : questions sur bfloat16

Quelle est la principale raison de l'emploi de bfloat16 pour l'entraînement en IA ?

  1. ASon exposant de 8 bits, identique à celui de FP32, offre une large plage de valeurs représentables
  2. BSa mantisse est plus longue que celle de FP32 et sa précision plus élevée
  3. CIl permet de calculer avec des opérations entières
Afficher la réponse et l'explication

Réponse : A. Son exposant de 8 bits, identique à celui de FP32, offre une large plage de valeurs représentables

bfloat16 est un format 16 bits comportant 1 bit de signe, 8 bits d'exposant et 7 bits de mantisse. Son exposant étant identique à celui de FP32, sa plage est quasiment la même : les valeurs très petites ou très grandes, comme les gradients d'entraînement, provoquent rarement dépassement ou soupassement de capacité, et la conversion depuis un modèle FP32 est simple. Sa précision est faible, mais l'entraînement tolère bien de petites erreurs, et le volume de données comme la surface des opérateurs sont divisés par deux. Sa mantisse est plus courte que celle de FP32, et le calcul se fait en virgule flottante, non en entiers.

Dans l'entraînement en précision mixte en IA, pourquoi conserve-t-on la valeur originale des poids (poids maîtres) en FP32 tout en effectuant la plupart des calculs en FP16 ou bfloat16 ?

  1. AParce que l'ajout de petites mises à jour aux poids dans un format peu précis les fait disparaître par absorption
  2. BParce que FP32 calcule plus vite que FP16 et qu'on lui confie tous les calculs de poids
  3. CParce que FP16 et bfloat16 ne permettent pas d'enregistrer les poids en mémoire
Afficher la réponse et l'explication

Réponse : A. Parce que l'ajout de petites mises à jour aux poids dans un format peu précis les fait disparaître par absorption

L'entraînement ajoute de nombreuses fois aux poids des valeurs très petites, « taux d'apprentissage × gradient ». FP16 et bfloat16 ont une mantisse courte : si la mise à jour est trop petite par rapport au poids, la somme est arrondie au poids initial et la mise à jour disparaît (absorption). Les poids sont donc conservés en FP32 pour accumuler correctement les mises à jour, et des copies converties en basse précision servent aux passes avant et arrière. Le calcul est plus rapide en basse précision, et les valeurs basse précision peuvent aussi être enregistrées.

« bfloat16 » dans les explications

Questions mentionnant « bfloat16 » (2)

  1. Quelle est la principale raison de l'emploi de bfloat16 pour l'entraînement en IA ?
  2. Dans l'entraînement en précision mixte en IA, pourquoi conserve-t-on la valeur originale des poids (poids maîtres) en FP32 tout en effectuant la plupart des calculs en FP16 ou bfloat16 ?

Termes associés

Mantisse Exposant Précision mixte Absorption (perte de chiffres) Additionneur à retenue anticipée Additionneur à retenue conservée (carry-save) Algorithme de Booth Arbre de Wallace Arithmétique saturée Arrondi au plus proche pair

Retour au glossaire