La quantification permet aux modèles d'apprentissage automatique d'utiliser moins de mémoire et de puissance de calcul pour des réponses plus rapides et ainsi réduire les coûts. Cependant, elle peut rendre l'inférence de l'IA moins précise.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
La quantification est une technique permettant d'alléger la charge liée à l'exécution des modèles d'apprentissage automatique et d'intelligence artificielle (IA). Il vise à réduire la mémoire nécessaire à l'inférence de l'IA . La quantification est particulièrement utile pour les grands modèles de langage (LLM).
En général, la quantification est le processus de conversion d'un signal numérique d'un format très précis en un format qui occupe moins d'espace et qui est donc un peu moins précis. L'objectif est de réduire la taille du signal afin qu'il puisse être traité plus rapidement. Dans les domaines de l'apprentissage automatique et de l'IA, la quantification vise à rendre les modèles plus rapides, à utiliser moins de puissance de calcul, ou les deux. Enfin cela permet aux utilisateurs d'exécuter les modèles d'IA sur du matériel moins cher, tout en sacrifiant très peu la précision.
Pour visualiser dans quelle mesure l'inférence de l'IA occupe moins de mémoire, imaginez un tuyau d'une certaine largeur, peut-être quelques centimètres, et imaginez que quelqu'un doive y faire rouler un grand nombre de billes. Si vous travaillez avec de grosses billes; seules deux ou trois pourront passer par un point du tunnel à la fois. Si vous utilisez de petites boules, il est possible d'en faire passer beaucoup plus en même temps. Par conséquent, l'utilisation de petites billes permettra qu'un plus grand nombres de billes pourront passer dans le tuyau.
La quantification convertit les grosses billes en petites billes. Les informations nécessaires au calcul des inférences occupent moins de place dans la mémoire, par conséquent, plus d'informations peuvent être acheminées plus rapidement et le traitement par l'IA est plus efficace.
Les modèles utilisés pour l'apprentissage automatique (un type d'IA) sont extrêmement complexes. Ils consomment d'énormes quantités de mémoire et de puissance de calcul. En réalité, la popularité croissante de l'IA a entraîné des pénuries d'énergie : les serveurs qui exécutent des modèles d'apprentissage automatique avancés consomment d'énormes quantités d'électricité. Dans certains cas, le réseau électrique public ne peut pas répondre à l'ensemble des besoins. Ceci a conduit à un certain nombre de solutions créatives, qui vont de l'utilisation accrue de l'énergie solaire à la réactivation de centrales nucléaires.
La quantification vise à réduire la charge de calcul de l'autre côté, de sorte que les modèles d'IA eux-mêmes consomment moins d'énergie. Pour les développeurs et les entreprises qui exécutent des modèles d'IA, cela peut contribuer à rendre l'IA beaucoup plus rentable, car tout le monde ne peut pas se permettre de remettre en service d'anciennes centrales nucléaires.
Pour comprendre en quoi la quantification affecte la précision, imaginez que vous demandez votre chemin à quelqu'un. La personne peut fournir une liste de chaque changement de rue, en précisant le nom de chaque rue ainsi que le nom de la rue précédente et de la rue suivante pour chaque rue. Les instructions sont ainsi hautement précises, mais peuvent être difficiles à retenir. La personne aurait aussi pu indiquer quelque chose comme « deuxième à gauche, quatrième à droite, premier à gauche ». Cela serait beaucoup plus facile à retenir, mais moins précis.
Dans l'IA, la quantification fonctionne par la réduction du nombre de bits utilisés par les points de données. La perte de bits entraîne une perte de précision. Il peut en résulter plus d'erreurs dans le résultat (tout comme un conducteur peut mal comprendre le « quatrième gauche » dans l'exemple ci-dessus sans le nom de la rue). Cependant, il existe différents types de quantification, dont certains sont plus précis que d'autres.
En pratique, les entreprises ou les utilisateurs présentent des scénarios d'utilisation dans lesquels le modèle d'IA quantifié se révèle « suffisant ». La plupart du temps, le scénario d'utilisation ne nécessite pas de résultats très précis. Prenons l'exemple du suivi des tendances et des mentions sur les réseaux sociaux, il n'est pas nécessaire de disposer de points de données exacts pour se concentrer sur le sentiment général et l'engagement.
La quantification post-entraînement (PTQ) correspond à l'application de la quantification à des modèles préexistants qui ont déjà été entraînés. La PTQ peut être appliquée relativement rapidement aux modèles entraînés. Elle est différente de l'apprentissage sensible à la quantification (QAT), qui a lieu avant qu'un modèle ne soit formé et nécessite une puissance de calcul assez importante. La PTQ fonctionne en convertissant les nombres à virgule flottante en nombres à virgule fixe.
La représentation à virgule flottante est une méthode très précise pour représenter les nombres, couramment utilisée dans l' apprentissage automatique et l'apprentissage en profondeur. Les nombres stockés par le biais d'une représentation à virgule flottante occupent un nombre défini de bits, soit 16 soit 32 (selon le type de représentation à virgule flottante utilisé).
De nombreux types de quantification réduisent ce nombre à 8 bits. Il en résulte que l'espace mémoire occupé par les nombres quantifiés diminue de moitié, voire des trois quarts. Évidemment, avec moins de bits, les valeurs quantifiées ne sont pas aussi précises que les nombres à virgule flottante, tout comme un nombre avec moins de chiffres après la virgule (par exemple, 3,14) est moins précis qu'un nombre avec plus de décimales (par exemple, 3,141592654).
La quantification pondérée en fonction de l'activation (AWQ) est une technique qui vise à équilibrer les améliorations en efficacité et en précision. AWQ protège les pondérations les plus importantes d'un modèle contre les altérations. (Les pondérations sont des valeurs qui mesurent les rapports entre les éléments dans un ensemble de données.) Repensez à l'exemple d'orientation ci-dessus. Imaginez qu'au lieu d'indiquer « deuxième à gauche, quatrième à droite, première à gauche », l'interlocuteur réponde : « deuxième à gauche, à droite sur la 12e rue, puis première à gauche ». La dernière option contient des informations plus précises, mais reste une liste d'instructions relativement courte (et facile à retenir). AWQ fonctionne de manière similaire, en conservant certains entiers d'un modèle inchangés tandis que d'autres sont modifiés.
Cloudflare Workers AI prend en charge plusieurs grands modèles de langage (LLM) intégrant à la fois la quantification à virgule flottante et AWQ, permettant ainsi d'alléger la mémoire et d'utiliser moins de puissance de calcul, tout en conservant leur précision. Pour en savoir plus, consultez la documentation de Cloudflare Workers AI.