Qwen3.5-122B на Mac Studio: 3 бага, которые всё тормозили

2026-07-15

Qwen 3.5 122B на Mac Studio Ultra тормозила из-за багов в стеке, не в модели. Разбираем три причины и как их устранить для быстрого инференса.

Коротко: Qwen 3.5 122B на Mac Studio Ultra с 96 ГБ унифицированной памяти — мощный локальный ИИ для агентного программирования. Но три бага в стеке обслуживания, связанных с гибридным вниманием SSM-слоёв, приводили к пересчёту всего контекста заново при каждом сообщении. После исправлений время до первого токена сократилось с 3-5 минут до секунд.

Почему локальный инференс ломается не там, где ожидаешь

Когда ИИ-модель заставляет ждать первого токена пять минут — это уже не инструмент, а помеха. Именно с этим сталкиваются те, кто пытается использовать большие языковые модели локально для реальных задач: агентного программирования, длительных сессий с длинным контекстом, оркестрации инструментов.

Стандартная реакция — обвинить модель или железо. Но в случае с Qwen 3.5 122B на M3 Mac Studio Ultra проблема оказалась в другом: в стеке обслуживания, который не умел корректно работать с архитектурой гибридного внимания.

Почему Qwen 3.5 122B подходит для Mac Studio Ultra

Модель на 122 миллиарда параметров с MoE-архитектурой и ~10B активных параметров при инференсе — нетривиальный выбор для локального запуска. Но именно для Mac Studio Ultra с 96 ГБ унифицированной памяти это попадание в точку:

Модель на 122B параметров, сопоставимая с проприетарными системами и работающая офлайн — это реальность, а не маркетинг.

Три бага, из-за которых модель пересчитывала контекст заново

Модель подходила по всем параметрам. Но из коробки каждое новое сообщение запускало полный пересчёт разговора с нуля. При контексте 130 000 токенов — это многоминутные задержки перед каждым ответом.

Корень проблемы: гибридное внимание

Qwen 3.5 использует гибридную архитектуру внимания: традиционные трансформерные слои с KV-кэшем плюс рекуррентные SSM-слои (GatedDeltaNet). Рекуррентное состояние SSM нельзя произвольно откатить или обрезать — это фундаментальное свойство архитектуры. Стеки обслуживания, не учитывающие это, сбрасывают кэш там, где не должны.

Что именно было исправлено

Баг 1: сброс кэша между сообщениями. Логика инвалидации не различала KV-кэш плотного внимания и SSM-состояние — оба сбрасывались при каждом новом сообщении. Исправление: раздельная обработка для разных типов слоёв.

Баг 2: некорректное восстановление состояния. При попытке переиспользовать кэш SSM-состояние восстанавливалось с ошибками, что нарушало связность ответов. Исправление: корректная сериализация и восстановление рекуррентного состояния.

Баг 3: утечка памяти при длинных сессиях. Состояния SSM-слоёв накапливались без освобождения. При длинном контексте это приводило к постепенной деградации производительности. Исправление: явное управление жизненным циклом состояний.

Что изменилось и какой стек использовать

После исправления трёх багов модель стала тем, чем должна была быть с самого начала: инструментом для реальной работы. Уточняющий вопрос в середине длинной сессии теперь получает ответ за секунды, а не за минуты.

За основу был взят стек rapid-mlx, однако он обрабатывал гибридное внимание иначе. Результатом форка стал qMLX — специализированный стек с корректной поддержкой гибридного внимания.

Важный вывод для тех, кто строит локальные ИИ-системы: смена модели и отладка стека — независимые задачи. Замена модели не решит проблему некорректного стека. И наоборот.

Чек-лист для диагностики локального инференса

Если вы запускаете большие модели локально и сталкиваетесь с долгим временем до первого токена:

Часто задаваемые вопросы

Можно ли запустить Qwen 3.5 122B на Mac с 64 ГБ памяти?
С 64 ГБ модель при низкой битности может не оставить достаточно места для KV-кэша, что приведёт к свопингу на SSD и значительному падению скорости. Для комфортной работы рекомендуется конфигурация M3/M4 Ultra с 96 ГБ и выше.

Что такое SSM-слои и почему с ними возникают проблемы?
SSM (State Space Models) — рекуррентные слои, эффективно обрабатывающие длинные контексты. В отличие от KV-кэша трансформеров, их состояние нельзя произвольно обрезать или откатить, что требует специальной обработки в стеках инференса.

Чем локальный инференс лучше облачного API для бизнеса?
Локальный инференс исключает передачу данных третьим сторонам, убирает зависимость от внешних сервисов и rate limit, а при высокой нагрузке может быть экономически выгоднее облачных API. Ограничение — масштабируемость: одна машина обслуживает ограниченное число запросов одновременно.

Подходит ли этот подход для командной работы?
Для индивидуального использования и малых команд с последовательными запросами — да. Для высоконагруженных систем с параллельными запросами от множества пользователей потребуется либо несколько машин, либо облачная инфраструктура.

Разбираем ИИ-инструменты для бизнеса →

<a href='https://t.me/contentrunbot'>ИИ Инструменты</a> | <a href='https://contentrun.ai/'>Контент-завод</a> | <a href='https://platform.contentrun.ai/'>База знаний</a>

Опубликовано на ContentRun, внедрение ИИ в маркетинг и продажи. Что мы делаем.