Unified Cache Management: инструмент для кэширования данных в моделях глубокого обучения

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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте