Встала задача - срочно за вечер решить практический вопрос: какой квант ставить на карту и нужна ли мне RTX5090 домой (“нужна, нужна, нужна!” говорил внутренний голос). Прогнал 18 конфигураций по схеме - три модели, пять-шесть квантов на каждую, один и тот же набор из 22 реальных задач (код, RU-рассуждение, форматирование). Как итог - ответ на свой вопрос я получил, допом упало еще два интересных нюансика.
Карта — арендованная у Selectel RTX PRO 6000 (96 ГБ, Blackwell), частично по их AI-грантовой программе.
Таблица
Модель | Квант | Вес | 22/22 | ток/с |
|---|---|---|---|---|
Ornith-9B | IQ3_M | 4.72 ГБ | 22/22 | 228.7 |
Ornith-9B | Q4_K_M | 5.91 ГБ | 22/22 | 195.1 |
Ornith-9B | Q5_K_M | 6.85 ГБ | 22/22 | 179.7 |
Ornith-9B | Q6_K | 7.70 ГБ | 22/22 | 164.3 |
Ornith-9B | Q8_0 | 9.55 ГБ | 22/22 | 144.8 |
Ornith-35B (MoE) | IQ3_XXS | 16 ГБ | 22/22 | 259.2 |
Ornith-35B (MoE) | Q3_K_M | 16.70 ГБ | 22/22 | 258.9 |
Ornith-35B (MoE) | Q4_K_M | 21.86 ГБ | 22/22 | 252.8 |
Ornith-35B (MoE) | Q5_K_M | 25.49 ГБ | 22/22 | 244.3 |
Ornith-35B (MoE) | Q6_K | 28.43 ГБ | 21/22 | 236.0 |
Ornith-35B (MoE) | Q8_0 | 37.81 ГБ | 22/22 | 223.7 |
Ornith-35B (MoE) | NVFP4, прод, vLLM | 20.4 ГБ | 22/22 | 92.9 (другой движок и метрика) |
Qwen3.8-27B | UD-IQ2_XXS | 7.27 ГБ | 22/22, но 2 пустых ответа | 124.5 |
Qwen3.8-27B | UD-Q3_K_XL | 13.15 ГБ | 22/22 | 87.7 |
Qwen3.8-27B | UD-Q4_K_XL | 18 ГБ | 22/22 | 71.8 |
Qwen3.8-27B | UD-Q5_K_XL | 20.88 ГБ | 22/22 | 63.3 |
Qwen3.8-27B | UD-Q6_K_XL | 23.56 ГБ | 22/22 | 54.4 |
Qwen3.8-27B | NVFP4A16, прод, vLLM | 28.84 ГБ | 22/22 | 80.7 (другой движок и метрика) |
Внутри каждого семейства - все четко, монотонно: меньше вес, быстрее ответ, без исключений. Ожидаемо и скучно, карта упирается в пропускную способность памяти, чем меньше данных перечитывать на каждый токен, тем быстрее.
Быстрее - не значит умнее (что логично, но не всегда :)
Ornith-1.5-35B-A3B - MoE, 35 млрд параметров номинально, активных на токен около 3 млрд. Отсюда и скорость: по отдельному прогону (omp bench, decode-профиль, тут я для простоты использовал родной новый функционал omp вместо своих бенчей) она держит 159-198 ток/с против 54-57 у Qwen3.8-27B - разница почти втрое. Вычисления масштабируются по активным параметрам, не по общему весу.
Прогнал head-to-head - два содержательных промпта, не синтетика: числа Фибоначчи и задачка про пять яблок с неоднозначным делением пополам. На коде - ничья, все три модели дали верный ответ, 35B многословнее. На задачке про яблоки Ornith-35B вставила арабское слово («نصف» - «половина») в русское предложение и дала решение с «5,5 яблок» - арифметика верна, а итог физически бессмыслен для целых фруктов. Ни Ornith-9B, ни Qwen3.8-27B этот дефект не воспроизвели: 9B честно разобрала оба варианта округления и дала целое число, Qwen ответила в две строки и сама отметила, что условие некорректно для целых яблок.
Цифры от самих команда Ornith-35B (Terminal-Bench 67.8 против 52.5 у Qwen3.6, SWE-bench 79 против 73.4 - обе непроверенные, из пресс-релиза) на этой проверке не подтвердились.
Выборка - два промпта, не приговор. Но это ровно тот случай, когда собственный замер важнее готовой таблицы от релиз-команды: если бы я поставил модель по одним лишь их цифрам, дефект узнал бы уже в проде. MoE реально быстрее - это бесспорно, просто «быстрее» и «умнее» - разные оси, и покупать вес модели за скорость, не проверив вторую ось на своих задачах, - обычная ошибка, которую я чуть не повторил сам для прода.
Два бита — это уже не квантизация, это грусть
Qwen3.8-27B на UD-IQ2_XXS (7.27 ГБ) дала пустой ответ на 2 из 22 реальных задач - не таймаут, не мусор, буквально ''. Обе задачи практические: Ansible-плейбук с файрвол-правилами и Python-функция очистки контактных данных. Ниже 3х-бит модель не то что хуже отвечает - иногда не отвечает вовсе. Квант дисквалифицирован для реальной работы вне зависимости от того, как заманчиво смотрится размер файла. (Честно, я искал эту инфу очень долго по интернету и встречал рассказы что Q2 вообще ок, поэтому считал своим личным долгом прогнать этот тест)
Один вопрос ничего не доказывает про квант
Отдельная задача на фактчек (prefix caching у Mamba-гибридов в vLLM) дала шумный результат: у Ornith-9B - неверно на Q4 и Q8, верно на IQ3_M и Q5_K_M, с оговоркой на Q6_K; у Qwen - неверно на IQ2/Q3/Q5, верно на Q6_K_XL и на боевом NVFP4A16. Единственная реально устойчивая картина: Ornith-35B ошиблась на этом вопросе на каждом протестированном уровне - включая Q8_0 и продакшн-NVFP4. Раз ошибка не исчезает даже на самом точном кванте, дело не в квантизации - дело в самой модели на этом конкретном вопросе. Единичный фактчек - шумный сигнал о кванте и неплохой сигнал о модели, если повторяется на каждом уровне.
vLLM ещё не умеет то, что нужно (пока)
Хотел прогнать все 18 конфигураций не только через Ollama, но и в бою - на vLLM, том же движке, что и в продакшне. Не вышло: с релиза 0.27.1 поддержка GGUF была убрана из vLLM в отдельный плагин, и опубликованный релиз плагина (v0.0.5, тег от 10 августа) вообще не знает архитектуру семейства Qwen3.5 - ни Ornith, ни Qwen3.8, это именно их гибрид Gated DeltaNet + полное внимание + MoE. Поддержка появилась в Гите плагина 19 августа, за 6 дней до этого замера, и потребовала три нетривиальных числовых багфикса даже для маленькой плотной модели. Единственный тест именно на эту комбинацию архитектура+GGUF помечен slow.
Раз сравнить в проде честно нельзя, весь замер шёл через Ollama (гусары, молчать!) - а значит, скорость выше сравнивает не только квант, но и движок вместе с квантом. Разделить их корректно смогу, когда плагин догонит архитектуру.
Какую карту под какие цели (самый важный блок имо)
Аренда у Selectel RTX PRO 6000 даёт 96 ГБ VRAM - хватает на обе продакшн-модели разом (Ornith-35B в NVFP4, Qwen в NVFP4A16, вместе 90.8 ГБ по калиброванному бюджету с запасом на конкурентность, с чем я немало мучался). Для тех, кто выбирает карту под свою нагрузку покажу что реально проверено, а что посчитано по формуле (вес + KV), а не измерено (говорить про RTX3090 например не хочется, так как ее нет на руках, но в тестах есть MacBook M5 Pro 24GB):
Видеопамять | Что ставить | Основание |
|---|---|---|
16 ГБ | Ornith-9B, Q5_K_M-Q6_K (~11-13 ГБ с KV) | Измерено |
24 ГБ | Ornith-9B с большим запасом; Ornith-35B на агрессивном кванте (16 ГБ весов) — контекст придётся урезать | 9B измерено, 35B на 24 ГБ не тестировал |
32 ГБ | Ornith-35B, Q4_K_M-Q5_K_M (реально ~31 ГБ на полных 262K контекста) | Измерено |
48 ГБ | Одна модель, не обе — вместе им нужно ~91 ГБ | Измерено (отрицательный результат — вылет по памяти при попытке) |
72 ГБ | Обе модели на умеренных квантах, впритык | Не тестировал, посчитано по формуле |
96 ГБ | Обе модели на боевом качестве и полном контексте — то, что стоит у меня | Измерено, это и есть RTX PRO 6000 |
Говорю сразу и честно
Этот тест - один прогон на конфигурацию. Скорость внутри Ollama сравнивается честно — квант к кванту, движок один и тот же. Качество между Ollama и продакшн-vLLM сравнивать нельзя корректно по указанной выше причине с плагином. Единичный фактчек на пункте про Mamba — шумный сам по себе; вывод про Ornith-35B держится не на нём одном, а на том, что ошибка повторилась на всех уровнях без исключения, включая почти лосслесс. Языковой дефект 35B — два промпта, не бенчмарк; нужен больший фиксированный набор тестов, прогнанный вслепую, прежде чем это станет приговором, а не сигналом.
P.S. Я честно видел мало тестов, где сразу понятно что можно взять к себе в работу на GPU четко по весам модели и KV, так как я делал по факту для себя - тут эта инфа есть, уверен, что много кому будет полезно. Я бы честно брал что-то простое и ставил 9B c Q5/Q6.
Спасибо за внимание!

