Qu'est-ce que Quantification post-entraînement ?

Méthode qui, après l'entraînement, examine la plage des valeurs des poids et activations du modèle sur des données représentatives, puis les convertit en faible précision. PTQ.

Nom japonais: 学習後量子化

« Quantification post-entraînement » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Pile matérielle et logicielle de l'IA.

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

Comment fonctionne la quantification post-entraînement

La quantification post-entraînement (PTQ) part d'un modèle déjà entraîné en virgule flottante 32 bits et projette chaque tenseur sur une petite grille d'entiers, le plus souvent INT8. Chaque valeur réelle est représentée par un entier multiplié par un facteur d'échelle, parfois avec un décalage de point zéro. Les poids sont figés après l'entraînement ; leurs échelles peuvent donc être calculées directement à partir des valeurs stockées, souvent séparément pour chaque canal de sortie afin de suivre les différences entre filtres. Aucune mise à jour par gradient n'a lieu : la PTQ se termine généralement en quelques minutes et ne nécessite pas de données d'entraînement étiquetées, seulement un petit ensemble d'entrées pour l'étalonnage.

L'étalonnage et le compromis d'écrêtage

Les activations changent à chaque entrée ; leur plage ne peut donc pas être lue dans le modèle lui-même. L'étalonnage fait passer quelques centaines d'entrées représentatives dans le réseau, enregistre la distribution des activations de chaque couche et choisit la plage à projeter sur la grille INT8 symétrique de -127 à 127. Utiliser le maximum absolu garantit qu'aucune valeur n'est écrêtée, mais quelques valeurs aberrantes rares étirent alors l'échelle et gaspillent la plupart des niveaux disponibles pour des valeurs qui n'apparaissent presque jamais. Restreindre la plage pour couvrir l'essentiel de la distribution écrête les valeurs aberrantes tout en donnant une résolution plus fine aux valeurs courantes.

PTQ et entraînement conscient de la quantification

L'entraînement conscient de la quantification (QAT) insère un arrondi simulé dans la passe avant pendant l'entraînement ou l'affinage (fine-tuning), afin que les poids apprennent à tolérer l'erreur de quantification. La PTQ saute entièrement cette étape, ce qui la rend bien moins coûteuse et utilisable lorsque la chaîne d'entraînement d'origine ou le jeu de données n'est pas disponible. Le prix à payer est la précision : en INT8, la perte est souvent faible, mais à mesure que la largeur en bits descend vers 4 bits, l'erreur d'arrondi croît rapidement et la PTQ seule peut ne plus être acceptable. La QAT est la solution de repli habituelle, car elle peut préserver la précision à des résolutions où la PTQ échoue.

Pourquoi c'est important pour le matériel d'inférence

Un poids INT8 occupe un quart de la mémoire d'un poids FP32 : le même modèle nécessite moins de capacité DRAM et, surtout, moins de bande passante mémoire par inférence. Les unités de multiplication-accumulation entières sont aussi bien plus petites et consomment moins d'énergie par opération que les unités flottantes, c'est pourquoi les NPU et les accélérateurs embarqués (edge) sont construits autour de matrices d'entiers basse précision. La PTQ est le moyen le plus courant de porter un modèle existant sur ce type de matériel, et les chaînes d'outils de déploiement proposent généralement une étape d'étalonnage à cet effet.

S'entraîner : questions sur Quantification post-entraînement

Quelle différence entre la quantification post-entraînement (PTQ) et l'entraînement tenant compte de la quantification (QAT) est correcte ?

  1. ALa PTQ quantifie avant l'entraînement, la QAT après
  2. BLa PTQ quantifie directement un modèle entraîné ; la QAT simule l'effet de la quantification pendant l'entraînement et ajuste les poids pour limiter l'erreur en précision réduite
  3. CNi la PTQ ni la QAT ne quantifient
Afficher la réponse et l'explication

Réponse : B. La PTQ quantifie directement un modèle entraîné ; la QAT simule l'effet de la quantification pendant l'entraînement et ajuste les poids pour limiter l'erreur en précision réduite

La quantification post-entraînement réduit la précision des poids (et des activations) d'un modèle entraîné après avoir examiné les plages de valeurs sur une petite quantité de données représentatives ; elle est simple, mais la précision chute d'autant plus que le nombre de bits diminue. L'entraînement tenant compte de la quantification simule l'arrondi de quantification dans la propagation avant et ajuste les poids en intégrant cette erreur ; la précision est ainsi mieux préservée même avec une faible précision comme 4 bits.

Dans une quantification post-entraînement des activations en INT8, quel est l'objectif de l'« étalonnage » (calibration) ?

  1. AFaire passer des données d'entrée représentatives pour examiner la plage de valeurs des activations de chaque couche et déterminer l'échelle de quantification
  2. BRégler précisément la marche de l'horloge du GPU
  3. CAjuster le rendu des couleurs de l'écran
Afficher la réponse et l'explication

Réponse : A. Faire passer des données d'entrée représentatives pour examiner la plage de valeurs des activations de chaque couche et déterminer l'échelle de quantification

Les poids sont fixés à la fin de l'entraînement, mais les valeurs des activations varient selon l'entrée. On fait donc passer quelques centaines d'entrées proches de l'usage réel pour examiner la plage et la distribution des activations de chaque couche, puis on détermine quelle plage faire correspondre à l'intervalle INT8 de −127 à 127 (l'échelle). S'aligner sur le maximum fait perdre de la finesse à cause des valeurs aberrantes ; on resserre donc parfois légèrement la plage pour couvrir l'essentiel de la distribution.

Questions fréquentes

Quelle est la différence entre quantification post-entraînement et entraînement conscient de la quantification ?

La quantification post-entraînement convertit un modèle déjà entraîné en basse précision sans réentraînement, à l'aide d'un petit ensemble d'étalonnage seulement. L'entraînement conscient de la quantification simule l'arrondi pendant l'entraînement pour que les poids s'y adaptent, ce qui coûte une phase d'entraînement mais préserve mieux la précision à très faible largeur en bits, comme 4 bits.

Pourquoi la quantification post-entraînement a-t-elle besoin de données d'étalonnage ?

Les poids sont connus après l'entraînement, mais les valeurs d'activation dépendent de l'entrée ; leurs plages doivent donc être observées en faisant passer des entrées représentatives dans le modèle. Ces plages observées fixent les facteurs d'échelle qui projettent les activations sur la grille d'entiers.

La quantification post-entraînement nécessite-t-elle le jeu de données d'entraînement d'origine ?

Ni le jeu de données d'entraînement complet ni les étiquettes ne sont nécessaires. Quelques centaines d'entrées non étiquetées, représentatives de l'utilisation réelle, suffisent normalement pour étalonner les plages d'activation.

« Quantification post-entraînement » dans les explications

Questions mentionnant « Quantification post-entraînement » (2)

  1. Quelle différence entre la quantification post-entraînement (PTQ) et l'entraînement tenant compte de la quantification (QAT) est correcte ?
  2. Dans une quantification post-entraînement des activations en INT8, quel est l'objectif de l'« étalonnage » (calibration) ?

Termes associés

Entraînement tenant compte de la quantification INT8 All-reduce Attention Cache KV Checkpointing de gradients Compilateur d'IA Décodage spéculatif Distillation des connaissances Élagage (pruning)

Retour au glossaire