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
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.
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.
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.
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:
Équations de quantification linéaire.
Exemple: quantification linéaire d'une matrice de poids.
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:
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)
quantize()
pour convertir le modèle. from quanto import quantize, freeze quantize(model, weights=torch.int8, activations=None)
freeze()
pour appliquer la quantification aux poids. freeze(model)
compute_module_sizes()
est une fonction personnalisée; voir DataCamp Datalab pour l'implémentation).
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
quantize()
comprend un étalonnage implicite; Une méthode calibration()
est disponible pour l'étalonnage personnalisé. model_name
dans le modèle souhaité. N'oubliez pas d'accepter les termes et conditions de l'étreinte.
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!