0,56 + 0,38 + 0,04 + 0,03 = 1,01

Обновил vLLM на арендованной карте с 0.27.1 на 0.28.0 — рутинная задача, минорная версия, дифф в одну строку в конфиге. Вторая модель на той же карте не поднялась: ValueError: Free memory... is less than desired.

Полез в цифры. Карта делится между двумя моделями и двумя вспомогательными сервисами — доли видеопамяти под каждую: 0,56 + 0,38 + 0,04 + 0,03. Сумма — 1,01. Больше ста процентов карты, прописанные в конфиге полгода назад — и всё это время работавшие на незасчитанном запасе (школьная арифметика, полгода никто не складывал). Новая версия vLLM считает свободную память чуть строже старой — и запас закончился.

Быстрое решение: вторая модель (Ornith-35B) реально нужна на 5 запросов в неделю — ночной агент, который собирает дайджест. Держать её постоянно ради этого бессмысленно. Перевёл на запуск по требованию, урезал долю с 0,38 до 0,34 — и обе модели снова поднимаются вместе, с запасом в 6,5 ГБ, а не в минус.

Флаг, который никто не выставлял

Пока чинил, нашёл вики сообщества под ту же серию карт (RTX PRO 6000, Blackwell) — там таблица: без явного --attention-backend flashinfer декод на длинном контексте проседает вдвое-втрое. У себя флаг не стоял никогда, полгода. Замерил на тех же промптах, до и после:

Контекстбез флагас флагом
~1K токенов86 ток/с83 ток/с
~16K7081
~32K6484
~64K4275

На коротком контексте разница тонет в шуме. На 64K, а именно там живёт реальная агентная работа, — плюс 79%.

Замер, который сначала соврал

Дальше прогнал обе модели через свой архитектор-бенч заново, с текущим железом. Первый результат: 0,13 у обеих — на бумаге разгром. На деле ответы модели читались нормально, а судьи (три модели через OpenRouter) массово падали с PermissionDeniedError. Не лимит запросов — Cloudflare заблокировал сам IP, причём не только домашний: та же ошибка со совсем другого дата-центра, даже на публичном эндпоинте без ключа.

Починка нашлась там, где не ждал: обычный запрос через настоящий браузер проходит, а через HTTP-клиент — нет, значит дело в отпечатке. Пересчитал те же промпты через браузерный fetch и получил настоящие цифры: 0,762 у Qwen3.8-27B, 0,737 у Ornith-35B. Обе — в пределах шума от замеров конца августа. Апгрейд ничего не сломал.

Оценка, которая держится

Qwen и Ornith статистически неотличимы по баллу. Но не по тому, что происходит на конкретной задаче про выбор железа и кванта для архитектора-основателя на одной карте: Qwen посчитал видеопамять верно и назвал реальные модели. Ornith сказал, что чекпойнт влезет в A100 80GB, хотя честный расчёт кэша даёт больше ста гигабайт, и придумал две несуществующие альтернативные модели. Судьи поймали сами, без подсказки.

При этом Ornith честно хорош — MoE, декодит в 2-3 раза быстрее на параллельной нагрузке, и на открытых задачах вроде составления документа не уступает ни балла. Просто это не модель, которой доверяешь цифру без проверки. Qwen остаётся основной; Ornith — для фонового и параллельного, где потом кто-то (Qwen или я) проверяет результат.

Оговорка

Замер — один прогон на конфигурацию, тот же разброс, что и раньше. Судейский блок Cloudflare пока не диагностирован до конца — это могла быть временная реакция на два одновременных прогона, а не постоянная метка IP. Не проверял, повторится ли завтра.

Читать по теме