Инференс и оптимизация 16 просмотров

AWQ

Activation-Aware Weight Quantization

AWQ (Activation-Aware Weight Quantization) — метод 4-bit квантизации LLM, который определяет «важные» веса по паттернам активаций и сохраняет их с более высокой точностью. Даёт лучшее качество, чем GPTQ.

Что такое AWQ

AWQ (Lin et al., 2023, MIT) — метод post-training квантизации, основанный на наблюдении, что не все веса одинаково важны. Малая доля весов (~1%) непропорционально влияет на качество модели, и их важность можно определить по активациям на калибровочных данных.

Принцип работы

  1. Прогнать калибровочные данные через модель
  2. Определить, какие каналы весов дают наибольшие активации
  3. Масштабировать «важные» каналы вверх перед квантизацией
  4. Квантизовать все веса в INT4
  5. Компенсировать масштабирование при инференсе

Результат: важные веса квантизуются с меньшей ошибкой.

Сравнение с GPTQ

Параметр GPTQ AWQ
Метод Оптимизация по Гессиану Activation-aware scaling
Скорость квантизации Медленнее Быстрее
Качество (perplexity) Хорошее Чуть лучше
Скорость инференса Быстрый Быстрый
Поддержка vLLM Да Да

Использование

from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

model = AutoAWQForCausalLM.from_pretrained("meta-llama/Llama-3-8B")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8B")

# Квантизация
model.quantize(tokenizer, quant_config={
    "zero_point": True,
    "q_group_size": 128,
    "w_bit": 4,
})

# Сохранение
model.save_quantized("llama-3-8b-awq")

Рекомендация

Для production GPU-инференса AWQ — лучший выбор по соотношению качество/скорость. Для CPU-инференса используйте GGUF.

Связанные термины

Является частью
Альтернатива

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу