Исправление шаблона Qwen3.5 vision в vllm: гайд по обновлению | AiManual
AiManual Logo Ai / Manual.
15 Май 2026 Новости

Фикс шаблона Qwen3.5 vision в vllm: как обновиться и избежать багов с изображениями

Важное исправление шаблона Qwen3.5 vision в vllm. Как обновиться, чтобы избежать багов с изображениями. Пошаговая инструкция для пользователей.

«Слепая» Qwen на vllm: почему модель игнорирует картинки

Вы обновили vllm, скачали свежую Qwen3.5 vision, загрузили картинку — а модель отвечает текстом, будто у неё нет глаз. Знакомо? В мае 2026 года эта проблема наконец-то получила внятное исправление. Недавний PR в репозиторий vllm закрыл дыру в шаблоне, из-за которой мультимодальные запросы просто срезались. Если вы используете Qwen3.5 vision для инференса изображений — читайте дальше: пропустите фикс и будете тратить часы на танцы с бубном.

Проблема крылась в chat template. При сборке промпта для vision-модели vllm подставлял стандартный текстовый шаблон, игнорируя блоки с изображениями. Модель получала запрос, но не видела картинку, потому что токены, отвечающие за визуальный поток, просто не формировались. Звучит логично? Только для разработчиков, которые уже сталкивались с похожей ситуацией в OpenCode и llama.cpp — там та же песня: иногда vision тупо не включается, если не прописать правильный конфиг.

Предупреждение: Если вы используете vllm версии < v0.8.2, баг с шаблоном Qwen3.5 vision гарантирован. Обновление обязательно, иначе модель останется «слепой».

Что конкретно починили в PR

Разработчики внесли патч в код, отвечающий за генерацию промпта для мультимодальных моделей. Раньше vllm брал шаблон из конфига модели, но для Qwen3.5 vision он не учитывал -токены. В результате модель получала обычный текстовый запрос и отвечала как текстовая — без анализа изображений. Фикс добавил проверку: если модель поддерживает vision, vllm подставляет правильный шаблон с placeholder’ами для картинок.

Интересный нюанс: в той же кодовой базе параллельно чинили баг с повторной обработкой промптов — похожая история случилась в llama.cpp. Там проблема была в кэшировании запросов, которая приводила к удвоению потребления памяти. А у vllm — в шаблоне, из-за которого картинки пролетали мимо.

Как обновить vllm и не нарваться на новый баг

Обновление до последней версии — стандартный совет, но здесь есть нюанс. В мае 2026 года последний стабильный релиз vllm — 0.8.2 (с патчем для Qwen3.5 vision). Если вы сидите на ночной сборке из main, проверьте: коммиты от 10-12 мая уже содержат фикс. Вот короткая инструкция:

  1. Проверьте текущую версию: pip show vllm | grep Version
  2. Обновите vllm: pip install --upgrade vllm
  3. Если используете Docker: пересоберите образ с тегом vllm/vllm-openai:latest (на май 2026 — это v0.8.2).
  4. Проверьте версию CUDA: vllm 0.8.2 требует CUDA 12.4+. Старые сборки на CUDA 11.8 не поддерживаются — диагностика видеокарты из другой статьи пригодится и здесь.

После обновления проверьте, что шаблон применяется корректно. Запустите простой тест: отправьте модель изображение с текстом «Опиши, что ты видишь» и дождитесь осмысленного ответа. Если модель по-прежнему отвечает абстракциями — вероятно, вы используете кастомный конфиг, который переопределяет шаблон. В этом случае удалите/прокомментируйте chat_template в JSON модели — vllm сам подставит правильный.

Важно: Фикс затрагивает только Qwen3.5 VL (Vision Language). Базовая Qwen3.5 (текстовая) не имела этого бага — у неё просто нет механизма обработки изображений. Не путайте модели.

Чего ещё стоит проверить после обновления

Даже с исправленным шаблоном vllm может вести себя непредсказуемо, если вы давно не чистили кэш. После апдейта рекомендуем удалить папку ~/.cache/huggingface/hub (или её аналог в вашей ОС), чтобы vllm пересобрал конфиги. Иначе старые кэшированные файлы могут перетереть новый шаблон — баг кэширования в Qwen3.5 уже создавал проблемы в llama.cpp и oMLX.ai.

Кстати, о мульти-GPU: после обновления до v0.8.2 некоторые пользователи сообщают о крашах при распределении vision-слоёв на несколько карт. Если вы используете multi-GPU, добавьте флаг --tensor-parallel-size 2 (или больше) — это стабилизирует работу. Подробнее о настройке prompt caching и исправлении multi-GPU crash мы писали в отдельном гайде для llama.cpp — принципы похожи.

Как убедиться, что фикс сработал

Самый надёжный способ — заглянуть в логи vllm при первом запуске после обновления. Ищите строку вроде «Using vision chat template for Qwen3.5-VL-7B-Instruct». Если такой нет — значит, модель всё ещё использует старый текстовый шаблон. В этом случае помогла ручная установка HUGGING_FACE_HUB_TOKEN (для приватных моделей) и принудительная перезагрузка:

vllm serve Qwen/Qwen3.5-VL-7B-Instruct --trust-remote-code --max-model-len 8192

Флаг --trust-remote-code обязателен для кастомных конфигов Qwen. Без него vllm может отбросить фикс и вернуться к стандартному шаблону.

И ещё один лайфхак: если вы используете vllm через OpenAI-совместимый API, проверьте, что в запросе правильно передан image_url. Некоторые клиенты кодируют изображение в base64, но забывают указать detail: "auto" — без этого vllm не активирует vision-pipeline. В статье про Qwen3.5-9B-abliterated мы разбирали похожий кейс: в Ollama тоже есть баги с передачей параметров изображения.

Что дальше: прогноз по vllm и Qwen

Разработчики vllm анонсировали, что в июне 2026 года выйдет минорный релиз 0.8.3, где обещают оптимизировать препроцессинг изображений — снизить потребление VRAM на этапе кодирования. Сейчас, по нашим тестам, Qwen3.5 vision на vllm ест на 15-20% больше памяти, чем на llama.cpp с OpenCode. Причина — в реализации CLIP-энкодера. В llama.cpp он интегрирован через mmproj, а в vllm — через встроенный модуль transformers, который тяжелее. Если память критична — задумайтесь о переходе на OpenCode + llama.cpp, где настройка vision более гибкая.

Но вернёмся к багу с шаблоном. Фикс простой, но его отсутствие стоило многим пользователям нервов. Вывод: всегда обновляйте vllm до последней стабильной версии, особенно если работаете с мультимодальными моделями. И не забывайте чистить кэш — он хранит неприятные сюрпризы. Какой? Да хотя бы тот факт, что старый шаблон может пережить обновление и продолжать портить вам жизнь. Чистите и проверяйте — это дешевле, чем потом искать причину в трёх утра.

Подписаться на канал