Transformers documentation
VPTQ
VPTQ
Vector Post-Training Quantization (VPTQ), LLM'leri son derece düşük bit genişliğinde (<2-bit) kuantize etmek için vektör kuantizasyonundan yararlanan bir Post-Training Quantization (PTQ) yöntemidir. VPTQ, yeniden eğitim gerektirmeden 70B ve hatta 405B modelleri 1-2 bite sıkıştırabilir ve yüksek bir doğruluk derecesini koruyabilir. 405B bir modeli kuantize etmesi yaklaşık 17 saat süren hafif bir kuantizasyon algoritmasıdır. VPTQ, düşük çözümleme maliyeti ve yüksek veri aktarım hızı ile Time To First Token (TTFT) sunan çevik kuantizasyon çıkarımı özelliklerine sahiptir.
NVIDIA ve AMD GPU'lerde çıkarım için verimli çekirdekler sunan VPTQ'yi yüklemek için aşağıdaki komutu çalıştırın.
pip install vptq
VPTQ-community, VPTQ ile kuantize edilmiş modellerin bir koleksiyonunu sunar. Model adı, bit genişliği hakkında bilgi içerir (cookbook, parametre ve dolgu (padding) maliyetleri hariç). Örnek olarak [Meta-Llama-3.1-70B-Instruct-v8-k65536-256-woft] modelini ele alalım.
- Model adı Meta-Llama-3.1-70B-Instruct'tir.
- Merkezlerin sayısı 65536 (2^16) ile verilir.
- Kalanık merkezlerin sayısı 256 (2^8) olarak verilir.
Eşdeğer bit genişliği hesabı aşağıda verilmiştir.
- index: log2(65536) = 16 / 8 = 2-bit
- residual index: log2(256) = 8 / 8 = 1-bit
- toplam bit genişliği: 2 + 1 = 3-bit
Buradan, 70B * 3-bit / 8-bit/bayt çarpımını alarak model boyutunu tahmin edin; toplam 26.25GB eder.
from_pretrained() ile VPTQ ile kuantize edilmiş bir model yükleyin.
from transformers import AutoTokenizer, AutoModelForCausalLM
quantized_model = AutoModelForCausalLM.from_pretrained(
"VPTQ-community/Meta-Llama-3.1-70B-Instruct-v16-k65536-65536-woft",
dtype="auto",
device_map="auto"
)Kendi modelinizi kuantize etmek için VPTQ Kuantizasyon Algoritması Eğitimi eğitimine başvurun.
Benchmarks
VPTQ, farklı boyutlardaki modellerde daha düşük kuantizasyon maliyetiyle daha iyi doğruluk ve daha yüksek işlem hacmi sağlar. Aşağıdaki deneysel sonuçlar yalnızca referans amaçlıdır; VPTQ, makul parametreler altında, özellikle model doğruluğu ve çıkarım hızı açısından daha iyi sonuçlar elde edebilir.
| Model | bit genişliği | W2↓ | C4↓ | AvgQA↑ | tok/sn↑ | mem(GB) | maliyet/h↓ |
|---|---|---|---|---|---|---|---|
| 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 |
Kaynaklar
VPTQ'nin örnek demosunu VPTQ Online Demo Space'inde görüntüleyebilir veya VPTQ çıkarım notebook'unu çalıştırmayı deneyebilirsiniz.
Daha fazla bilgi için VPTQ makalesini okuyun.
Update on GitHub