vLLM 0.24.0: CUDA 13 по умолчанию, MiniMax-M3 и ломающее изменение с выбором GPU

571 коммит от 256 контрибьюторов. Новый релиз популярного инференс-движка приносит поддержку MiniMax-M3, оптимизации под DeepSeek-V4, унифицированный стриминговый парсер tool call — и тихо ломает привычный способ выбирать видеокарты.

DB
DBG · по материалам vLLM — GitHub Releases
0

Вышел vLLM 0.24.0 — крупный релиз одного из самых используемых движков инференса: 571 коммит от 256 контрибьюторов, из них 77 — новички. Бинарники теперь по умолчанию собираются под CUDA 13.0.

Из модельного: добавлена поддержка MiniMax-M3 с оптимизацией под BF16/FP8 и заметным объёмом тюнинга под AMD/ROCm — открытые веса перестают быть эксклюзивом NVIDIA-стека. Отдельный проход сделан по DeepSeek-V4: подъехали FlashInfer sparse index cache и улучшенное планирование чанков на стадии prefill, то есть выигрыш ложится ровно туда, где длинный контекст обходится дороже всего. Появился и экзотический гость — DiffusionGemma, диффузионная LLM, причём с поддержкой CPU.

Из инфраструктурного важнее другое. Model Runner V2 (MRv2) теперь по умолчанию работает с квантованными моделями, а GraniteMoE включён по умолчанию. Приехал новый унифицированный стриминговый парсер, единый фреймворк разбора tool call и reasoning-блоков поверх разных моделей — конец зоопарку самописных регулярок под каждое семейство. Rust-фронтенд дорос до аутентификации по API-ключу, CORS и новых эндпоинтов.

И ключевой пункт, который стоит прочитать до pip install -U: vLLM больше не выставляет CUDA_VISIBLE_DEVICES внутри себя. Вместо этого появился явный аргумент device_ids.

Что это значит на практике. Апгрейд не бесшовный, и порядок действий тут важнее скорости. Если ваши деплой-скрипты, Docker-энтрипойнты или k8s-манифесты полагались на то, что vLLM сам разберётся с видимостью карт через CUDA_VISIBLE_DEVICES, — эта логика молча поменялась, и на мультикарточной ноде вы рискуете обнаружить процесс не на тех GPU, что ожидали. Переход на CUDA 13.0 тянет за собой требования к версии драйвера: на арендованных инстансах с зафиксированным образом это отдельный разговор с провайдером, а не строчка в Dockerfile. И самое коварное — MRv2 с квантизацией по умолчанию: смена рантайма и схемы квантования способна сдвинуть численные результаты, а значит и качество ответов, не роняя при этом ни одного теста на импорты. Правило простое: прогоняйте собственные эвалы на своём трафике до раскатки, а не после того, как поддержка принесёт первые жалобы.

Комментарии