NVIDIA опубликовала статью о переносе KV-кэшiа между разными моделями: маленькая модель делает префилл (читает промпт), большая отвечает, используя её кэш через линейный маппинг — без повторного прогона промпта дорогой моделью. Идея развивает более раннюю концепцию Cache-2-Cache, где обучаемый fuser-модуль передавал в KV-кэш target-модели знания из source-модели; NVIDIA предложила упрощение — обучаемый (в большинстве случаев линейный) проектор, подбирающий наиболее полезные слои source-модели для target-модели.
У статьи NVIDIA не было ни кода, ни анонса — только цифры на 8x H100. Автор одного из телеграм-каналов решил проверить подход на практике: собрал реализацию внутри vLLM на паре Qwen3 0.6B и 1.7B на двух видеокартах 3090 и подтвердил, что метод действительно работает и даёт прирост скорости, хотя и меньший, чем заявляли авторы оригинальной статьи на топовом оборудовании.
- Независимая реализация: собственный KV-коннектор для vLLM, перенос кэша через /dev/shm, ridge-мапперi с решением в замкнутой форме, обучение — 15 минут на датасете FineWeb
- Качество почти не пострадало: HellaSwag сохраняет 94% исходного качества, перплексия ухудшается максимум на 10%
- TTFTi на контексте 32K падает с 3657 мс до 1645 мс (ускорение x2.22)
- При конкурентности 8 запросов «прогретый» путь показывает 2393 мс против 3928 мс на запрос без переноса кэша; сбоев за все прогоны не было
- Авторы оригинальной статьи NVIDIA заявляли ускорение 17-25x на паре моделей 14B и 32B с NVLink на 8x H100, тогда как в воспроизведении на PCIe и моделях 0.6B/1.7B получено 2.22x
- Короткие промпты проигрывают из-за накладных расходов на перенос кэша; выгода метода проявляется на длинном контексте, где префилл — самая дорогая часть инференса
- Код, KV-коннектор и оба обученных маппера выложены в открытый доступ на GitHub (alesha-pro/vllm-cross-model-kv) и HuggingFace (anonymousmaharaj/vllm-cross-model-kv)
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