30 lines
4.7 KiB
Markdown
30 lines
4.7 KiB
Markdown
# P29. Mooncake: глобальный многоуровневый KV-кэш
|
||||
|
|
|
|||
|
|
- **Версия и дата проверки:** 1.0, 05.09.2026.
|
|||
|
|
- **Статус:** готово к назначению.
|
|||
|
|
|
|||
|
|
## Статья и исходные материалы
|
|||
|
|
|
|||
|
|
- **Основная статья:** Ruoyu Qin и соавт. — [Mooncake: Trading More Storage for Less Computation — A KVCache-centric Architecture for Serving LLM Chatbot](https://www.usenix.org/conference/fast25/presentation/qin). FAST 2025, Best Paper.
|
|||
|
|
- **Кратко о статье:** Для длинных диалогов и повторяющихся префиксов повторный prefill расходует дорогие вычисления, хотя готовый KV-кэш можно сохранить и передать. Mooncake отделяет стадии prefill и decode и строит глобальный многоуровневый KV-кэш на памяти и накопителях вычислительных узлов. В проекте сравниваются повторное вычисление, локальный кэш и общее блочное хранилище при разных сетевых ограничениях.
|
|||
|
|
- **Почему результат актуален:** Mooncake разделяет prefill и decode и превращает память GPU, DRAM и SSD кластера в общий KV-кэш, управляемый с учётом повторного использования и требований к задержке.
|
|||
|
|
- **Артефакты и данные:** [kvcache-ai/Mooncake](https://github.com/kvcache-ai/Mooncake) под Apache-2.0 с движком передачи и [FAST’25-трассами](https://github.com/kvcache-ai/Mooncake/tree/main/FAST25-release), включая отдельную агентную нагрузку. Зафиксированные ревизии: `kvcache-ai/Mooncake@408b831bfeff` (Apache-2.0).
|
|||
|
|
|
|||
|
|
## Обязательный результат
|
|||
|
|
|
|||
|
|
- **Проверяемый вопрос или утверждение:** глобальное хранение KV-блоков может выгодно заменить повторный prefill для длинных общих префиксов, но результат определяется пропускной способностью хранилища, конкуренцией за сеть и политикой допуска в кэш.
|
|||
|
|
- **Технический результат:** Построить из нескольких процессов общий блочный кэш поверх RAM и локального SSD с сетевым чтением, вытеснением и предварительной загрузкой. Добавить локальный LRU и модель повторного вычисления, проигрыватель открытых трасс и проверку целостности возвращаемых блоков.
|
|||
|
|
- **Эксперимент:** на подготовленном блочном кэше и открытых трассах сравнить глобальную политику с локальным LRU и повторным вычислением по доле попаданий, переданным байтам, задержке и goodput.
|
|||
|
|
- **Границы выводов:** стенд проверяет политики блочного кэша на RAM, SSD и локальной сети при заданной стоимости повторного вычисления; он не воспроизводит RDMA, GPU-prefill и конкуренцию производственного кластера Mooncake.
|
|||
|
|
- **Ресурсный профиль:** локально, CPU, 8–16 ГБ памяти, несколько процессов; RDMA и GPU не требуются. Стоимость prefill задаётся реальной малой функцией или калиброванной задержкой, а при тяжёлой трассе используется воспроизводимая подвыборка.
|
|||
|
|
|
|||
|
|
## Содержательные направления
|
|||
|
|
|
|||
|
|
- разбор трасс и модель стоимости.
|
|||
|
|
- реализации кэшей и маршрутизации.
|
|||
|
|
- SLO, сетевые эксперименты и новая политика.
|
|||
|
|
|
|||
|
|
## Возможное продолжение
|
|||
|
|
|
|||
|
|
Добавить объединение одновременных загрузок, ограничение полосы, несколько арендаторов, ошибку предсказания повторного использования либо совместное решение о маршрутизации и вытеснении.
|