vLLM Qwen — это открытая модель семейства Qwen, запущенная на вашем сервере движком vLLM и доступная приложениям по адресу, совместимому с OpenAI. Запуск занимает вечер, а настоящая работа начинается после него: проверка на русских задачах, замер задержки при одновременных запросах и контроль ответов. Связка подходит командам, у которых данные нельзя отдавать вовне и есть человек, готовый сверять результат.
Модель и сервер
Qwen запускают через vLLM командой vllm serve, а приложения обращаются к нему по OpenAI-совместимым адресам. Сервер отдаёт список моделей и метрики, а качество на русском проверяют собственным набором задач.
Qwen и vLLM занимают разные места в цепочке. Qwen — семейство моделей с открытыми весами, vLLM — сервер, который эти веса загружает и отвечает на запросы. Поэтому выбор состоит из двух вопросов: какую модель семейства брать и хватает ли вашего железа на выбранный размер вместе с нагрузкой.
Состав семейства, размеры и режимы мы разбирали в статье Qwen3: что нового и какую модель выбрать, запуск на одном компьютере — в материале Qwen локально, контейнер для vLLM — в статье vLLM Docker. Здесь конкретная связка: что делать после запуска, чтобы принять решение по замерам и проверкам на собственных данных.
По блогу Qwen, у третьего поколения есть режим рассуждения и быстрый режим, а лицензия Apache 2.0. Для поздних выпусков режимы иногда выносят в отдельные модели, поэтому перед запуском открывайте карточку конкретной модели и документацию vLLM: поддержка архитектуры зависит от версии сервера.
Запуск Qwen
Запуск стоит разложить на шаги, где каждый подтверждается проверкой. Тогда сбой легко локализовать.
- Проверьте в карточке модели архитектуру и убедитесь, что установленная версия vLLM её поддерживает; сомнения снимает пробный запуск на маленькой модели семейства.
- Запустите сервер командой vllm serve с именем модели, ограничением контекста под ваши задачи и ключом доступа.
- Запросите список моделей по адресу /v1/models и сверьте имя, которое понадобится в запросах.
- Отправьте короткий чат-запрос на русском языке и убедитесь, что шаблон чата работает и ответ завершается корректно.
- Откройте метрики на /metrics и запишите исходные значения занятости памяти до начала нагрузки.
Ключ доступа включайте с первого дня, даже если сервер стоит внутри сети. Он защищает от случайных обращений и позволяет различать приложения: у каждого свой ключ, и при утечке один отзывается без остановки остальных. Храните ключи в защищённом хранилище и держите их вне репозитория.
Размер модели выбирайте по запасу памяти: максимум, который кое-как поместился, плохой ориентир. Модель, занявшая почти всю видеопамять, оставит мало места для параллельных запросов, и при первой же нагрузке сервер начнёт сбоить. Лучше взять размер поменьше и оставить запас на контекст и очередь.
Если вы привыкли к Ollama, сравнение подходов описано в материале про запуск через Ollama. vLLM ориентирован на серверную работу: конфигурация у него сложнее, а выигрыш при нескольких одновременных запросах подтверждается только замером.
Русские задачи
Качество на русском языке нельзя принять на веру: модель из семейства может хорошо справляться с общими вопросами и ошибаться в вашей терминологии. Проверка идёт на собственных задачах.
| Тип задачи | Пример запроса | Что оценивать |
|---|---|---|
| Деловое письмо | Ответ клиенту на жалобу по заданным фактам | Тон, полнота, отсутствие выдуманных обещаний |
| Работа с документом | Выдержка из договора и вопрос по сроку оплаты | Верность ответа и совпадение с текстом |
| Расчёт | Задача с несколькими шагами и проверяемым числом | Правильность результата и хода |
| Терминология | Вопрос на профессиональном жаргоне вашей отрасли | Верное употребление терминов |
| Формат | Ответ строго по заданной таблице или полям | Следование шаблону без добавлений |
Следите за длиной ответа и обрезкой. Когда лимит на длину слишком мал, ответ обрывается на полуслове, и пользователь принимает недописанное за готовое. Проверьте на длинных задачах, что ответ завершается, и задайте разумный предел с запасом под объёмные тексты.
Для каждой задачи запишите эталонный ответ или критерий проверки до запуска. Тогда оценка опирается на заданные критерии, а настроение проверяющего остаётся за рамками оценки. Десятка-другого задач достаточно для первой картины, но по одной эффектной демонстрации судить нельзя.
Если нужен режим рассуждения, подробности его проверки разобраны в статье Qwen3 thinking. Он повышает время и расход токенов, поэтому включают его там, где окупается.
Нагрузка и задержка
Одиночный запрос о работе под нагрузкой сообщает мало. Сервер, который отвечает быстро одному пользователю, может заметно замедлиться при десяти одновременных запросах.
- Время до первого слова: показатель отзывчивости, его пользователь замечает сразу.
- Общая длительность ответа: зависит от длины и от того, сколько запросов обрабатывается параллельно.
- Параллельность: как растёт задержка при увеличении числа одновременных запросов.
- Очередь: рост очереди на метриках сигнализирует о пределе сервера.
- Память: запас под контекст и всплески, иначе возможны сбои при длинных запросах.
Учитывайте и разницу между режимами. Рассуждающий ответ занимает сервер заметно дольше быстрого, и смесь двух режимов в одной очереди искажает замеры. Тестируйте режимы раздельно, а в рабочем контуре при возможности разводите их по разным очередям или моделям.
Прогон делайте скриптом: серия запросов с растущим числом одновременных, запись времени и значений метрик. Остановитесь там, где задержка становится неприемлемой для вашего сценария, и запишите это число как рабочий предел, а в документации по нагрузке укажите дату замера и версию сервера. Если пик выше предела, нужна очередь, второй сервер или модель поменьше.
Сколько одновременных пользователей будет у вашего сервера?
Контроль ответа
Открытая модель на своём сервере отвечает уверенно, даже когда ошибается. Контроль ответа встраивают в процесс, оставляя пользователю лишь финальное решение.
- Эталонный набор: контрольные вопросы с известными ответами прогоняются после каждого обновления модели или сервера.
- Проверка по источникам: для ответов по документам требуйте ссылку на фрагмент и сверяйте её.
- Журнал: сохраняйте запрос, ответ, версию модели и параметры, чтобы разбирать сомнительные случаи.
- Границы задач: перечислите, где ответ принимается без проверки, а где его читает человек.
- Версия: фиксируйте версию модели и сервера, иначе изменение результата останется необъяснимым.
Модель готовит черновик, решение принимает человек. Для договоров, расчётов и обращений к клиентам итоговую проверку выполняет специалист, а результат записывается рядом с ответом.
Помните и про обновления. Новая версия vLLM или модели способна изменить скорость и качество, поэтому после каждого обновления прогоняйте контрольный набор и сравнивайте с прежними значениями. Откат на предыдущую версию должен занимать минуты, а для этого держите старый образ и старые веса под рукой.
Проверку нагрузки, выбор модели и контроль ответов собирают в единый процесс в проектах по внедрению ИИ в компанию. Для данных, которые можно отдавать вовне, запасным вариантом остаётся сервис вендора напрямую с его условиями.