Transformers documentation
VPTQ
VPTQ
Vector Post-Training Quantization (VPTQ) — это метод постобучающей квантизации (PTQ), который использует векторную квантизацию для квантизации LLM на экстремально низком уровне битности (<2 бит). VPTQ позволяет сжать модель на 70B, а также модель на 405B, до 1–2 бит без дообучения, сохраняя при этом высокую точность. Это легковесный алгоритм квантизации, на выполнение которого для модели на 405B уходит около 17 часов. VPTQ обеспечивает гибкий вывод с квантизацией, низкие накладные расходы на декодирование, высокую пропускную способность и низкое время до первого токена (TTFT).
Выполните команду ниже, чтобы установить VPTQ, который предоставляет эффективные ядра для инференса на GPU NVIDIA и AMD.
pip install vptq
VPTQ-community предоставляет коллекцию моделей, квантованных с помощью VPTQ. В имени модели содержится информация о разрядности (без учёта накладных расходов на cookbook, параметры и выравнивание). В качестве примера рассмотрим модель [Meta-Llama-3.1-70B-Instruct-v8-k65536-256-woft].
- Имя модели — Meta-Llama-3.1-70B-Instruct.
- Количество центроидов задается значением 65536 (2^16).
- Количество остаточных центроидов задается значением 256 (2^8).
Расчёт эквивалентной разрядности приведён ниже.
- index: log2(65536) = 16 / 8 = 2 бита
- индекс остатка: log2(256) = 8 / 8 = 1 бит
- общая разрядность: 2 + 1 = 3 бита
Отсюда можно оценить размер модели, умножив 70B * 3-бита / 8-бит/байт, что в сумме даёт 26,25 ГБ.
Загрузите модель, квантованную с помощью VPTQ, с помощью from_pretrained().
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"
)Чтобы квантовать собственную модель, обратитесь к учебнику VPTQ Quantization Algorithm Tutorial.
Бенчмарки
VPTQ обеспечивает более высокую точность и пропускную способность при меньших накладных расходах на квантование для моделей разного размера. Приведённые ниже результаты экспериментов носят справочный характер; при разумном выборе параметров VPTQ позволяет достичь лучших результатов, в частности по точности модели и скорости инференса.
| Модель | разрядность | W2↓ | C4↓ | AvgQA↑ | ток/с↑ | mem(ГБ) | стоимость/ч↓ |
|---|---|---|---|---|---|---|---|
| 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 на Space VPTQ Online Demo или попробуйте запустить notebook для инференса VPTQ.
Для получения дополнительной информации прочитайте статью о VPTQ.
Update on GitHub