Unified Cache Management: инструмент для кэширования данных в моделях глубокого обучения
Unified Cache Management — это инструмент для сохранения и повторного использования кэша ключ-значение (KV), чтобы ускорить работу твоих моделей глубокого обучения. Он особенно полезен для оптимизации процессов, связанных с большими языковыми моделями (LLM), предлагая решение для кэширования данных, которые часто используются.
Основная особенность проекта заключается в интеграции кэша с различными приложениями, что позволяет обеспечить быстрое извлечение данных и минимизировать задержки. В отличие от распространённых систем кэширования, этот инструмент призван упростить управление кэшируемыми данными и предоставить разработчикам возможность быстрее разрабатывать и тестировать свои модели. Подойдет тем, кто работает с LLM и хочет оптимизировать ресурсы.
Проект написан на Python и запускается через стандартные средства для работы с библиотеками этого языка. На текущий момент может потребоваться ручная настройка, и есть указание на то, что инструмент еще не стабилен. Учитывай это при планировании использования.
Проект Unified Cache Manager (UCM) предназначен для оптимизации работы с кэшами в контексте использования больших языковых моделей (LLM). Основная идея заключается в улучшении управления кэшем ключей и значений (KVCache) с целью сокращения избыточных вычислений и повышения производительности при обработке длинных последовательностей данных.
UCM поддерживает несколько механизмов извлечения, включая кэширование префиксов и различные методы разреженной внимания, которые не требуют обучения. Это позволяет значительно сократить задержки при выводе модели, достигая уменьшения времени отклика от 3 до 10 раз при интеграции с библиотекой vLLM. Такие улучшения особенно заметны при многоходовых диалогах и задачах рассуждения с длинным контекстом.
Установка и запуск
Чтобы начать работу с UCM, стоит ознакомиться с [Quick Start for vLLM](https://ucm.readthedocs.io/en/latest/getting-started/quickstart_vllm.html) и [Quick Start for vLLM-Ascend](https://ucm.readthedocs.io/en/latest/getting-started/quickstart_vllm_ascend.html). Эти инструкции помогут быстро поднять проект и приступить к его использованию.
Основные функции
- Кэширование префиксов (Prefix Cache)
- Смешивание кэша (Cache Blend)
- Экспроприация окна модели (Model Window Extrapolation)
- Съем предварительных значений (Prefill Offload)
- Разреженное внимание (Sparse Attention)
- Съем разреженного внимания (Sparse Attention Offload)
- Гетерогенная разборка по PD (Heterogeneous PD Disaggregation)
Архитектура
UCM включает в себя несколько компонентов, которые работают вместе для оптимизации работы с кэшом. Например, класс UcmSparseBase является базовым для различных алгоритмов разреженного внимания. В дополнение к этому SparseKVManager позволяет пользователю определять пользовательское распределение блоков KV для разных алгоритмов. Устройство KVStoreBase помогает отделить алгоритмы от внешних систем хранения, обеспечивая совместимость с различными типами хранилищ.
Ограничения
Проект в настоящее время поддерживает версии vLLM 0.27.1 и vLLM-Ascend nightly-0.26.0. Учитывай, что требуемые версии должны быть соответствующими, чтобы избежать неожиданных проблем при установке и развертывании UCM.
Контакты
Если у тебя есть технические вопросы или предложения по новым функциям, используй раздел [Issues](https://github.com/ModelEngine-Group/unified-cache-management/issues) на GitHub. Также можно присоединиться к технической группе в WeChat, отсканировав QR-код в документации.
Открыть на GitHub: ModelEngine-Group/unified-cache-management →
RepoRadar