← Back

Un guide pratique sur la quantification LLM

La plupart des problèmes d'inférence sont des problèmes de mémoire. La quantification réduit le poids du modèle afin que vous puissiez adapter le modèle et son cache aux GPU dont vous disposez, approfondir les lots et maintenir une latence stable. L'astuce consiste à maintenir la qualité à la hauteur de vos tâches. De plus, l'utilisation de la quantification peut entraîner une réduction de l'empreinte carbone pour la formation et l'inférence en raison d'une consommation d'énergie réduite.

Cet article est une ressource structurée et pratique distincte d'un blog classique, axée sur la fourniture d'informations systématiques et de mesures réalisables. Les lecteurs doivent se familiariser avec les concepts de base de l'inférence et de la quantification des modèles avant de poursuivre. Dans cet article, nous aborderons les prérequis, les méthodes de quantification et l'évaluation afin de garantir une compréhension globale du sujet.

Essayez Compute dès aujourd'hui
Sur Calculer, vous pouvez lancer un VllM serveur et choisissez des variantes de modèle quantifiées plus petites dans le catalogue. Définissez le contexte et les limites de sortie, puis mesurez le TTFT et les jetons/seconde à l'aide de vos propres instructions.

À quoi sert la quantification

La quantification stocke les poids contenant moins de bits que FP16/BF16. Le nombre de bits utilisés a un impact direct sur la consommation de mémoire et la précision du modèle. Le modèle fonctionne avec des noyaux de dé/quantification légers afin que les mathématiques restent suffisamment stables pour la plupart des tâches. Cependant, la quantification uniforme standard peut avoir un impact important sur la représentation des valeurs aberrantes et des activations, dégradant ainsi la précision. Le choix de la largeur de bits et de la stratégie d'étalonnage optimales lors de la quantification nécessite des tests approfondis pour équilibrer les économies de mémoire et la précision.

  • int8: bonne valeur par défaut pour la production : gain de mémoire élevé avec une perte de qualité minimale. La plage de valeurs qui peuvent être stockées est déterminée par la largeur de bits, et zéro point est représenté sous forme de valeurs entières spécifiques dans cette plage. La valeur maximale de la plage de données est utilisée pour la mise à l'échelle lors de la quantification.
  • int4: gain de mémoire plus important, décodage souvent plus rapide en cas de simultanéité élevée, risque accru de baisse de qualité en cas de raisonnement complexe ou de sorties longues. La plage de valeurs et la façon dont les points zéro sont représentés sont définies de la même manière par la largeur de bits, la valeur maximale étant à nouveau utilisée pour la mise à l'échelle.
  • Remarque : Les économies de mémoire réelles et le nombre de paramètres affectés peuvent varier en fonction de l'implémentation et de l'architecture du modèle.

La quantification ne modifie pas la tokenisation ni votre API. Cela modifie l'utilisation de la mémoire et le débit. La quantification est une méthode qui permet de réduire la taille du modèle et d'améliorer son efficacité en faisant correspondre des valeurs à virgule flottante à un ensemble plus restreint de valeurs discrètes.

