Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

AWQ (Activation-aware Weight Quantization)

ia

Définition

AWQ (Activation-aware Weight Quantization) est un algorithme de quantification post-entraînement pour LLMs développé par Lin et al. (MIT HAN Lab, 2023). Il se distingue de GPTQ par son approche : plutôt que de compenser les erreurs de quantification via la hessienne, AWQ identifie et protège les poids les plus "saillants" d'un LLM selon les activations, puis les quantifie avec plus de précision ou les laisse en float16. L'insight clé d'AWQ est que tous les poids d'un LLM ne sont pas égaux : environ 1% des poids correspondent à des canaux d'activation à forte magnitude et ont un impact disproportionné sur la qualité du modèle. Quantifier ces poids critiques en int4 naïvement dégrade significativement les performances, tandis que les 99% restants peuvent être quantifiés sans problème. AWQ identifie ces poids importants en analysant les statistiques d'activation sur un petit dataset de calibration. La stratégie d'AWQ est de "scaler" (mettre à l'échelle) les poids importants avant quantification via des facteurs de scaling par canal, rendant leur magnitude compatible avec la représentation int4. Ces facteurs de scaling sont absorbés dans la couche précédente, laissant le comportement mathématique du modèle inchangé. Le résultat est une quantification 4-bit de qualité supérieure à GPTQ avec un processus plus rapide. AWQ est aujourd'hui le format préféré pour les déploiements production avec vLLM et TGI (Text Generation Inference). vLLM supporte les modèles AWQ nativement avec des kernels CUDA optimisés (via l'implémentation llm-awq ou AutoAWQ), permettant un throughput d'inférence supérieur à GPTQ grâce à une meilleure utilisation des Tensor Cores. La bibliothèque AutoAWQ est la référence open-source pour créer et charger des modèles AWQ.

Quantification AWQ

from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

model_path = "mistralai/Mistral-7B-Instruct-v0.2"
quant_config = {"zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM"}

model = AutoAWQForCausalLM.from_pretrained(model_path, safetensors=True)
tokenizer = AutoTokenizer.from_pretrained(model_path)

model.quantize(tokenizer, quant_config=quant_config)
model.save_quantized("./mistral-7b-awq-4bit")
tokenizer.save_pretrained("./mistral-7b-awq-4bit")

Inférence AWQ avec vLLM

from vllm import LLM, SamplingParams

llm = LLM(
    model="casperhansen/mistral-7b-instruct-v0.2-awq",
    quantization="awq",
    dtype="auto",
    gpu_memory_utilization=0.90
)
outputs = llm.generate(["Explique le RAG en 3 points."],
                        SamplingParams(temperature=0.7, max_tokens=512))

Mémoire requise par taille de modèle

  • 7B AWQ 4-bit : ~4 GB VRAM (RTX 3060 12GB suffisant)
  • 13B AWQ 4-bit : ~7 GB VRAM (RTX 3080 10GB)
  • 34B AWQ 4-bit : ~18 GB VRAM (RTX 3090/4090 24GB)
  • 70B AWQ 4-bit : ~38 GB VRAM (2× A100 40GB ou 1× A100 80GB)

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis