18 квантов на одной карте: втрое быстрее — не значит умнее
Хотел за вечер решить один вопрос: какой квант ставить на карту. Прогнал 18 конфигураций — три модели, пять-шесть квантов на каждую, один набор из 22 реальных задач — и получил ответ плюс два, которых не искал.
Карта — арендованная у Selectel RTX PRO 6000 (96 ГБ), частично по их AI-грантовой программе.
| Модель | Квант | Вес | ток/с |
|---|---|---|---|
| Ornith-9B | IQ3_M → Q8_0 | 4.7-9.6 ГБ | 229 → 145 |
| Ornith-35B (MoE) | IQ3_XXS → Q8_0 | 16-37.8 ГБ | 259 → 224 |
| Qwen3.8-27B | UD-IQ2_XXS → UD-Q6_K_XL | 7.3-23.6 ГБ | 125 → 54 |
Внутри каждого семейства — чисто монотонно: меньше вес, быстрее ответ. Ожидаемо. Интересное дальше.
Быстрее — не значит умнее
Ornith-35B — MoE, 35 млрд параметров номинально, активных на токен — около 3. Отсюда скорость: почти втрое быстрее Qwen3.8-27B на decode. Прогнал head-to-head на двух содержательных промптах: на коде — ничья. На задачке про пять яблок с делением пополам Ornith-35B вставила арабское слово в русский ответ и заключила с «5,5 яблок» — арифметика верна, итог бессмыслен для целых фруктов. Ни Ornith-9B, ни Qwen этот дефект не повторили.
Вендорские цифры Ornith-35B (Terminal-Bench 67.8 против 52.5 у предыдущей версии) на этой проверке не подтвердились. Модель, которая обгоняет себя же в чужих бенчах, не смогла поделить пять яблок без слова не на том языке. MoE реально быстрее — это не отменяется. Просто «быстрее» и «умнее» — разные оси.
Два бита — уже не квантизация, а отказ
Qwen на UD-IQ2_XXS (7.3 ГБ) дала пустой ответ на 2 из 22 реальных задач — не мусор, буквально пустая строка, на Ansible-плейбуке и Python-функции очистки данных. Квант дисквалифицирован независимо от того, как заманчиво смотрится размер файла.
Какую карту под что
96 ГБ аренды хватает на обе продакшн-модели разом (вместе — 90.8 ГБ с запасом на конкурентность). Для меньших карт — что измерено, а что посчитано по формуле:
| Видеопамять | Что ставить | Основание |
|---|---|---|
| 16 ГБ | Ornith-9B, Q5_K_M-Q6_K | Измерено |
| 24 ГБ | Ornith-9B с запасом; Ornith-35B на агрессивном кванте, контекст урезать | 9B измерено, 35B на 24 ГБ не тестировал |
| 32 ГБ | Ornith-35B, Q4_K_M-Q5_K_M (реально ~31 ГБ на 262K контекста) | Измерено |
| 48 ГБ | Одна модель, не обе — вместе им нужно ~91 ГБ | Измерено (вылет по памяти) |
| 96 ГБ | Обе модели на боевом качестве и полном контексте | Измерено — это и есть моя карта |
Оговорка
Один прогон на конфигурацию. Языковой дефект 35B — два промпта, не бенчмарк: нужен больший набор, прогнанный вслепую, прежде чем это станет приговором. Сравнить качество между Ollama и продакшн-vLLM для этих моделей честно нельзя: GGUF-плагин vLLM ещё не поддерживает их архитектуру (мёрж случился за 6 дней до этого замера).