Présentation de MACaQ

Huawei a publié MACaQ, un quantificateur interne destiné à l’inférence locale. Le projet, hébergé sur GitHub sous licence Apache 2.0, propose des pipelines de quantisation compatibles avec llama.cpp, vLLM, Diffusers et PyTorch. Chaque backend s’installe dans un environnement Python 3.12 dédié, ce qui garantit l’isolation des dépendances tout en conservant la possibilité d’exécuter les modèles sur CPU via llama.cpp.

Architecture et flux de quantisation

MACaQ applique une quantisation modèle‑agnostique à la fois sur les poids et les activations (W4A4) et supporte les formats GGUF 2‑, 3‑ et 4‑bits pour les modèles textuels. Le processus débute par la calibration sur un jeu de données représentatif, puis génère des checkpoints compactés au format .safetensors ou GGUF. La même chaîne de traitement s’étend aux transformeurs de diffusion, permettant la génération d’images, de vidéos et d’audio à partir de modèles quantifiés.

Sur le plan matériel, MACaQ a démontré la capacité de quantiser un modèle de 122 milliards de paramètres en 64 minutes en n’utilisant que 32,5 Go de mémoire. Cette performance repose sur des kernels de multiplication matricielle dense et groupée (W4A4) intégrés via deux pull‑requests CANN : ops-nn #12568 (kernels PTO‑ISA) et ops-tilelang #44 (kernels TileLang avec backend CCE). La compilation requiert des versions compatibles de CANN, PyTorch et torch_npu, et l’exécution complète du modèle dépend d’un runtime d’inférence Ascend.

Performances comparatives et limites

Les évaluations publiées montrent que MACaQ atteint une perplexité inférieure à celle obtenue avec MR‑GPTQ et DuQuant++, tout en conservant un temps de quantisation jusqu’à 11 fois plus court que les meilleures configurations de Llama‑3‑8B. La comparaison de fichiers GGUF pour le modèle Qwen3‑4B révèle une réduction notable de la taille du fichier et du KL‑divergence par rapport au FP16 de référence. Ces gains sont obtenus sans sacrifier la qualité de génération, que ce soit pour du texte, de l’image ou de l’audio.

Malgré ces résultats, l’utilisation de MACaQ impose plusieurs contraintes. La nécessité d’un runtime Ascend exclut les GPU non‑Ascend, et la mémoire disponible limite la taille maximale du modèle pouvant être quantifié en une seule passe. De plus, chaque backend requiert une configuration d’environnement distincte, ce qui augmente la complexité de déploiement pour les équipes disposant de ressources limitées.