AQLM
在 Google Colab 上尝试 AQLM!
语言模型的加性量化 (AQLM) 是一种大型语言模型压缩方法。它将多个权重一起量化,并利用它们之间的相互依赖性。AQLM 将 8-16 个权重的组表示为多个向量代码的总和。
AQLM 的推理支持在 aqlm
库中实现。请确保安装它以运行模型(注意,aqlm 仅适用于 python>=3.10)
pip install aqlm[gpu,cpu]
该库为 GPU 和 CPU 推理和训练提供高效的内核。
有关如何自己量化模型的说明以及所有相关代码可以在相应的 GitHub 存储库 中找到。要运行 AQLM 模型,只需加载一个使用 AQLM 量化的模型即可
from transformers import AutoTokenizer, AutoModelForCausalLM
quantized_model = AutoModelForCausalLM.from_pretrained(
"ISTA-DASLab/Mixtral-8x7b-AQLM-2Bit-1x16-hf",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("ISTA-DASLab/Mixtral-8x7b-AQLM-2Bit-1x16-hf")
PEFT
从 aqlm 1.0.2
版本开始,AQLM 支持以 LoRA 的形式进行参数高效微调,该形式已集成到 PEFT 库中。
AQLM 配置
AQLM 量化设置主要区别在于使用的码本数量以及码本大小(以比特为单位)。以下是几种最常用的设置以及它们支持的推理内核:
内核 | 码本数量 | 码本大小(比特) | 符号 | 准确率 | 加速比 | 快速 GPU 推理 | 快速 CPU 推理 |
---|---|---|---|---|---|---|---|
Triton | K | N | KxN | - | 最高约 0.7 倍 | ✅ | ❌ |
CUDA | 1 | 16 | 1x16 | 最佳 | 最高约 1.3 倍 | ✅ | ❌ |
CUDA | 2 | 8 | 2x8 | 良好 | 最高约 3.0 倍 | ✅ | ❌ |
Numba | K | 8 | Kx8 | 不错 | 最高约 4.0 倍 | ❌ | ✅ |