Transformers documentation

VPTQ

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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 7B2.026.138.0758.239.92.282
2.265.957.8759.435.72.483.1
LLaMA-2 13B2.025.327.1562.426.94.033.2
2.185.287.0463.118.54.313.6
LLaMA-2 70B2.073.935.7268.69.719.5419
2.113.925.7168.79.720.0119

Ресурсы

Смотрите пример демонстрации VPTQ на Space VPTQ Online Demo или попробуйте запустить notebook для инференса VPTQ.

Для получения дополнительной информации прочитайте статью о VPTQ.

Update on GitHub