Коротко: 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 ГБ унифицированной памяти это попадание в точку:
- Пропускная способность памяти M3 Ultra рассчитана именно на такую нагрузку: ~10B активных параметров не простаивают и не перегружают шину.
- 96 ГБ при низкой битности оставляют место для глубокого KV-кэша — ключевого элемента удержания длинного контекста без свопинга на SSD.
- Гибрид рассуждения и function calling — достаточная глубина для сложной логики кода и надёжный вызов инструментов для агентов.
- Полная локальность — нет вызовов API, нет ограничений по частоте, нет данных за пределами машины.
Модель на 122B параметров, сопоставимая с проприетарными системами и работающая офлайн — это реальность, а не маркетинг.
Три бага, из-за которых модель пересчитывала контекст заново
Модель подходила по всем параметрам. Но из коробки каждое новое сообщение запускало полный пересчёт разговора с нуля. При контексте 130 000 токенов — это многоминутные задержки перед каждым ответом.
Корень проблемы: гибридное внимание
Qwen 3.5 использует гибридную архитектуру внимания: традиционные трансформерные слои с KV-кэшем плюс рекуррентные SSM-слои (GatedDeltaNet). Рекуррентное состояние SSM нельзя произвольно откатить или обрезать — это фундаментальное свойство архитектуры. Стеки обслуживания, не учитывающие это, сбрасывают кэш там, где не должны.
Что именно было исправлено
Баг 1: сброс кэша между сообщениями. Логика инвалидации не различала KV-кэш плотного внимания и SSM-состояние — оба сбрасывались при каждом новом сообщении. Исправление: раздельная обработка для разных типов слоёв.
Баг 2: некорректное восстановление состояния. При попытке переиспользовать кэш SSM-состояние восстанавливалось с ошибками, что нарушало связность ответов. Исправление: корректная сериализация и восстановление рекуррентного состояния.
Баг 3: утечка памяти при длинных сессиях. Состояния SSM-слоёв накапливались без освобождения. При длинном контексте это приводило к постепенной деградации производительности. Исправление: явное управление жизненным циклом состояний.
Что изменилось и какой стек использовать
После исправления трёх багов модель стала тем, чем должна была быть с самого начала: инструментом для реальной работы. Уточняющий вопрос в середине длинной сессии теперь получает ответ за секунды, а не за минуты.
За основу был взят стек rapid-mlx, однако он обрабатывал гибридное внимание иначе. Результатом форка стал qMLX — специализированный стек с корректной поддержкой гибридного внимания.
Важный вывод для тех, кто строит локальные ИИ-системы: смена модели и отладка стека — независимые задачи. Замена модели не решит проблему некорректного стека. И наоборот.
Чек-лист для диагностики локального инференса
Если вы запускаете большие модели локально и сталкиваетесь с долгим временем до первого токена:
- Проверьте, поддерживает ли стек архитектуру вашей модели (MoE, SSM, гибридное внимание).
- Убедитесь, что кэш не сбрасывается полностью при каждом запросе.
- При использовании SSM-слоёв — проверьте корректность сериализации и восстановления состояния.
- Отслеживайте потребление памяти в длинных сессиях: утечки проявляются постепенно.
- Разделяйте оценку модели и оценку стека — баги в одном не означают проблем в другом.
Часто задаваемые вопросы
Можно ли запустить 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>