Transformers 文件
VPTQ
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
VPTQ
向量後訓練量化 (VPTQ) 是一種後訓練量化 (PTQ) 方法,它利用向量量化以極低的位寬(<2 位)量化 LLM。VPTQ 可以在不重新訓練的情況下將 70B 甚至 405B 模型壓縮到 1-2 位,並仍然保持高精度。它是一種輕量級量化演算法,量化一個 405B 模型大約需要 17 小時。VPTQ 具有靈活的量化推理,具有低解碼開銷、高吞吐量和首次令牌時間 (TTFT) 短的特點。
執行以下命令安裝 VPTQ,它為 NVIDIA 和 AMD GPU 上的推理提供了高效的核心。
pip install vptq
VPTQ 社群 提供了一系列 VPTQ 量化模型。模型名稱包含有關其位寬的資訊(不包括 cookbook、引數和填充開銷)。以 [Meta-Llama-3.1-70B-Instruct-v8-k65536-256-woft] 模型為例。
- 模型名稱是 Meta-Llama-3.1-70B-Instruct。
- 中心點數量為 65536 (2^16)。
- 殘差中心點數量為 256 (2^8)。
等效位寬計算如下。
- 索引:log2(65536) = 16 / 8 = 2 位
- 殘差索引:log2(256) = 8 / 8 = 1 位
- 總位寬:2 + 1 = 3 位
由此,透過將 70B * 3 位 / 8 位/位元組相乘,估算出模型大小為 26.25GB。
使用 from_pretrained() 載入 VPTQ 量化模型。
from transformers import AutoTokenizer, AutoModelForCausalLM
quantized_model = AutoModelForCausalLM.from_pretrained(
"VPTQ-community/Meta-Llama-3.1-70B-Instruct-v16-k65536-65536-woft",
torch_dtype="auto",
device_map="auto"
)
要量化您自己的模型,請參閱 VPTQ 量化演算法教程。
基準測試
VPTQ 在不同大小的模型上實現了更好的精度、更高的吞吐量和更低的量化開銷。以下實驗結果僅供參考;在合理的引數下,VPTQ 可以在模型精度和推理速度方面取得更好的結果。
模型 | 位寬 | W2↓ | C4↓ | AvgQA↑ | tok/s↑ | 記憶體 (GB) | 成本/小時↓ |
---|---|---|---|---|---|---|---|
LLaMA-2 7B | 2.02 | 6.13 | 8.07 | 58.2 | 39.9 | 2.28 | 2 |
2.26 | 5.95 | 7.87 | 59.4 | 35.7 | 2.48 | 3.1 | |
LLaMA-2 13B | 2.02 | 5.32 | 7.15 | 62.4 | 26.9 | 4.03 | 3.2 |
2.18 | 5.28 | 7.04 | 63.1 | 18.5 | 4.31 | 3.6 | |
LLaMA-2 70B | 2.07 | 3.93 | 5.72 | 68.6 | 9.7 | 19.54 | 19 |
2.11 | 3.92 | 5.71 | 68.7 | 9.7 | 20.01 | 19 |
資源
請在 VPTQ 線上演示 空間 中檢視 VPTQ 的示例演示,或嘗試執行 VPTQ 推理 notebook。
欲瞭解更多資訊,請閱讀 VPTQ 論文。
< > 在 GitHub 上更新