Maison >Périphériques technologiques >IA >Quantification pour les modèles de langue importants (LLMS): Réduisez efficacement la taille des modèles d'IA

Quantification pour les modèles de langue importants (LLMS): Réduisez efficacement la taille des modèles d'IA

Christopher Nolan
Christopher Nolanoriginal
2025-03-05 09:10:13789parcourir

Exécutez votre propre chatppt sur votre ordinateur portable: un guide de la quantification LLM

Avez-vous déjà rêvé d'exécuter votre propre chatte directement sur votre ordinateur portable? Grâce aux progrès des modèles de grande langue (LLM), cela devient une réalité. La clé est la quantification - une technique qui rétrécit ces modèles massifs pour s'adapter au matériel des consommateurs avec une perte de performances minimale (une fois bien fait!). Ce guide explique la quantification, ses méthodes, et vous montre comment quantifier un modèle en utilisant la bibliothèque Quanto de Hugging Face en deux étapes faciles. Suivez à l'aide du datacamp datalab.

La taille toujours croissante de LLMS

LLMS ont explosé dans la complexité. GPT-1 (2018) avait 0,11 milliard de paramètres; GPT-2 (2019), 1,5 milliard; GPT-3 (2020), un énorme 175 milliards; et GPT-4 possède plus de 1 billion. Cette croissance massive crée un goulot d'étranglement de mémoire, entravant à la fois l'entraînement et l'inférence et la limitation de l'accessibilité. La quantification résout cela en réduisant la taille du modèle tout en préservant les performances.

Comprendre la quantification

La quantification est une technique de compression du modèle qui réduit la précision des poids et activations d'un modèle. Cela implique de convertir des données d'un type de précision supérieur (par exemple, un point flottant 32 bits) en un type de précision inférieur (par exemple, entier 8 bits). Moins de bits signifient un modèle plus petit, consommant moins de mémoire, de stockage et d'énergie.

Pensez à la compression d'images: les images haute résolution sont compressées pour une utilisation Web, la réduction de la taille et le temps de chargement au prix de certains détails. De même, la quantification d'un LLM réduit les demandes de calcul, lui permettant de fonctionner sur du matériel moins puissant.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Compression d'image pour le chargement Web plus rapide.

La quantification introduit le bruit (erreur de quantification), mais la recherche se concentre sur la minimisation pour maintenir les performances.

La théorie derrière la quantification

La quantification cible généralement les poids du modèle - les paramètres déterminant la résistance des connexions entre les neurones. Ces poids sont initialement aléatoires et ajustés pendant l'entraînement. Un exemple simple est d'arrondi des poids à moins de décimales.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Exemple: une matrice de poids (à gauche) et sa version quantifiée (à droite).

La différence entre les matrices d'origine et quantifiée est l'erreur de quantification.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Matrice d'erreur de quantification.

Dans la pratique, la quantification implique de modifier le type de données (casse-caisse). Par exemple, la conversion de Float32 (4 octets par paramètre) en INT8 (1 octet par paramètre) réduit considérablement l'utilisation de la mémoire.

point flottant du cerveau (BF16) et casse-caisse

BF16, développé par Google, offre un équilibre entre la gamme dynamique de Float32 et l'efficacité de Float16. La baisse - convertir d'une précision supérieure à un type de données de précision inférieur - augmente la vitesse mais peut entraîner une perte de données et une propagation d'erreur, en particulier avec des types de données plus petits.

Types de quantification

Plusieurs types de quantification existent:

  • Quantification linéaire: MAPS Valeurs à virgule flottante à une plage de virgule fixe uniformément. Il s'agit de calculer les valeurs minimales / maximales, l'échelle, le point zéro, la quantification et la déquantification (pendant l'inférence).

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Équations de quantification linéaire.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Exemple: quantification linéaire d'une matrice de poids.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Erreur de déquantification et de quantification.

  • Quantification dans le sens du bloc: Quantifie les poids dans des blocs plus petits, manipulant plus efficacement les distributions non uniformes.

  • Poids par rapport à la quantification de l'activation: La quantification peut être appliquée aux poids (statiques) et aux activations (dynamique). La quantification d'activation est plus complexe.

  • La quantification post-formation (PTQ) par rapport à la formation de quantification (QAT): PTQ quantifie un modèle pré-formé; QAT modifie la formation pour simuler les effets de quantification, conduisant à une meilleure précision mais à une augmentation du temps de formation.

Techniques d'étalonnage

Certaines méthodes nécessitent un étalonnage - inférentissage de l'inférence sur un ensemble de données pour optimiser les paramètres de quantification. Les techniques incluent l'étalonnage du centile et l'étalonnage de l'écart moyen / standard. Des méthodes comme Qlora évitent l'étalonnage.

outils pour la quantification

Plusieurs bibliothèques Python prennent en charge la quantification, y compris Pytorch et TensorFlow. La bibliothèque Quanto de Hugging Face simplifie le processus pour les modèles Pytorch.

Quantification d'un modèle avec les étreintes de Quanto de Face

Voici un guide étape par étape utilisant le modèle Pythia 410M:

  1. Chargez le modèle: Chargez le modèle et le jetons pré-formés.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "EleutherAI/pythia-410m"
model = AutoModelForCausalLM.from_pretrained(model_name, low_cpu_mem_usage=True)
tokenizer = AutoTokenizer.from_pretrained(model_name)
  1. Quantifier: Utiliser quantize() pour convertir le modèle.
from quanto import quantize, freeze
quantize(model, weights=torch.int8, activations=None)
  1. Freeze: Utiliser freeze() pour appliquer la quantification aux poids.
freeze(model)
  1. Vérifier les résultats: Vérifiez la taille réduite du modèle et l'inférence de test. (Remarque: compute_module_sizes() est une fonction personnalisée; voir DataCamp Datalab pour l'implémentation).

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Conclusion

La quantification rend les LLM plus accessibles et efficaces. En comprenant ses techniques et en utilisant des outils tels que les étreintes de Face, vous pouvez exécuter des modèles puissants sur du matériel moins puissant. Pour les modèles plus grands, envisagez de mettre à niveau vos ressources.

FAQ de quantification LLM

  • QAT vs PTQ: QAT fonctionne généralement mieux mais nécessite plus de ressources pendant la formation.
  • bibliothèque quanto: prend en charge PTQ et QAT. quantize() comprend un étalonnage implicite; Une méthode calibration() est disponible pour l'étalonnage personnalisé.
  • Précision: INT4 et INT2 La quantification est possible.
  • Accès aux modèles de visage étreintes: Changer la variable model_name dans le modèle souhaité. N'oubliez pas d'accepter les termes et conditions de l'étreinte.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn