feifeibear/LLMSpeculativeSampling

Быстрый инференс больших языковых моделей через спекулятивное декодирование

Инференс⭐ 926Pythonпоследний релиз: 0.1.0
Открыть на GitHub ↗

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

Инструмент для ускорения генерации текста в больших языковых моделях (LLM) с использованием метода спекулятивного декодирования. Он позволяет запускать крупную целевую модель параллельно с более маленькой моделью-аппроксиматором для повышения скорости инференса.

Зачем нужен

Решает проблему низкой скорости генерации токенов в больших LLM (например, Llama-70B), предлагая ускорение без потери качества. Полезен тем, что реализует алгоритмы от Google и DeepMind, позволяя целевой модели проверять несколько токенов, предсказанных малой моделью, за один проход, что сокращает общее время вычислений.

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

  • Ускорение инференса для больших моделей (например, Llama-70B) за счет использования малых моделей-ассистентов (например, Llama-7B).
  • Запуск локального inference-сервера для тестирования производительности спекулятивного декодирования через API.
  • Исследование и сравнение двух версий алгоритма спекулятивного сэмплирования (Google и DeepMind) на разных парах моделей.
  • Оптимизация затрат на вычисления при развертывании LLM в продакшене за счет снижения задержки генерации.

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

  • Поддержка двух алгоритмов спекулятивного декодирования: от Google (Leviathan et al.) и DeepMind (Chen et al.).
  • Достигнутое ускорение: 427 токенов/сек против 329 токенов/сек для Llama-70B (при использовании Llama-7B в качестве аппроксиматора).
  • Встроенная оптимизация KV Cache для версии от Google.
  • Готовый serving-режим с простым REST API для отправки запросов через curl.
  • Возможность визуализации процесса генерации (какой токен сгенерирован какой моделью) через флаг -v.

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

Релизы

0.1.0minorbreaking
🕐 36 мес назад · релиз на GitHub ↗

Демонстрация спекулятивного сэмплинга на моделях bloom 560m и 7b1 с оптимизацией KV Cache. Работает только при batch size 1.

  • Added: Добавлена демонстрация спекулятивного сэмплинга для моделей bloom 560m и 7b1.
  • Added: Реализована оптимизация использования KV Cache.
  • Breaking: Поддерживается только batch size равный 1.