趋近智
激活值感知权重 (weight) 量化 (quantization) (AWQ) 表现突出,因为它根据相应的激活值大小选择性地保留权重精度,旨在提高准确度,特别是在极低位深下,如 4 位 (INT4)。具体来说,这涉及的不仅是根据权重本身计算权重组的缩放因子,还通过分析校准数据集中的激活模式来评估其重要性,进而确定缩放因子。
这种激活值感知的方法使得不仅需要存储打包的低位权重。精心计算的缩放因子在推理 (inference)时对于正确地反量化或使用量化权重进行计算必不可少。因此,AWQ 模型的“格式”围绕着这些量化权重及其关联缩放因子如何保存和组织以便后续使用展开。
不同于 GGUF,AWQ 没有单一、标准化的文件扩展名或独立容器来定义其“AWQ 格式”。相反,AWQ 实现通常会调整现有的模型存储约定,例如 Hugging Face Transformers 所用的约定,通过在标准模型组件旁保存特定文件。
当您使用 autoawq 等库量化模型时,输出目录通常包含:
.safetensors 或 .bin 文件(PyTorch 的 pytorch_model.bin)。config.json)通常会被修改或增补。它需要包含元数据,表明模型已进行 AWQ 量化,并注明所用参数 (parameter):
"quant_method": "awq")。"bits": 4)。"group_size": 128)。"auto_map": { "AutoModelForCausalLM": "awq.models.auto.AutoAWQForCausalLM" })以引导加载库。包含 AWQ 量化模型的目录中常见的组件,源自原始 FP32 模型。主要新增内容是打包的低位权重、激活值感知的缩放因子(和可选的零点),以及已更新的配置文件,其中指定了 AWQ 参数。
加载 AWQ 量化 (quantization)模型需要理解此结构的特定逻辑。通常无法直接使用标准的 transformers from_pretrained 调用加载 AWQ 模型,除非有适当的集成或自定义代码。专为 AWQ 设计的库会处理此过程:
config.json 以将模型识别为 AWQ 量化,并获取位深和组大小等参数 (parameter)。torch.nn.Linear)被替换为专用的 AWQ 层。这些自定义层旨在利用量化权重进行计算,并在前向传播过程中高效地整合缩放因子(和零点)。这通常涉及即时解包权重或使用自定义计算核。使用 autoawq 等库的典型加载模式大大简化了用户的操作:
# 示例:使用 autoawq 库
from awq import AutoAWQForCausalLM
# 包含 config.json、量化权重等文件的目录路径
quantized_model_dir = "path/to/your/awq_model"
# 加载量化模型和分词器
# 库会处理读取配置、加载权重/缩放因子、设置层等操作
model = AutoAWQForCausalLM.from_quantized(quantized_model_dir, device_map="auto")
# 分词器通常单独标准加载
# tokenizer = AutoTokenizer.from_pretrained(quantized_model_dir)
# 模型现在已可用于推理
autoawq 量化 (quantization)的模型最好使用 autoawq 加载)。请确保在量化和推理 (inference)时使用兼容的库版本。了解 AWQ 模型保存的组件有助于管理这些模型,并认识到专用库在高效加载和运行它们方面的作用。主要收获是存储和正确使用激活值感知缩放因子的必要性,这使得 AWQ 的存储要求有别于更简单的量化方法。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造