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 | OK | 最高约3.0倍 | ✅ | ❌ |
Numba | K | 8 | Kx8 | 良好 | 最高约4.0倍 | ❌ | ✅ |