vLLM 0.30.0: Оптимизация запуска, поддержка новых моделей и механизмы водяных знаков

github:vllm-project/vllm · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Выпуск vLLM 0.30.0 расширяет поддержку моделей DeepSeek, GLM и Kimi K3, внедряя новые квантованные форматы и оптимизации для GPU NVIDIA. Обновление включает механизм Fast Start для ускорения загрузки весов, систему водяных знаков для генерации текста и значительные улучшения производительности специулятивного декодирования.

Ценность: Релиз повышает эффективность инференса LLM за счет оптимизации памяти и вычислений, добавляет инструменты для верификации происхождения сгенерированного контента и расширяет совместимость с новым поколением архитектур моделей.

Команда разработчиков vLLM выпустила версию 0.30.0, которая стала результатом работы 315 участников и включает 762 коммита. Основное внимание в обновлении уделено расширению поддержки новых языковых моделей, включая DeepSeek-V4.1-Flash, GLM-5.3-Flash, Kimi K3 и Cohere Compass. Разработчики внедрили специфические оптимизации для каждой из этих архитектур, такие как использование квантованного формата MXFP8 для хранения ключевых значений в памяти GPU при работе с DeepSeek-V4.1-Flash на чипах SM100. Также добавлена поддержка CPU-бэкенда для DeepSeek-V4 с использованием инструкций AVX512 и AMX, что позволяет запускать модель на процессорах без графических ускорителей.

Одной из ключевых нововведений стала функция Fast Start. Она реализует постоянный демон кэширования весов на уровне GPU, который сохраняет веса после квантования и разделения по тензорному параллелизму в видеопамяти. При перезапуске движка эти веса загружаются через CUDA IPC вместо повторного чтения с диска. Это существенно сокращает время инициализации, особенно для больших моделей, и теперь поддерживает контрольные точки FP4 и многоузловое тензорное параллельство.

В релизе также представлена система водяных знаков (watermarking) на основе алгоритма Gumbel-max. Она позволяет помечать сгенерированный текст с использованием ключевой псевдослучайной функции, обеспечивая возможность детекции таких меток. Механизм поддерживает отключение по запросу и совместим со специулятивным декодированием благодаря использованию двойного ключа. Это дает разработчикам инструменты для верификации происхождения контента, генерируемого моделями.

Производительность специулятивного декодирования была значительно улучшена за счет внедрения адаптивной верификации для всех типов драфтер-моделей. Разработчики оптимизировали процесс захвата CUDA-графов, заморозив сборку мусора (GC) на время этого процесса. По данным проекта, это сократило время захвата графов с 12 до 2 секунд и общее время инициализации движка на H200 с 28.9 до 8.2 секунд. Также исправлена регрессия времени шага обучения с подкреплением (RL), связанная с компактизацией масок выборки на GPU.

Для моделей Kimi K3 и Qwen3.8-Flash-Next были внедрены специализированные ядра для индексирующих операций и слияния проекций. В частности, для Kimi K3 удалены операции gather/scatter в смешанных батчах, что, согласно отчетам разработчиков, повысило сквозную пропускную способность на 5.2–7.7%. Для Qwen3.8-Flash-Next реализованы отдельные ядра для префилла и декода, а также кэш индекса в формате FP8. Эти изменения направлены на снижение задержек и повышение эффективности использования памяти при работе с длинными контекстами.

Обновление также затрагивает инфраструктуру масштабирования. Добавлена поддержка PCP+DCP для моделей со sparse-MLA, а также опциональный all-reduce через PCIe IPC для систем без NVLink. В области квантования реализована онлайн-квантизация с настраиваемыми целями и поддержка W4A16 DSA с кэшем KV в формате nvfp4_fp8_ds_mla. Эти функции позволяют гибко управлять соотношением между точностью модели и потреблением ресурсов.

Важно отметить, что релиз содержит несколько ломающих изменений. Эндпоинты масштабирования теперь активируются явно через флаг --enable-scale-out, а некоторые устаревшие переменные окружения и методы запуска были удалены или заменены. Разработчикам рекомендуется внимательно изучить список изменений при обновлении, чтобы избежать несовместимости в существующих пайплайнах инференса.