用途:AWQ用于将7B-70B大语言模型量化为4位权重,以便在显存受限或多GPU环境下部署,兼顾推理速度与精度。适合指令微调或对话模型的生产推理,以及使用vLLM做批量服务。若需最大生态兼容选GPTQ,若需零校准或QLoRA微调选bitsandbytes。
主要能力:基于激活模式保护约1%显著权重,减少量化误差且无需混合精度开销。相对FP16约2.5-3倍加速;显存如Mistral 7B由14GB降至5.5GB、Llama 2-70B由140GB降至35GB;困惑度上升约2-3%。支持GEMM(批量推理)、GEMV(单token生成,batch=1约快20%)、Marlin(Ampere+,A100/H100可约2倍加速)、ExLlama(AMD兼容)。支持35+架构,含Llama、Mistral、Mixtral、Qwen、Falcon、MPT、Phi、Yi、DeepSeek、Gemma及LLaVA等。
使用方式:安装可执行pip install autoawq(默认Triton内核),或用pip install autoawq[kernels]、pip install autoawq[cpu]。加载预量化模型可用AutoAWQForCausalLM.from_quantized并设fuse_layers=True;自行量化时配置zero_point=True、q_group_size=128、w_bit=4、version="GEMM",调用model.quantize(tokenizer, quant_config=quant_config)后save_quantized保存,通常7B约10-15分钟、70B约1小时。可用calib_data传入自定义校准数据,配合max_calib_samples、max_calib_seq_len。Transformers可直接加载AWQ模型,或通过AwqConfig启用do_fuse与fuse_max_seq_len;vLLM中LLM(model=..., quantization="awq", dtype="half")即可。多GPU用device_map="auto"与max_memory分配。
限制:需要Python 3.8+、CUDA 11.8+、计算能力7.5+;Marlin需计算能力8.0+;融合模块不能与FlashAttention2同用;ExLlama版本仅适合batch=1且不适合大上下文。量化时可能CUDA OOM,可减少max_calib_samples。官方已提示AutoAWQ弃用,新项目可考虑vLLM llm-compressor或面向Apple Silicon的MLX-LM,现有量化模型仍可使用。具体许可、收费与更多支持细节暂未提供。