Méthodes courantes dans la nature

  • AWQ (quantification du poids sensible à l'activation). Cette méthode est appliquée à divers paramètres de production et ajuste la quantification à l'aide d'activations réelles afin que les canaux importants conservent leur précision. Une efficacité de mémoire améliorée et de bons résultats int4 sont généralement obtenus pour de nombreux modèles de chat.
  • GPTQ. Quantification par canal après l'entraînement avec données d'étalonnage. Cette méthode appliquée est largement disponible ; les résultats obtenus varient selon la taille du groupe et les paramètres.
  • LLM.int 8/bits et octets. Chemin int8 populaire qui préserve les poids aberrants. Fiable lorsque vous souhaitez une réduction rapide et sûre.
  • Grains de style Marlin. Noyaux GPU optimisés qui accélèrent les matmuls à faible bit sur les cartes compatibles.
  • Formation axée sur la quantification (QAT). Les techniques avancées telles que la QAT visent à minimiser les pertes de précision mais nécessitent davantage de ressources de calcul.

Choisissez ce que votre étagère de service peut supporter et ce que votre famille de modèles propose en version préfabriquée. Évitez les chaînes d'outils ponctuelles, sauf si vous prévoyez de les entretenir.

Mathématiques de mémoire que vous pouvez faire sur une serviette

La taille de pondération de base pour FP16 est d'environ 2 octets par paramètre.

  • Modèle 7B, FP16 : ~14 Go pour les poids
  • 7B, int8 : ~7 À 8 GO
  • 7B, int4 : ~3,5 À 4 GO

Les petits LLM sont généralement plus sensibles à la perte d'informations lors de la quantification que les modèles plus grands.

Ajouter KV-Cache headroom : approximativement hidden_size × num_layers × 2 (K/V) × seq_len × batch en octets au moment de l'exécution (la précision dépend du moteur). Si la pression du cache augmente, le TTFT augmente et le nombre de jetons/seconde diminue.

Start in seconds with the fastest, most affordable cloud GPU clusters.

Launch an instance in under a minute. Enjoy flexible pricing, powerful hardware, and 24/7 support. Scale as you grow—no long-term commitment needed.

Try Compute now

Vitesse et débit

Cette section se concentre sur le débit et le traitement par lots. La quantification peut augmenter le débit car vous pouvez regrouper davantage de demandes avant que la mémoire ne soit épuisée. En outre, la quantification peut améliorer le débit et l'efficacité des modèles de service en réduisant l'utilisation de la mémoire et les exigences de calcul. Le préremplissage peut toujours être lié au calcul, de sorte que les gains varient en fonction du modèle, de la longueur de l'invite et des noyaux. Mesurez selon vos instructions. Ne promettez pas de rapidité sans données. Il est souvent nécessaire d'évaluer les compromis avant de décider d'utiliser des modèles quantifiés en fonction de leurs cas d'utilisation.

Quand ça aide

  • La quantification peut convenir aux utilisateurs confrontés à des contraintes de mémoire ou de coûts spécifiques, par exemple lorsque :
  • Vous atteignez régulièrement les limites de VRAM ou vous expulsez le cache en cas de charge.
  • Vous voulez des lots de plus grande taille avec le même objectif de latence.
  • Vous devez installer un modèle sur moins de GPU pour réduire les coûts.

Quand ça fait mal

  • Raisonnement long en plusieurs étapes avec des objectifs de précision stricts.
  • Tâches de sécurité ou de classification qui sont sensibles à de faibles variations de score.
  • Sorties très longues où les erreurs s'accumulent.

Exemples d'applications

La quantification et la mise en cache KV ne sont pas seulement des techniques à la mode, ce sont des outils fondamentaux qui permettent aux modèles de langage de fonctionner efficacement sans sacrifier la qualité. Prenons l'exemple des architectures de transformateurs telles que GPT : la mise en cache KV leur permet de gérer des séquences d'entrée plus longues tout en consommant moins d'énergie et de mémoire par inférence. La facilité d'utilisation de la mise en cache KV est particulièrement importante pour les modèles d'IA générant des textes plus longs, car elle permet de maintenir l'efficacité et les performances. Lorsque vous effectuez un déploiement sur des appareils soumis à des contraintes de ressources strictes, chaque octet et chaque milliseconde comptent. La mise en cache clé-valeur permet d'accélérer la génération de texte dans les modèles d'IA en mémorisant les informations importantes des étapes précédentes.

La quantification réduit l'empreinte mémoire de votre modèle en réduisant la précision du poids. Vous obtenez une inférence plus rapide tout en maintenant une qualité de texte élevée. Les méthodes de post-formation telles que GPTQ vous permettent de déployer de grands modèles de langage sans devoir recourir à une nouvelle formation, ce qui est idéal lorsque vous avez besoin de trouver le juste équilibre entre les performances et l'utilisation des ressources. La quantification post-entraînement (PTQ) quantifie un modèle déjà entraîné. Elle est plus rapide à mettre en œuvre mais peut réduire considérablement la précision. Les applications NLP exigent un texte cohérent et précis du point de vue contextuel, et vos modèles doivent fonctionner sur différents appareils et environnements. Le processus d'étalonnage est nécessaire pour trouver les valeurs min et max pour la quantification.

Pour créer des modèles efficaces, il faut comprendre comment la quantification affecte la précision et comment la mise en cache KV réduit les coûts de calcul. Vous aurez besoin d'exemples de code clairs et de didacticiels illustrant le processus de mise en œuvre. Comparez les modèles quantifiés int8 et int4 à l'aide de tableaux ou de diagrammes. Cela vous permet de voir les compromis entre la mémoire, la vitesse et la qualité. Choisissez l'approche qui répond aux besoins de votre application. Les modèles de langage classiques de grande taille nécessitent des ressources matérielles importantes proportionnelles à leur taille.

Rendre les modèles de langage efficaces comporte de réels défis. Vous devez maintenir la qualité de sortie sur divers sujets et longueurs d'entrée. Le matériel traditionnel a ses limites. Vos modèles déployés doivent générer des résultats fiables lorsque de vrais utilisateurs les consultent avec des entrées réelles. Restez au courant des documents de recherche, des articles et des guides de mise en œuvre. Ils vous aideront à prendre des décisions éclairées et à améliorer l'efficacité de vos modèles.

La quantification et la mise en cache KV ont un impact mesurable sur les performances et l'efficacité des modèles de langage. Concentrez-vous sur ces techniques et vous pourrez déployer de puissantes solutions NLP qui fonctionnent dans de nombreux cas d'utilisation. Maîtrisez l'utilisation de la mémoire, les coûts d'inférence et la complexité du déploiement.

Une boucle d'évaluation simple

  1. Choisissez 30 à 100 instructions réelles qui reflètent votre produit. Incluez des étuis rigides.
  2. Définir les chèques: mesures automatiques (correspondance exacte, BLEU/ROUGE le cas échéant), plus un examen humain rapide pour vérifier la fidélité. Des méthodes d'évaluation sont appliquées pour recueillir des preuves des performances du modèle, et le feedback humain est précieux pour évaluer la fidélité et la qualité.
  3. Exécutez le scénario de référence du FP16 sur votre matériel cible. Enregistrez le TTFT, les jetons/seconde et tous les scores de tâches critiques.
  4. Testez int8, puis int4 sur le même matériel et avec les mêmes paramètres. Veillez à ce que les limites de contexte et de sortie soient identiques.
  5. Comparez les deltas: qualité, TTFT, jetons/seconde et marge de mémoire GPU. Les différences de qualité et de performance sont déterminées en comparant ces indicateurs.
  6. Décidez: expédiez int8 si la qualité se situe dans les limites de tolérance ; considérez int4 uniquement si la qualité de vos tâches est maintenue.

Les résultats peuvent être présentés sous forme de tableaux ou de graphiques pour plus de clarté.

Un plan de déploiement qui évite les surprises

  • Trafic fictif pour un sous-ensemble d'utilisateurs.
  • Rambardes: plafonnez max_tokens, maintenez les pénalités de répétition et arrêtez les séquences de manière cohérente.
  • Restauration rapide via un drapeau caractéristique ou un itinéraire de passerelle. Les indicateurs de fonctionnalités peuvent être activés ou désactivés pour contrôler le déploiement et annuler rapidement les modifications si nécessaire.
  • Tableaux de bord pour le TTFT/TPS, les taux d'erreur et les échantillons de qualité. Des tableaux de bord et des outils de surveillance peuvent être intégrés au processus de déploiement pour offrir une meilleure visibilité et garantir le bon déroulement des opérations.

Résolution des problèmes

  • Les sorties semblent concises ou génériques. Cette section permet de résoudre les problèmes de quantification courants. Augmentez légèrement max_tokens ; vérifiez les tailles de groupe trop agressives dans les modèles int4.
  • La latence s'est améliorée mais augmente en cas de charge. Le cache est restreint. Réduisez les instructions, réduisez les majuscules ou ajoutez de la VRAM.
  • La qualité vacille en ce qui concerne les tâches de niche. Continuez sur cette voie pendant le FP16 ou essayez int8 avec une gestion des valeurs aberrantes pour surmonter les baisses de qualité.
  • ZOOM sur les longs chats. Raccourcissez l'historique, utilisez RAG ou passez à un préréglage plus grand pour corriger les erreurs OOM.

Dernières pensées

La quantification est l'un des moyens les plus simples d'ajuster les modèles, de maintenir des files d'attente saines et de contrôler les dépenses. Commencez par int8, mesurez vos données et passez à int4 uniquement lorsque les chiffres indiquent que c'est sûr.

Comprendre le mot « quantification » est essentiel pour prendre des décisions éclairées concernant l'optimisation et le déploiement des modèles.

Pour plus de détails techniques et des explications détaillées, consultez les références fournies par des sources faisant autorité.

Essayez Compute dès aujourd'hui
Lancer un modèle quantifié sur un VllM point de terminaison dans Calculer, conservez votre client OpenAI et comparez le TTFT et les jetons/seconde par rapport à votre base de référence avant le déploiement.

FAQ

Qu'est-ce que la quantification en LLM ?

Stockage et calcul avec moins de bits pour les pondérations des modèles (et parfois les activations) afin de réduire l'utilisation de la mémoire et d'augmenter le débit.

La technologie 4 bits est-elle suffisante ?

Souvent pour des discussions informelles et des résumés. Testez soigneusement le raisonnement, l'utilisation d'outils et les résultats longs. En cas de doute, commencez par int8.

La quantification accélère-t-elle toujours les choses ?

Non Il augmente d'abord la capacité en réduisant la mémoire. Les accélérations dépendent des noyaux, de la forme du lot et de la longueur de l'invite.

Qu'en est-il du KV‑Cache ? Est-il quantifiable ?

Certaines piles prennent en charge un cache KV de moindre précision. Les gains sont variables et peuvent affecter la qualité. Traiter comme une option avancée une fois que la quantification du poids s'est révélée sûre.

Dois-je réentraîner le modèle ?

Ne convient pas aux méthodes de post-formation telles que l'AWQ et le GPTQ. Vous exécutez tout au plus une étape de calibrage.

Les instructions ou la tokenisation seront-elles modifiées ?

Non La quantification est un détail de représentation interne.

Comment savoir si la qualité a chuté ?

Utilisez un petit kit d'évaluation et un laissez-passer humain rapide. Surveillez les pertes de structure, les étapes manquées et les dérives factuelles.

← Back