Три open-weight LLM на Mac 24 ГБ: быстрее оказалась не та модель, что ждали

Три open-weight модели на одном Mac с 24 ГБ — и выбор не сводится к «больше параметров = быстрее». Для соло на локальном Ollama это скорость ответа в цикле с агентом: в свежем бенчмарке на M2 лидер по tok/s — не Qwen3-14B из гайдов, а gpt-oss-20B, с разрывом порядка 3–4×.
Четыре accuracy-задачи и отдельный замер скорости
Автор @pitambarmahato сравнил gpt-oss-20B, Qwen3-14B и Mistral-Small-24B на Apple M2 с 24 ГБ unified memory через Ollama 0.12.x и квантизацию Q4_K_M GGUF. Accuracy мерили на одном наборе из четырёх бенчмарков с temperature=0 и seed=42:
| Задача | Что проверяет | Размер выборки |
|---|---|---|
| MMLU (dev) | Широкие знания | 50 промптов |
| GSM8K (test) | Математика | 30 промптов |
| HumanEval+ | Генерация кода (pass@1) | 20 промптов |
| IFEval | Следование инструкциям | 20 промптов |
Скорость — пятая, отдельная задача: девять прогонов (три размера промпта × три trial), в отчёте — медиана wall time и tok/s. Контекст для всех тестов — 4096 токенов. Для gpt-oss reasoning mode отключали (think: false).
Real numbers, no vibes — заявление автора про эмпирический подход, а не маркетинговые цифры с лидерборда.
Полная методология и таблицы — в канонической версии на hardnumbers.dev. Репозиторий для воспроизведения: github.com/Pitambarmahato/hardnumbers-experiments → open-weight-benchmark/. Полный прогон на M2 24 ГБ занимает порядка 30–40 минут.
gpt-oss-20B: быстрее Qwen3 и точнее на коде и math
Самая быстрая модель в тесте — gpt-oss-20B, не Qwen3-14B и не Mistral-Small-24B. Автор ожидал другой исход: «The fastest model is the one I didn't expect to win».
По скорости:
- gpt-oss-20B — около 20 tok/s (mean), наименьшая first-token latency среди моделей, завершивших тесты.
- Qwen3-14B — около 5 tok/s.
- Mistral-Small-24B — надёжных замеров скорости на 24 ГБ не получено (timeout).
Заголовочный claim «3× faster» подтверждается как 3–4× относительно Qwen3 на том же железе — не как тройной разрыв между всеми тремя участниками.
По accuracy картина неожиданная: gpt-oss и быстрее, и точнее Qwen3 на двух из четырёх задач (GSM8K, HumanEval+), хотя по MMLU Qwen3 впереди на 10 п.п. (82% vs 72%):
| Benchmark | gpt-oss-20B | Qwen3-14B | Mistral-Small-24B |
|---|---|---|---|
| MMLU | 72.0% | 82.0% | 74.0% |
| GSM8K | 100.0% | 96.7% | timeout |
| HumanEval+ | 100.0% | 90.0% | 1/5 (поднабор) |
| IFEval | 40.0% | 30.0% | 1/5 (поднабор) |
Архитектурная гипотеза автора: gpt-oss-20B — MoE с 20.9B total и 3.6B active per forward pass; Qwen3-14B — dense 14.8B. Скорость связывают с числом активных параметров на проход, а не с размером весов на диске.
Для локального цикла с агентом это значит: модель, которую гайды 2025 рекомендовали как default для 24 ГБ (Qwen3), на том же железе отвечает в 3–4 раза медленнее — при заметно слабее результатах на code и math.
Почему Mistral-Small-24B не финишировал на 24 ГБ
Mistral в сравнении позиционировали как «bigger, denser option» с жёстким memory budget. Веса в Ollama — 14.3 ГБ (mistral-small:24b-instruct-2501-q4_K_M), но на 24 ГБ Mac с KV cache и overhead macOS надёжный inference не вышел.
- GSM8K и speed-тесты — не завершены.
- HumanEval+ и IFEval — урезанный поднабор из 5 промптов, результат 1/5 на обеих.
Автор отдельно разбирает ловушку формулировки «fits in 24GB»: в сети это часто про FP16 weights, а при Q4_K_M на 24B-классе ~16–18 ГБ уходит только на веса. На KV cache и runtime остаётся 6–8 ГБ — для крупных бенчмарков Mistral этого не хватило.
Совет «берите 24B-модель, она влезает» без учёта контекста и нагрузки на память для соло на consumer Mac может обернуться таймаутами вместо рабочего локального агента.
Что выбрать соло-разработчику под локальный Ollama
Автор формулирует практический вывод для одной модели на 24 ГБ Mac:
- gpt-oss-20B — math, code и сценарии, где важна скорость локального inference (~20 tok/s vs ~5 tok/s у Qwen3).
- Qwen3-14B — general knowledge и «well-rounded» задачи, если готовы ждать.
Все три модели — Apache 2.0; gpt-oss-20B — релиз OpenAI (август 2025) с открытой лицензией, MXFP4-native, по заявлению автора «runs on 16GB». Стек воспроизводим: Ollama, /api/generate, официальные GGUF-веса.
Явные границы эксперимента, которые важны для выбора модели под агентный workflow:
- Тесты English-only; мультиязычность и качество на русском не проверялись.
- Tool use / function calling в этот бенчмарк не входили — отдельный сценарий для IDE-агентов.
- Long context (32K+) и реальные coding sessions на 50K+ токенов не тестировались.
- Другие уровни квантизации и batch inference (vLLM и др.) — вне scope.
Для соло без облачного API на Mac с 24 ГБ unified memory выбор open-weight модели — не абстрактный лидерборд, а компромисс скорости ответа, RAM под KV cache и точности на тех задачах, которые вы реально гоняете через локальный чат или агента. Цифры tok/s и accuracy из этого сравнения — отправная точка, а не универсальный вердикт: ваш промпт, контекст и язык могут сдвинуть баланс.
Источники
- @pitambarmahato — I Ran 3 Open-Weight LLMs Head-to-Head on a 24GB Mac (доступ: 2026-09-04 UTC)
- gpt-oss-20B vs Qwen3-14B vs Mistral-Small-24B: A Real Benchmark (доступ: 2026-09-04 UTC)
- Репозиторий: github.com/Pitambarmahato/hardnumbers-experiments