microsoft/VPTQ

VPTQ, гибкий алгоритм экстремально низкоразрядного квантования

Инференс⭐ 681Pythonпоследний релиз: v0.0.5post1
Открыть на GitHub ↗

Что это за инструмент

VPTQ — это алгоритм постобучающей квантования для больших языковых моделей (LLM), позволяющий сжимать веса моделей до экстремально низкого битрейта (менее 2 бит) без переобучения.

Зачем нужен

Инструмент решает проблему высоких требований к памяти и вычислительным ресурсам при запуске крупных моделей (70B, 405B), обеспечивая их эффективное сжатие с сохранением высокой точности. Это полезно для развертывания LLM на ограниченном оборудовании (например, одной GPU A100) с минимальными накладными расходами на декодирование.

Что можно реализовать

  • Запуск моделей масштаба Llama-3.1 405B или 70B на одной GPU A100 с использованием 1-2 бит.
  • Интеграция квантованных моделей в стандартный стек через Huggingface Transformers (начиная с версии 4.48.0).
  • Использование с современными движками инференса, такими как aphrodite-engine, для повышения пропускной способности.
  • Быстрое квантование моделей (например, 405B Llama-3.1 занимает около 17 часов) без необходимости в переобучении (retraining).

Ключевые возможности

  • Поддержка экстремально низкого битрейта (<2 бит) для моделей до 405B параметров.
  • Низкие накладные расходы на декодирование и высокая пропускная способность (throughput).
  • Официальная поддержка в Huggingface Transformers и совместимость с aphrodite-engine.
  • Ранняя поддержка инференса для Deepseek R1 и ROCm.
  • Открытый исходный код алгоритма и наличие технической документации (EMNLP 2024).

👤 Кому подойдёт: ML-инженеры, исследователи в области оптимизации моделей и разработчики, работающие с развертыванием крупных LLM на ограниченном GPU-оборудовании.

Релизы

v0.0.5post1patch
🕐 18 мес назад · релиз на GitHub ↗

Исправлены ошибки сохранения модели и логирования, добавлена поддержка битности индекса 10, улучшена структура C++ кода.

  • Added: Добавлена поддержка индекса с битностью 10.
  • Fixed: Исправлена ошибка при сохранении модели с выгрузкой на CPU.
  • Fixed: Устранён баг в логировании индекса результатов.
  • Added: Переорганизована структура C++ кода для упрощения добавления новых ядер.