SuperAPI AI 工具集

awq-quantization

智能体与模型

查看项目

更新于 10-15 19:53

技能介绍

AWQ(Activation-aware Weight Quantization)是一种 4-bit 权重量化方法,核心假设是权重重要性并不相同:它依据激活模式识别并保护约 1% 的显著权重,从而降低量化误差,且无需混合精度开销。官方资料称其精度损失通常小于 5%,相比 FP16 可获得约 2.5-3 倍推理加速。

适用场景:需要在有限显存下部署 7B-70B 大模型;部署指令微调或对话模型(AWQ 泛化性更好);使用 vLLM 做生产推理;拥有 Ampere 及以上 GPU(A100、H100、RTX 40xx)以启用 Marlin 内核。若更看重生态兼容性或使用 ExLlamaV2 后端,可考虑 GPTQ;若需要零校准开销或 QLoRA 微调,可考虑 bitsandbytes。

安装:pip install autoawq;带优化 CUDA 内核与 Flash Attention 用 pip install autoawq[kernels];Intel CPU/XPU 用 pip install autoawq[cpu]。要求 Python 3.8+、CUDA 11.8+、计算能力 7.5+。

使用方式:可通过 AutoAWQForCausalLM.from_quantized 加载预量化模型(如 TheBloke/Mistral-7B-Instruct-v0.2-AWQ),并设置 fuse_layers=True 启用融合注意力;也可用 model.quantize 对自有模型量化,配置项包括 zero_point、q_group_size(推荐 128)、w_bit=4、version(GEMM 适合批量,GEMV 适合单 token,Marlin 在 A100/H100 上约快 2 倍,exllama 支持 AMD GPU)。量化 7B 约需 10-15 分钟,70B 约 1 小时。支持自定义校准数据(calib_data、max_calib_samples、max_calib_seq_len)。

集成:HuggingFace Transformers 可直接加载或使用 AwqConfig 融合模块(注意融合模块不能与 FlashAttention2 同时使用);vLLM 可自动识别 AWQ 模型,指定 quantization="awq"。支持 35+ 架构,包括 Llama 2/3、Code Llama、Mistral、Mixtral、Qwen 系列、Falcon、MPT、Phi、Yi、DeepSeek、Gemma 及 LLaVA 等多模态模型。

限制与注意:GEMV 仅适合 batch size 1,不适合大上下文;Marlin 需要计算能力 8.0+;CUDA 显存不足时可减少校准样本数;AMD GPU 需使用 ExLlama 后端。AutoAWQ 已官方弃用,新项目可考虑 vLLM llm-compressor 或 Apple Silicon 上的 MLX-LM,已有量化模型仍可使用。