ovg-project/kvcached

Виртуализированный эластичный KV-кэш для динамического разделения GPU и не только

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

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

kvcached — это библиотека для виртуализации KV-кэша LLM, позволяющая динамически делить память GPU между несколькими моделями.

Зачем нужен

Инструмент решает проблему неэффективного использования GPU при совместном запуске нескольких LLM, применяя абстракцию виртуальной памяти ОС. Он позволяет моделям резервировать виртуальную память без немедленного выделения физической, что снижает затраты и повышает утилизацию ресурсов при динамической нагрузке.

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

  • Масштабирование GPU для одновременного обслуживания нескольких LLM (Multi-LLM serving) без жесткого разделения памяти.
  • Автоматическое кэширование префиксов (APC/RadixCache) для переиспользования общих токенов между запросами.
  • Запуск моделей с MLA-вниманием (DeepSeek-V3, GPT-OSS) на общих GPU с поддержкой pipeline parallelism.
  • Автоматический перевод моделей в режим сна (sleep mode) при отсутствии активных запросов для экономии ресурсов.

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

  • Эластичное распределение KV-кэша: динамическое выделение и освобождение физической памяти по мере необходимости.
  • Виртуализация памяти GPU: разделение логического адреса и физической памяти для гибкого шаринга.
  • Интеграция с vLLM и SGLang: поддержка версий vLLM >= 0.8.4 и SGLang >= v0.4.9.
  • Контроль памяти через CLI: возможность задавать жесткие лимиты потребления памяти для процессов.
  • Поддержка современных архитектур: MHA, GQA, MLA и гибридные механизмы внимания.

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

Релизы