IST-DASLab/marlin

Ядро вывода LLM в форматах FP16xINT4, обеспечивающее ускорение почти в 4 раза при средних батч-размерах 16-32 токена.

Инференс⭐ 1 149Python
Открыть на GitHub ↗

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

Marlin — это высокооптимизированный CUDA-ядро для инференса LLM с весовой квантованием FP16xINT4, обеспечивающее почти идеальное ускорение в 4 раза по сравнению с FP16.

Зачем нужен

Инструмент решает проблему падения производительности при увеличении размера батча, сохраняя максимальное ускорение (3.87x) для батчей до 16-32 токенов, в отличие от других ядер, которые эффективны только при батче 1-2 токена. Это позволяет эффективно использовать ресурсы GPU для масштабного обслуживания моделей и сложных схем инференса.

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

  • Масштабированный инференс LLM (serving) с умеренными размерами батчей
  • Спекулятивный декодинг (speculative decoding) больших моделей
  • Продвинутые многопоточные схемы инференса, такие как CoT-Majority
  • Запуск открытых LLM-моделей с весовой квантованием на GPU Ampere/Ada

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

  • Сохранение почти идеального ускорения в 4x при батчах 16-32 токена
  • Асинхронная загрузка весов и двойная буферизация для скрытия задержек памяти
  • Оптимизированное использование L2-кэша и тензорных ядер без конфликтов
  • Поддержка NVIDIA GPU с вычислительной способностью >= 8.0 (Ampere, Ada)
  • Интеграция через PyTorch (torch>=2.0.0) и установка через pip

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

Релизы

Релизы ещё не отслежены — появятся после ближайшего опроса.