Хук: 12 моделей, 1 победитель

Мы протестировали 12 моделей на своём 2×3090. 8 из них — мусор для агентного кодинга. 3 — нормальные. 1 — та, что мы используем каждый день. Вот как мы это выяснили.

Критерии отбора

Не «какая самая умная», а «какая подходит для наших задач на нашем железе»:

  • Агентный кодинг (pi.dev, Cursor, Kilo Code) — не чат и не RAG. Модель должна держать длинную историю, tool calls и генерировать код.
  • Контекст 256K. Агент держит историю + код + tool calls. Меньше — не работает.
  • MTP (Multi-Token Prediction) — критично для скорости на 3090. Ниже объясним почему.
  • VRAM: 24GB×2 = 48GB (TP=2). Всё, что не влезает, отпадает сразу.
  • Русский язык — для нашего RAG-сервиса.

Таблица бенчмарков (12 моделей)

Замерено на 2×RTX 3090, vLLM, AWQ-квантизация где применима:

МодельTok/s (decode)TTFT (8K)Terminal-BenchDeepSWEVRAMMTP
Qwen3.8-27B-AWQ-MTP751.8s73.042.246GB✓ (×2.5–2.7)
Qwen3.6-27B642.0s63.413.344GB
GLM-4.6482.4s61.217.545GB
Gemma4-26B662.0s52.48.942GB
Qwen3.5-27B622.1s58.19.843GB
Mistral Largeне влезает в 256K
DeepSeek-V3.2не влезает (MoE 671B)
Llama 4 Scoutне влезает (MoE 109B)
4 модели 24–34Bотбракованы на этапе отбора

Terminal-Bench и DeepSWE — наши рабочие метрики: агентные терминальные задачи и SWE-задачи соответственно. Это не «MMLU из таблицы», а то, что модель реально делает в нашем пайплайне.

Почему Qwen3.8-27B победил

  • Terminal-Bench 73.0 vs 63.4 у Qwen3.6 — разрыв в агентном кодинге, а не в «эрудиции».
  • DeepSWE 42.2 vs 13.3 — на SWE-задачах это разница между «решает» и «почти решает».
  • MTP: нативные MTP-головы — до ×2.7 скорости (подробнее ниже).
  • AWQ-квантизация: 27B влезает в 24GB×2 с запасом под KV-cache.

Ключевой принцип: «Qwen3.8 — лучший ДЛЯ НАШИХ задач на НАШЕМ железе», а не «Qwen3.8 — лучшая модель в мире». Для другого стека победитель мог бы быть другим.

MTP: что это и почему это меняет всё

Объясним без термина «speculative decoding»: модель предсказывает 3 токена сразу, а не 1. Если «верификатор» соглашается — мы получили 3 токена за стоимость 1. На 3090, где decode упирается в пропускную способность памяти, это даёт:

  • Без MTP: 30 tok/s. С MTP: 100 tok/s (×2.5) на коротких промптах; на длинных генерациях — до ×2.7.

Это не магия. Это архитектурное решение Qwen, которое на 3090 даёт больше, чем на H100: на мощном железе выигрыш от спекулятивного декодирования меньше, а на «узком» — критичен.

Что мы отбросили и почему

  • DeepSeek-V3.2: MoE, 671B параметров — не влезает. Точка.
  • GLM-4.6: нет MTP, медленнее (48 tok/s), на SWE-задачах в 2.4 раза слабее Qwen3.8.
  • Llama 4 Scout: MoE, 109B — не влезает.
  • Gemma4: нет MTP, слабый Terminal-Bench (52.4).
  • Честно: мы не тестировали GPT-5.6 и Claude Opus. Они не влезут на 3090. Это не сравнение.

Уроки отбора

  1. Начинайте с критериев, а не с рейтинга. «Самая умная модель» и «лучшая для моего пайплайна» — разные ответы.
  2. MTP на consumer-GPU — не опция, а требование. Разница ×2.5–2.7 больше, чем разница между большинством моделей по качеству.
  3. 27B — sweet spot для 2×3090. 70B не влезает, 7B не тянет агентные задачи.

Подбор модели под вашу нагрузку — первый этап нашего аудита. Мы бенчмарим ваши модели на вашем железе с вашими промптами, а не по таблицам из интернета. Обсудить проект.

← Почему мы собрали LLM-сервер, который жжёт миллиард токенов в сутки vLLM на 2×RTX 3090: от 18 до 100 tok/s — MTP, TP, KV-cache, OMP_NUM_THREADS →