Проблема: M3 Max уже не хватает для агентных моделей
Ты купил M3 Max с 128GB памяти год назад, думая, что это вершина. Qwen 3 32B летал, контекст в 32k токенов не вызывал паники. Потом вышли Qwen 3.5, MoE-архитектуры вроде MiniMax-M2.5 230B, и запросы на контекст в 80k стали обычными. Агентные рабочие нагрузки (agentic workloads) — когда модель сама планирует, вызывает функции, работает с длинными документами — начали подтормаживать. Не критично, но раздражает.
И вот анонс M5 Max. На бумаге: новые ядра, улучшенная нейросистема, та же память до 128GB. Вопрос — стоит ли апгрейд? Или можно выжать из M3 Max еще соки оптимизацией? Цифры из маркетинговых буклетов Apple бесполезны. Нужны реальные тесты на реальных моделях.
Важный нюанс: на момент тестирования (март 2026) актуальная версия oMLX — 0.4.2, Llama.cpp — b3456, а из моделей стабильно показывают себя Qwen 3.5 32B и 72B, а также MoE-варианты типа Step 3.5. Все тесты проводились на Mac Studio с 128GB унифицированной памяти, macOS Sequoia 15.4.
Методология: как мы мерили и что может сломаться
Мы не верим синтетическим бенчмаркам вроде «токенов в секунду на пустом промпте». Реальные сценарии:
- Холодный старт: загрузка модели в память, генерация первого токена.
- Устойчивая скорость: генерация 2048 токенов при контексте 4k, 32k, 80k.
- Длинный контекст с RAG: инференс с уже заполненным контекстом в 128k токенов (например, после загрузки документа).
- Параллельные агенты: два независимых инстанса модели, работающих одновременно (эмуляция agentic workflow).
Инструменты: oMLX (оптимизированный под Apple Silicon фреймворк от самой Apple) и Llama.cpp с поддержкой Metal. Почему два? oMLX часто быстрее на чистых операциях, но Llama.cpp стабильнее с экзотическими квантованиями. Квантование моделей — GGUF Q4_K_M, как золотой стандарт баланса качества/скорости на 28.03.2026.
Цифры: M5 Max против M3 Max в сухом остатке
Вот что показывают тесты на трех ключевых моделях.
| Модель / Контекст | M3 Max (токен/с) | M5 Max (токен/с) | Прирост |
|---|---|---|---|
| Qwen 3.5 32B (4k) | 42.5 | 58.7 | +38% |
| Qwen 3.5 32B (32k) | 28.1 | 41.3 | +47% |
| Qwen 3.5 32B (80k) | 15.3 | 24.9 | +63% |
| Qwen 3.5 72B (4k) | 18.9 | 27.4 | +45% |
| Step 3.5 (MoE, ~100B акт.) (4k) | 22.4 | 33.1 | +48% |
Вывод номер один: M5 Max не просто быстрее, он значительно лучше справляется с длинным контекстом. Прирост в 63% на 80k токенах — это не линейное увеличение тактовой частоты. Здесь работает новая архитектура памяти и оптимизации в нейроядре.
Вывод номер два: MoE-модели, которые раньше были головной болью из-за своей «рваной» загрузки (вот сравнение плотной и MoE архитектуры), на M5 Max ведут себя приличнее. Скорость инференса Step 3.5 почти догоняет Qwen 3.5 72B, хотя раньше отставала на 20%.
Слон в комнате: 128GB памяти и агентные рабочие нагрузки
128GB — это много. Но когда ты запускаешь два агента параллельно, каждый со своим контекстом в 32k, память заполняется быстро. M3 Max начинал подкачивать на SSD при активном использовании двух инстансов Qwen 3.5 32B. M5 Max, благодаря более широкой шине памяти и улучшенному контроллеру, держит оба в RAM без свопа.
Практический тест: запуск двух независимых инференсов Qwen 3.5 32B (контекст 32k, генерация по 512 токенов).
- M3 Max: общая скорость падает на 40% (эффект contention). Средняя задержка на токен скачет.
- M5 Max: общая скорость падает на 15-20%. Плюс, время отклика (latency) стабильнее.
Для тех, кто строит многоагентные системы локально (например, автономных исследователей или архитекторов кода), это ключевое отличие. M5 Max не просто быстрее, он предсказуемее при нагрузке.
Совет: если вы часто работаете с контекстами >64k, обязательно используйте сдвиг RoPE (rope scaling) и внимание с группировкой (grouped query attention) в настройках модели. На M5 Max это дает дополнительный прирост в 10-15% скорости на длинных контекстах. На M3 Max эффект меньше — около 5%.
Ошибки, которые сведут на нет преимущество M5 Max
1. Использование старых GGUF-файлов. Многие качают модели с Hugging Face, где лежат конвертации годичной давности. Они не используют новые инструкции M5. Берите только свежие конвертации, сделанные после выхода M5 (или конвертируйте сами с актуальным llama.cpp).
2. Неправильные флаги запуска. Для M5 Max в llama.cpp нужно явно указывать -ngl 99 (загружать все слои в GPU) и -t 16 (количество потоков). Автодетект иногда ошибается. Для oMLX убедитесь, что используете MLX 0.4.2 с поддержкой M5.
3. Игнорирование теплового режима. M5 Max эффективнее, но под длительной нагрузкой (час непрерывной генерации) все равно греется. Если у вас плохой теплоотвод (например, MacBook Pro в закрытом режиме клавиатуры), CPU троттлинг снизит скорость до уровня M3 Max. Решение — мониторить температуру и обеспечить вентиляцию.
4. Попытка запихнуть невпихуемое. Даже 128GB — не безгранично. Запуск 230B MoE модели с контекстом 32k съест всю память, и система начнет свопить. M5 Max справится с этим чуть лучше, но инференс все равно будет медленным. Знайте пределы своего железа (подробнее о запуске гигантов).
Итог: кому действительно нужен апгрейд на M5 Max?
Если вы работаете с моделями до 30B параметров и контекстом до 32k — M3 Max еще проживет пару лет. Оптимизации в софте (типа ik_llama.cpp) могут выжать еще 10-20%.
Апгрейд на M5 Max оправдан, если:
- Вы постоянно работаете с контекстами 64k+ (юристы, исследователи, аналитики).
- Запускаете несколько агентов параллельно (разработка multi-agent систем).
- Используете большие MoE-модели (от 70B активных параметров), где важен не только объем памяти, но и скорость доступа к ней.
- Ваш workflow включает длительные сессии инференса, где стабильность скорости критична.
И последнее: если вы только выбираете между M4 Max и M5 Max, смотрите наше детальное сравнение. Разрыв между M4 и M5 меньше, чем между M3 и M5, но для длинного контекста он все же есть.
Будущее? К концу 2026 нас ждут модели с контекстом в 1M токенов как стандарт. И тогда даже M5 Max может задыхаться. Но пока что — это лучший выбор для локальных LLM-энтузиастов, которые не хотят платить за облака и ценят свою приватность. И да, 128GB — это must. Экономить на памяти здесь — самоубийство.