Самая информативная цифра в pull request #61018 для vLLM — это потеря: 1,5%. Это верхняя граница, которую автор устанавливает для своего изменения — примерно 0,6–0,8 миллисекунды экономии на 42-миллисекундном среднем шаге, измеренная на машине, которая ему не принадлежит, в патче, который он вообще не может запустить. Pull request под названием «[Model] Qwen4Exp: support batch-sharded sampling (compute_logits_local)», открытый 10 октября 2026 года участником kimseunghyun-kr, добавляет три строки кода модели в два файла, чтобы архитектура Qwen4Exp могла использовать путь выборки, внедренный в vLLM в августе. Это черновик. Он состоит из 14 строк кода модели и 57 строк теста. И его все равно стоит внимательно прочитать из-за того, что именно исправляют эти три строки: Qwen4Exp — это архитектура, лежащая в основе Qwen3.8-Flash-Next, модели с открытыми весами на 125 миллиардов параметров, которую вендор опубликовал 24 августа 2026 года как «экспериментальный превью архитектуры, которая ляжет в основу Qwen4». Двухпутевая ошибка в чисто текстовой половине этой архитектуры — это именно та деталь, которую можно узнать, только наблюдая за уровнем обслуживания, а не из поста о запуске.
Чтобы внести ясность в контекст, поскольку это важно: сама Qwen 4 еще не выпущена. Вендор анонсировал четыре уровня Qwen 4 — Qwen 4 Max, Flash, Plus и 27B — на своей конференции Apsara 22 сентября 2026 года, но не опубликовал ни весов, ни идентификаторов, ни цен, ни длины контекста, ни бенчмарков ни для одного из них. Нижеприведенная информация не является релизом. Это отчет о текущем состоянии на основе одного чернового pull request, и все, что содержит цифры, является либо проверяемой временной меткой, либо показателем, который участник ввел в тело своего PR, либо значением, считанным из публичного конфигурационного файла модели.
Что такое пакетно-шардированная выборка, в одном абзаце
Тензорный параллелизм распределяет веса модели между GPU; проекция словаря — это самый широкий отдельный тензор в стеке, поэтому каждый ранг обычно вычисляет только свой срез словаря, а затем все ранги выполняют all-gather, чтобы каждый из них в итоге содержал полные логиты для каждого запроса в пакете. Шардированная выборка инвертирует этот обмен. Вместо репликации словаря между рангами она шардирует пакет: каждый ранг выбирает один срез запросов, а ранги обмениваются срезами словаря друг с другом через all-to-all. Документация CLI самого vLLM описывает этот флаг прямо — «Каждый ранг выбирает срез пакета вместо того, чтобы каждый ранг выбирал весь пакет» — и указывает ограничения: --enable-batch-sharded-sampling по умолчанию имеет значение False, требует tensor_parallel_size больше 1, как минимум tensor_parallel_size максимальных последовательностей и неотрицательное max_logprobs. Последняя строка этой документации — это «крючок», на котором держится этот pull request: «Модели подключаются путем реализации compute_logits_local».
Сама функция не нова. vLLM объединил её в PR #50465 — «[Model Runner V2] batch-sharded sample» от Джанкарло Дельфина — 24 августа 2026 года, в тот же день, когда были опубликованы веса Qwen3.8-Flash-Next. Мотивацией были память и задержка: материализация полных целевых логитов стоит порядка размера пакета × (спекулятивные токены + 1) × размер словаря, а шардирование сокращает это выделение памяти в фактор степени тензорного параллелизма, позволяя работе top-k и top-p сэмплера выполняться параллельно. Это подготовительный шаг, а не конечная цель: текст самого PR отмечает шардированные черновики логитов как будущую работу.
Почему три строки — это вся работа
Вот в чем заключается реальный дефект, и он хорош тем, что невидим снаружи кода. Реализация Qwen4Exp в vLLM поставляется в виде двух классов. Qwen4ExpForConditionalGeneration — это обертка для зрения и языка (vision-language), где визуальная башня Qwen3-VL прикреплена к языковой модели, а Qwen4ExpForCausalLM — это чисто текстовый путь. Обертка наследует compute_logits_local от Qwen3_5ForConditionalGeneration, которая перенаправляет вызов в language_model.compute_logits_local. Но класс языковой модели, на который указывала обертка, никогда не определял этот метод.
Таким образом, два пути находились в разных состояниях. Развертывание Qwen3.8-Flash-Next с поддержкой зрения и языка могло использовать шардированный путь; чисто текстовое — нет, потому что метод, которому делегировала обертка, не существовал. Исправление представляет собой один метод, идентичный в копиях файла модели для NVIDIA и AMD:
• Метод возвращает self.logits_processor(self.lm_head, hidden_states, skip_gather=True) — собственный шардированный словарь ранга, без сбора (gather) и без материализации полного словаря на каком-либо ранге.
• Он следует тому, что в PR называют «тем же 3-строчным шаблоном, что и в Qwen3.5 и MiniMax M3», на чем стоит остановиться: два других семейства моделей в том же репозитории уже подключились к этой функции. Qwen4Exp была просто той, которая этого не сделала.
Тестовый файл — это место, где легче всего проверить честность патча и где проще всего увидеть его ограничения. Он состоит из 57 строк, параметризован как для модулей NVIDIA, так и для AMD, и не загружает модель. Вспомогательный код создает класс с помощью object.__new__, заменяет голову языковой модели на nn.Identity и устанавливает фиктивный процессор логитов, который возвращает свои входные данные плюс один, записывая при этом, как он был вызван. Первый тест утверждает, что 4.0 на входе превращается в 5.0 на выходе и что записанный вызов содержал skip_gather=True. Второй оборачивает языковую модель в класс условной генерации и утверждает, что делегирование проходит успешно. Это реальный тест связей и больше ничего — никакое ядро не задействовано, граница рангов не пересекается, а количество задействованных GPU равно нулю.
Оба этих факта указаны в PR, а не скрыты. В docstring самого тестового файла Qwen4Exp названа «крошечным CPU-тестовым дублером». В разделе валидации автор отмечает, что он вообще не смог импортировать модель в своей среде macOS, потому что сборка transformers, которая у него была, не содержала Qwen4ExpConfig. Запуск CUDA все еще был в ожидании. Сквозной бенчмарк — агентный набор данных MLPerf, 20 одновременных сессий, три 60-минутных этапа — все еще был в ожидании. Путь логитов самого автора MTP помечен как непроверенный. LoRA уже отклонена флагом выше по стеку, поэтому она вне области действия, а не является регрессией. Также есть строка, раскрывающая, что черновик был написан с помощью ИИ, а в трейлере коммита Claude Opus 5.5 указан как соавтор — это тот тип раскрытия информации, который должен быть нормальным в стеке такого размера, но по большей части таковым не является.
Оценка в 1,5% и измерения, на которых она основана
Оценка участника — это трассировка nsys при 16 одновременных сессиях на Qwen3.8-Flash-Next-FP8 с тензорным параллелизмом 8 и экспертным параллелизмом на восьми картах A100-SXM4-40GB: около 1,6 миллисекунды из 42-миллисекундного шага, сокращенные примерно до одной трети этого значения, что дает сквозной прирост в 1,5–2%. Его заголовок — это арифметика: 0,6–0,8 мс на 42 мс. Обратите внимание на то, что к этому прилагается: 42 мс — это показатель задержки между токенами, поэтому сокращение на 1,7% — это сокращение времени генерации токена на 1,7%, а не утверждение о пропускной способности в абстрактном смысле.
Честное сравнение проводится с собственными объединенными показателями родительской функции, поскольку они были измерены от начала до конца тем, у кого есть соответствующее оборудование. В запусках Speed-Bench 2K/2K, опубликованных в PR #50465, пакетно-шардированная выборка (batch-sharded sampling) позволила DeepSeek V4 с DSpark при 7 спекулятивных токенах и параллелизме 64 увеличить скорость с 2,62 до 2,66 запросов в секунду — прирост пропускной способности на 1,53% — при этом медианная задержка между токенами снизилась на 3,09%, а время до первого токена выросло на 1,45%. На MiniMax M3 с DSpark при 8 спекулятивных токенах пропускная способность запросов выросла на 5,38%, а медианное время обработки токена (TPOT) снизилось на 8,33% с 15,61 до 14,31 миллисекунд. В тех же документах по планированию указано, где это не помогает: при параллелизме от 4 до 16 результаты оказались неизменными или слегка отрицательными, при этом в сегменте с параллелизмом 16 пропускная способность снизилась на 0,54%, а длина принятия — на 1,89%.
Этот паттерн — то, что стоит запомнить. Шардированная выборка оправдана, когда выборка интенсивна, а пакет большой — высокая параллельность, много спекулятивных токенов, алгоритмы top-k и top-p выполняют реальную работу, — и она немного проигрывает, когда пакет достаточно мал, чтобы операция «все-ко-всем» (all-to-all) стала чистыми накладными расходами. Оценка в 1,5% для одной модели, выбравшей этот метод, согласуется с этим, а не противоречит: цифры 5,38% и 8,33% относятся к другим моделям с другими спекулятивными бюджетами, а модель в этом PR имеет свою собственную конфигурацию, свой словарь на 248 320 токенов и свой собственный путь спекулятивной декодировки.
Ничего из этого не прошло независимый аудит. Цифры родительского PR — это парные запуски одного участника на одном узле; цифры дымового тестирования здесь — это трассировка на оборудовании, которого нет у автора, из версии патча, которая, по его словам, была измерена только при 16 сессиях. Измерение, проведенное одним участником в одной конфигурации, является полезным сигналом о направлении, но плохой основой для планирования мощностей. Причина, по которой об этой теме вообще стоит писать, — это направление, а не десятичные дроби.
Что окружающий кластер патчей говорит о Qwen4Exp
Один черновик PR не был бы историей. История в том, что Qwen4Exp стала устойчивой целью для обслуживания за неделю, когда это появилось, и самый маленький патч в этом кластере — тот, который делает этот паттерн понятным. За семь дней по 10.10.2026 vLLM получила от того же участника и других: путь основного KV-кэша FP8 для разреженного внимания (sparse attention) на Ampere с увеличением емкости KV в 1,83 раза на восьми A100 и в 1,87 раза на четырех RTX 3090, а также примерно в 2,7 раза больше запросов при параллелизме 16 ценой увеличения TPOT декодирования одного потока примерно на 6%; исправление для дополнения W4A4 MoE при тензорном параллелизме 1 и экспертном параллелизме; путь для AMD, который переключается с неподдерживаемых операций AITER FP8 MoE на fp16; исправление, переносящее состояние короткой свертки PLE через режим выравнивания; и ядро декодирования, которое распаковывает байты e4m3 по четыре за раз на регистр на sm_80. Один из них, перенастройка плана H200 M=4 объединенного QSA LL-GEMM, был объединен в основную ветку 09.10.2026.
Прочитайте этот список целиком, и он скажет нечто конкретное. Архитектура Qwen4Exp — та, которую вендор еще не выпустил, — настраивается для Ampere, Hopper, ROCm и резервного fp16 одновременно в рамках проекта, который поставляет поддержку «нулевого дня» для моделей, которые люди действительно могут скачать. Причина не загадочна: Qwen3.8-Flash-Next — это реальная, скачиваемая, активно используемая модель, построенная на архитектуре, которую будет использовать Qwen 4. Появятся ли веса Qwen 4 в таком виде, неизвестно, и вендор ничего не сказал, но область обслуживания расширяется публично, и это проверяемая информация, в отличие от слухов об окне с октября по ноябрь.
Некоторые архитектурные особенности также публичны для тех, кто читает конфигурацию, а не анонсы. Конфигурация Qwen3.8-Flash-Next перечисляет словарь из 248 320 токенов на 48 слоях, 512 экспертов с 10 маршрутизируемыми плюс одним общим активным на токен при промежуточной ширине эксперта 640, скрытом размере 2560 и нативном контексте 262 144 токена, который, как утверждается, расширяем до одного миллиона. Это гибрид: список типов слоев чередует три блока линейного внимания с одним блоком полного внимания, а блоки полного внимания используют путь разреженного внимания с одноглавым индексатором, который сжимает ключи в четыре раза и сохраняет бюджет в 2048 позиций. Существует таблица эмбеддингов для каждого слоя на слое 2, n-граммный эмбеддинг со словарем на 20 миллионов записей — это та самая таблица на 47,7 ГБ, которую другие патчи в этом кластере активно размещают на хосте, — и однослойная голова MTP для спекулятивной декодировки. Резюме карточки модели гласит: «125B с 6B активированными, плюс 51B n-граммный эмбеддинг и 4B MTP». Словарь на 248 320 записей — вот почему проекцию логитов стоит шардировать в первую очередь.
Что это не меняет для вас
Стоит быть точным, потому что такой плотный кластер патчей может выглядеть как запуск. Ничего из вышеперечисленного не объединено, и одна часть — работа с KV-кэшем Ampere FP8 — явно не проверена в CI, потому что в CI vLLM нет A100. Не существует выпущенной версии vLLM, которую можно установить сегодня и которая содержит опцию шардированной выборки Qwen4Exp. Нет независимого бенчмарка поведения Qwen3.8-Flash-Next при обслуживании с любыми из этих изменений; каждая цифра, приведенная выше, взята из текстов PR, что делает их сообщенными участниками и непроверенными в том смысле, что ни одна третья сторона не воспроизвела запуск. А главная цифра в PR, с которого началась эта статья, — 1,5%, что является реальным приростом в стеке обслуживания, но не поводом для смены модели.
Что изменило бы решение, так это полный, проверенный запуск обслуживания, а его пока не существует. Измерения темпа, которые действительно существуют для Qwen3.8-Flash-Next, находятся вне этих патчей: модель имеет индекс интеллекта 40 на Artificial Analysis, что значительно выше медианы 18 для моделей с открытыми весами аналогичного размера, и эта цифра не зависит от всего, что здесь обсуждается.
Что можно вызвать сегодня, и угол маршрутизации
Здесь картина становится практичной для всех, кто дочитал до этого места и хочет использовать размещенную модель, а не настраивать ее. Qwen3.8-Flash-Next нет в каталоге OrcaRouter — это не одна из 205 моделей, которые мы маршрутизируем, и для нее нет размещенной конечной точки. Но производный аналог, который она предвосхищает, есть: qwen/qwen3.8-flash, официальный релиз Qwen3.8-Flash, который, как описывает карточка модели самого вендора, содержит больше функций, чем превью, включая контекст на один миллион токенов по умолчанию и встроенные инструменты, доступен по цене $0,15 за миллион входных токенов и $0,47 за миллион выходных токенов, передаваемых по прейскуранту провайдера без наценки. Для масштаба в том же семействе, qwen/qwen3.8-27b стоит $0,33 и $2,40, а qwen/qwen3.8-max — $2,00 и $6,00 — все доступны по одному ключу.
Есть две причины, по которым это важнее, чем обычно для статьи о еще не выпущенной архитектуре. Первая — это стоимость переключения. Если вы хотите откалибровать, как модель с разреженным вниманием (sparse-attention) будет работать с вашим трафиком до выхода Qwen 4, вам нужно сравнить ее с qwen/qwen3.8-flash по прейскурантной цене — а использование роутера означает, что модель, которую вы тестируете, и модель, на которую вы можете переключиться, находятся за одной и той же конечной точкой, используют один и тот же SDK и ключ, без необходимости подписывать второй контракт. Вторая причина заключается в том, что каждое изменение в обслуживании в этом кластере патчей нацелено на self-hosted vLLM. Если вы не используете восемь A100, то увеличение емкости KV в 1,83 раза и выигрыш в 1,5% при сэмплировании — это то, о чем вы читаете, а не то, что получаете. Маршрутизируемая конечная точка — это версия, которая работает без этапа сборки: автоматическое переключение при сбоях провайдера и DSL маршрутизации, который позволяет разместить облачный вызов рядом с self-hosted вызовом в одной конечной точке, когда у вас есть собственное оборудование для измерений.
Единственное, чего не стоит делать, — это воспринимать эту статью как повод ждать Qwen 4. Нет ни даты. Нет ни цены. Нет количества весов для реального продукта — приведенные выше цифры описывают предварительную сборку, а не сам продукт. Существует стек обслуживания, который публично готовится для архитектуры, доступной на данный момент только в виде предварительной версии.
Краткая версия
Три строки, сокращающие разрыв между путями обработки только текста и мультимодальными путями в одном файле модели, сами по себе не являются новостью. Это тот тип патча, который был бы похоронен в коммите слияния, если бы у кого-то было время его просмотреть, и он вполне может быть включен в более крупное изменение или вовсе закрыт — собственные рекомендации агента vLLM bot, процитированные в PR, предписывают участникам, использующим ИИ, закрывать свою работу, если она не приносит значительной пользы, а 1,5% — это цифра, которая вызывает такой вопрос. Что делает это достойным вашего внимания, так это то, что оно документирует: таблицу n-грамм на 20 миллионов записей, MoE с 512 экспертами, где десять экспертов активны на токен, гибрид линейного внимания и сжатого разреженного внимания, спекулятивную голову — все это настраивается для NVIDIA и AMD, от Ampere до Hopper, еще до того, как появится продукт, который будет это использовать. Если вас интересуют возможности обслуживания Qwen4, то именно в описаниях PR сейчас живут его реальные спецификации. Если вы хотите вызвать модель сегодня, Qwen3.8-Flash — это то, что доступно на самом деле.
Один API для 200+ моделей, автоматическое переключение при сбоях, DSL маршрутизации. Изучите каталог моделей OrcaRouter









