Qwen3.8-27B на своей карте против 304B по API. benchmark.. benchmark. deepseek.. benchmark. deepseek. llm.. benchmark. deepseek. llm. Open source.. benchmark. deepseek. llm. Open source. qwen3.8.. benchmark. deepseek. llm. Open source. qwen3.8. искусственный интеллект.

Суббота, вечер. Хотел за час выяснить, какую из двух свежих моделей ставить себе – Qwen3.8-27B или DeepSeek V4 Flash 0731. Вышло семь часов и три новых строки в мой бенчмарк :)

Модель

Балл

Прошло

tok/s

TTFT

Qwen3.8-27B, NVFP4, своя карта

0.789

46/50

59.6

27.7 с

Qwen3.8-27B, тот же вес по API

0.785

44/50

15.0

134.9 с

DeepSeek V4 Flash 0731, по API

0.731

42/50

53.3

16.0 с

Первые две строки – одна и та же модель. Разница в балле 0.004. Разница в задержке – почти пятикратная.

Бенч свой: 50 задач, собранных из моей же двухмесячной работы. Не чистые задачи по коду – это лишь 45% того, что я реально пишу, это стратегические документы и архитектурные решения. Судей трое, сид заморожен, каждый прогон пишет манифест.

Первый прогон сначала соврал, и виноват был я

Первый прогон – 134 секунды до первого токена, 1.79 ₽ за решённую задачу – худшее, что вообще появлялось у меня в результатах. Решил, что дело в ZDR (а я использую на OR только такие модели) и пошёл проверять. У модели на весь OR один провайдер. Модель вышла два дня назад, её поднял один хостер, и его собственная публичная статистика всё объясняет: P99 по сквозной задержке – 788 секунд, ошибки структурированного вывода – 13.45%.

Прогнал через свою карту (Селектел, спасибо!) и на своей карте прогон выдал 27 секунд TTFT, это уже результат.

Еще грабли

Ответ не поместился в reasoning window. Задача arch-001 получила ровно 0 – все три судьи по нулю, ответ пустой. Дефолтные 4096 токенов ушли в reasoning целиком, до ответа дело не дошло: finish_reason=length, content=None (телеметрию допилила два дня, чтобы не получать больше таких проблем).

Сохранённого сырого файла на этот прогон у меня не осталось – я стопнул его на шестой задаче из пятидесяти, а харнесс пишет сырые результаты только после полного цикла. Осталась строка лога и встроенный гард в самом харнессе, который эту же поломку задокументировал в тот же день: «reasoning alone ran to ~9200 chars and got cut off with content=None».

Зато есть чем померить масштаб промаха. Когда та же задача отработала с поднятым бюджетом, она съела 11 069 токенов reasoning и 18 374 всего. В 4096 это не помещалось никогда – вопрос был только в том, замечу я это как ошибку бюджета или запишу как слабость модели, пофиксил и поднял до 32768. Та же задача, тот же вес – 0.87. Отлично!

Судья придумал галлюцинацию. Gemini поставил 2/10 с формулировкой: «галлюцинация несуществующих моделей Qwen3-30B-A3B и Qwen3-32B». Обе существуют. Qwen3-32B я месяц назад гонял через этот же харнесс, он записан в моём же CHANGELOG.

Перепроверил на том же сохранённом тексте, temperature 0: gemini снова 2, gpt-5.1 – 9, opus-4.8 – 8. Семь очков разброса на одном и том же ответе. Воспроизводимость самого gemini – 0.014, то есть ошибка не случайная, а стабильная: она повторится на каждом прогоне этой задачи. Выкинь я эту одну задачу – и gemini, и весь набор судей дают ровно 0.767. То есть не набор судей не правит перекос. Он ловит редкий провал, который одиночный судья не в состоянии заметить изнутри себя (я искренне хотел оставить только Gemini из-за высокой стоимости таких прогонов, но тут результат говорит за себя).

Reasoning режим работал, счётчика токенов у меня не было. На своей карте сработал гард: модель помечена reasoning-capable, а reasoning_tokens – ноль. Ровно та картина, из-за которой у меня в июле уже был один невалидный замер. Полез в логи: трейс на месте, все 50 задач. vLLM корректно отделяет размышление, но не отдаёт разбивку в usage.

Посчитал: 104 331 символ трейса локально против 105 524 по API на тех же семи задачах. Отношение 0.99 – то есть модель на своей карте думала столько же по объёму. Про содержание размышления это ничего не говорит, но исключает главное подозрение: reasoning не был выключен, отсутствует только счётчик. Поправил отчёт – теперь пишет n/a (50 traces), потому что «0» читается как «reasoning выключен», и однажды это уже дало неверный вывод.

(Ещё две мелочи, которые совсем не мелочи: судьи ходили мимо ZDR, потому что judge_call терял extra_body; и мой собственный парсер разбора истории разделял текст по запятой там, где работать должно через пробел, – из-за чего я успел обвинить свой же старый пост в несуществующей ошибке. Обе починены и влиты – PR #14.)

Очень хотелось, но DeepSeek я не поставлю, и дело не в качестве

304 млрд параметров, MIT, чекпойнт 166.9 ГБ. На двух картах RTX PRO 6000 96 ГБ после служебного резерва остаётся 4.46 ГБ под 32K контекста. 256K уже не помещается. Q4 экономит 11.9 ГБ, то есть почти ничего; Q2 роняет перплексию с 4.53 до 6.08.

Самый дешёвый рабочий вариант – две DGX Spark, ~700 тысяч рублей. Окупаемость против API – порядка 11 400 прогонов бенча в месяц (я сделал три за вечер).

Это правда хорошая модель. На публичной таблице Artificial Analysis у неё 52 против 38 у Qwen3.6-27B – заметно выше, и это не только про код. Просто на моих пятидесяти задачах она отстала от модели, которая в одиннадцать раз меньше и влезает в одну карту. Лишних 96 гигабайт я у себя не наблюдаю, отпадает.

Подводя итоги

Qwen 3.8-27B – забираю в работу, посмотрим что из этого выйдет, подбираю актуальных харнесс из открытых.

Независимого сравнения Qwen3.8-27B и DeepSeek V4 Flash 0731 я в публичном доступе не нашёл. Если у кого-то есть – покажите, сверю со своим.

Автор: daniel_ivanov

Источник