Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации доступен на https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, доступно на https://docs.nvidia.com/dynamo/llms-full.txt.
KVBM
Менеджер KV-блоков Dynamo (KVBM) — это масштабируемый компонент среды выполнения, предназначенный для выделения памяти, управления ею и удаленного совместного использования блоков Key-Value (KV) в задачах инференса в гетерогенных и распределенных средах. Он работает как единый слой памяти и кэш со сквозной записью для фреймворков вроде vLLM и TensorRT-LLM.
KVBM предоставляет:
- Единый API памяти, охватывающий память GPU, закрепленную память хоста, удаленную память с доступом по RDMA, локальные и распределенные SSD, а также удаленные файловые, объектные и облачные хранилища
- Поддержку жизненного цикла блоков (allocate → register → match) с переходами состояния на основе событий
- Интеграцию с NIXL — динамическим слоем обмена памятью для удаленной регистрации, совместного использования и доступа к блокам памяти
Начало работы: инструкции по установке и развертыванию см. в руководстве по KVBM.
Когда использовать выгрузку KV-кэша
Выгрузка KV-кэша позволяет избежать дорогого повторного вычисления KV-кэша, сокращает время ответа и улучшает пользовательский опыт. Провайдеры получают более высокую пропускную способность и меньшую стоимость токена, поэтому сервисы инференса становятся более масштабируемыми и эффективными.
Выгрузка KV-кэша в CPU или хранилище наиболее эффективна, когда KV-кэш превышает объем памяти GPU, а повторное использование кэша оправдывает накладные расходы на передачу данных. Она особенно полезна в таких сценариях:
| Сценарий | Польза |
|---|---|
| Длинные сессии и многоходовые диалоги | Сохраняет большие префиксы промптов, исключает повторные вычисления, улучшает задержку до первого токена и пропускную способность |
| Высокая параллельность | Неактивные или частичные диалоги можно вынести из памяти GPU, чтобы активные запросы продолжали выполняться без упора в лимиты памяти |
| Общий или повторяющийся контент | Повторное использование между пользователями или сессиями (системные промпты, шаблоны) повышает долю попаданий в кэш, особенно при удаленном совместном использовании или использовании между экземплярами |
| Развертывания с ограничениями по памяти или стоимости | Выгрузка в RAM или SSD снижает потребность в GPU, позволяя обрабатывать более длинные промпты или больше пользователей без добавления оборудования |
Матрица поддержки функций
| Функция | Поддержка | |
|---|---|---|
| Бэкенд | Локальный | ✅ |
| Kubernetes | ✅ | |
| LLM-фреймворк | vLLM | ✅ |
| TensorRT-LLM | ✅ | |
| SGLang | ❌ | |
| Тип обслуживания | Агрегированный | ✅ |
| Разделенный | ✅ |
Архитектура
Высокоуровневое представление слоистой архитектуры Dynamo KV Block Manager и его взаимодействия с различными компонентами экосистемы LLM-инференса
KVBM состоит из трех основных логических слоев:
Слой среды выполнения LLM-инференса — верхний слой включает среды выполнения инференса (TensorRT-LLM, vLLM), которые интегрируются с Dynamo KVBM через специализированные модули-коннекторы. Эти коннекторы работают как слои преобразования: они отображают операции и события, специфичные для среды выполнения, в блочно-ориентированный интерфейс памяти KVBM. Благодаря этому управление памятью отделяется от среды выполнения инференса, что обеспечивает переносимость бэкендов и многоуровневую организацию памяти.
Логический слой KVBM — средний слой инкапсулирует основную логику менеджера KV-блоков и служит средой выполнения для управления блочной памятью. Адаптер KVBM нормализует представления и схему размещения данных для входящих запросов из разных сред выполнения и передает их основному менеджеру памяти. Этот слой реализует табличные поиски, выделение памяти, управление раскладкой блоков, переходы состояний жизненного цикла, а также политики повторного использования и вытеснения блоков.
Слой NIXL — нижний слой обеспечивает единую поддержку всех операций с данными и хранилищами. NIXL поддерживает P2P-передачи между GPU, удаленное совместное использование памяти через RDMA и NVLink, динамическую регистрацию блоков и обмен метаданными, а также предоставляет плагинный интерфейс для бэкендов хранения, включая блочную память (GPU HBM, Host DRAM, Remote DRAM, Local SSD), локальные и удаленные файловые системы, объектные хранилища и облачные хранилища.
Подробнее: детальное описание архитектуры, компонентов и потоков данных см. в документе о дизайне KVBM.
Дальнейшие шаги
- Руководство по KVBM — инструкции по установке, настройке и развертыванию
- Дизайн KVBM — подробный разбор архитектуры, компонентов и потоков данных
- Интеграция LMCache — использование LMCache с бэкендом Dynamo vLLM
- Интеграция FlexKV — использование FlexKV для управления KV-кэшем
- SGLang HiCache — включение иерархического кэша SGLang с NIXL
- Документация NIXL — сведения о коммуникационной библиотеке NIXL