В прошлой серии, выбирая что хостить дома: сравнил Qwen3.8-27B на арендованной RTX PRO 6000 с DeepSeek V4 Flash по API. Дальше - очевидный вопрос судя по комментариям: а если DeepSeek поставить на ту же карту, урезав до 2 бит? Заодно взял две модели, которые в этом бенче никогда еще не бывали - Ornith-9B и Ornith-35B.

Модель

Балл

Успешных заданий

tok/s

TTFT

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

0.789

46/50

56-59

827 мс

DeepSeek V4 Flash, API, полная точность

0.731

42/50

53.3

15.95 с

Ornith-35B (MoE), своя карта

0.729

42/50

236.5

4.81 с

DeepSeek V4 Flash, IQ2_XXS, своя карта

0.697

35/50

66.8

8.48 с

Ornith-9B, своя карта

0.628

31/50

123.6

9.31 с

Бенч тот же: lii-code-bench-ru, 50 задач, замороженный сид, ансамбль из трёх судей (gemini + gpt-5.1 + opus-4.8).

Конфиг выбираю уже не на глаз

DeepSeek V4 Flash 0731 — 284 млрд параметров, 13 активных. Квант UD-IQ2_XXS от Unsloth: маршрутизатор и общие эксперты остаются в Q8/F16, сжимаются эксперты, квантование выживает без пустых ответов.

Перед бенчем прогнал сетку --ctx-size на реальной карте: 131072 / 393216 / 524288 / 1048576, всегда --parallel 1 (единственный слот - про это ниже). Реальная цена KV-кэша оказалась ≈9 КБ/токен, не 26.3 КБ, которые я по ошибке насчитал раньше на конфиге с 4 слотами. Декод держался на ~66 ток/с при любом размере контекста.

В работу взял 512K - вдвое больше потолка Qwen3.8, запас 6.4Гб до предела карты. Родной потолок модели 1048576 (1М) тоже грузится (95.7Гб, запас 2.2Гб), но под реальным префиллом это не проверено - не стал рисковать ради лишнего контекста, который вряд ли понадобится на практике (путем проб и оплаченных инвойсов в Claude даже вижу, что больше 70% лучше не задействовать).

Заявил победу - а сам ошибся в замере

Первый прогон DeepSeek оценил одним судьёй (gemini) и получил 0.681 - выше, чем любая локальная конфигурация Qwen на тот момент. Написал: «локальная модель обходит всё, что мы можем себе позволить». Ошибался, и такое уже писали в комментах, но без арендованной 24/7 карты делать полные прогоны в несколько раз - было сложно, а оценка топ-моделями идет через OR и стоит ощутимых денег.

Но, взяв себя под контроль, задался вопросом - «Мы уверены в цифрах?», пошел сравнивать составы судей по всем прошлым прогонам и увидел: каждый сравнимый замер шёл на ансамбле из трёх (gemini + gpt-5.1 + opus-4.8), мой - на одном gemini. Разные судьи - разная шкала, сравнивать нельзя, хотя сначала хотелось сэкономить.

Пересчитал на том же ансамбле: 0.697. И тут вторая ошибка - лучший локальный Qwen у меня в голове был 0.628 из старой таблицы (single-judge, разные конфигурации MTP). Реальный лучший результат - 0.789, из актуального прогона, который я просто не поднял из архива результатов в силу усталости наверное. Заголовок развернулся на 180 градусов.

Бенчмарк жжет деньги

При замере Ornith два прогона подряд возвращали judge error PermissionDeniedError на трети задач — сразу от всех трёх судей. Баланс аккаунта на OR: 456,5 из 460 долларов потрачено, три с половиной осталось.

Поле с лимитом самого ключа (limit_remaining) показывало запас в семьдесят с лишним — оно решает не всё, есть общий баланс аккаунта поверх. GET /api/v1/credits помог, зафиксировал, обновил документации.

12 из 50 задач в первом прогоне Ornith-9B, 3 из 50 во втором - оказались с одинаковым нулём по всем трём судьям сразу. Пополнил счёт, перепрогнал - все чисто, класс.

Модель, на которую я не рассчитывал

Ornith-35B-A3B (MoE, активных параметров на токен около трёх) впервые попала в этот бенч. Результат: 0.729, 42 из 50 задач - ровно то же число, что у DeepSeek по API на полной точности, при декоде в 4.4 раза быстрее (236.5 против 53.3 ток/с). До замены Qwen3.8 в продакшене по чистым цифрам не дотягивает - 0.06 балла и 4 задачи разница (вот это критичнее).

omp bench соврал про задержку — и виноват был я, снова

Прогнал omp bench на DeepSeek-IQ2 с параметрами по умолчанию (--par 4, четыре параллельных запроса) - получил TTFT 14-23 секунды. Прочитал как приговор reasoning-модели: думает долго перед первым токеном.

Причина оказалась другая: DeepSeek на этой карте развёрнут с --parallel 1 — единственный слот, ради максимального контекста на сессию. Четыре параллельных запроса от бенча упирались в очередь друг за другом на одном слоте; поздние запросы в пачке получали чужую задержку. Перепрогнал с --par 1 (последовательно, как реально работает одна сессия): TTFT 239 мс — лучший результат среди всех четырёх моделей на карте, включая Qwen (827 мс).

DeepSeek я не поставлю в продакшн, и дело не в качестве

304 млрд параметров, MIT, 2-битное сжатие, минус 0.034 балла и 7 задач против той же модели на полной точности по API. Судьи цитируют конкретику: выдуманные цифры производительности несуществующих связок, рекомендация квантования, прямо противоречащая условию задачи — ровно то, чего ждёшь от 2-битного сжатия маршрутизируемых экспертов (потери на 2Q о чем я вчера говорил).

Нет, это по-прежнему интересная модель — лучшее TTFT и второй по скорости декод среди всех, что я мерил на этой карте + вдвое больший контекст, чем у Qwen. Держу как кандидата на узкую роль — планировщик или ревьюер, не исполнитель.

Комментарии (0)