Muse Glimmer: 30B модель Meta для локальных ИИ-агентов

Muse Glimmer: 30B модель Meta для локальных ИИ-агентов

Кодинг-агент, который пишет игру, ставит пакеты, гоняет тесты и при этом не отправляет ни одного токена в облако. Звучит как маркетинговый слайд, но это описание реального демо: Meta выпустила Muse Glimmer, открытую 30B-модель для агентных workflow, и команда ExecuTorch добавила её полную поддержку на NVIDIA GPU и Mac с Apple silicon. На M5 Pro с 64 ГБ памяти модель выдаёт до 33 токенов в секунду и при этом управляет агентом Pi, который итеративно строит игру про птиц, спрашивая у пользователя уточнения по ходу дела.

Что такое Muse Glimmer

Muse Glimmer: это open-weight языковая модель на 30 миллиардов параметров, дистиллированная из более крупной Muse Spark от Meta и специально оптимизированная под агентные задачи: вызов инструментов, длинные рассуждения, работа с файлами и кодом. Модель принимает текст и изображения, держит контекст свыше 128 тысяч токенов и распространяется в формате GGUF, а запускается локально через runtime ExecuTorch.

Сам по себе релиз ещё одной 30B-модели не был бы событием. Интерес здесь в другом: это первая связка, где модель, runtime и агентный harness проектировались как единое целое для локального исполнения, а не адаптировались задним числом.

Почему локальные агенты ломают старые фреймворки

Большинство фреймворков локального инференса устроены одинаково: модель переписывается на C++, Rust или другой не-Python язык, и этот порт поддерживается отдельно. Такой подход работал, пока LLM оставались стандартными текстовыми трансформерами. Но современные модели перестали быть простыми: новые архитектуры, мультимодальные входы и выходы, продвинутые алгоритмы декодирования вроде DFlash (параллельного спекулятивного декодирования на основе диффузии), ради низкой задержки. Переписывать всё это под каждый бэкенд не масштабируется: каждая новая фича модели превращается в месяцы портирования.

ExecuTorch решает проблему с другого конца. Исследователь реализует модель и стратегию декодирования в обычном PyTorch. Когда модель готова к деплою, она экспортируется в ExecuTorch, а фреймворк сам занимается понижением под конкретный бэкенд: Triton на CUDA, MLX-native и кастомные Metal-ядра на Apple silicon. Компиляция происходит заранее (ahead-of-time) и оптимизирует весь путь исполнения целиком, а не отдельные операторы. Именно так в Muse Glimmer завезли текстово-графический ввод, прямой экспорт из GGUF, нативное исполнение K-quant, контекст 128K+ и спекулятивное декодирование DFlash, причём всё это в одном артефакте.

PTE: один артефакт вместо зоопарка сборок

Центральный объект всей системы называется PTE. Это сериализованный артефакт, который заранее производится из PyTorch-графа модели и оптимизируется под целевой бэкенд. Meta опубликовала готовые проверенные PTE на Hugging Face для NVIDIA CUDA и Apple Silicon (Metal), в текстовом и текстово-графическом вариантах, с DFlash и без. Скачал, собрал runner через CMake-пресет, запустил. Для желающих собрать артефакт самостоятельно есть README: выбираешь бэкенд, модальность, длину контекста и нужность DFlash, а экспорт идёт напрямую из опубликованных GGUF-чекпоинтов через torch.export-стек. На CUDA экспорт компилирует и автотюнит Triton-ядра под конкретную архитектуру GPU, поэтому собирать артефакт лучше на той же карте, где он будет работать.

DFlash: плюс 52.8% скорости без потери качества

Самая эффектная оптимизация в релизе: спекулятивное декодирование DFlash. Идея спекулятивного декодирования в том, что маленькая «черновая» модель предсказывает сразу несколько токенов, а большая «целевая» проверяет их пакетно, вместо того чтобы генерировать по одному. DFlash делает это через параллельный диффузионный механизм, что особенно выигрышно на кодовых промптах, где acceptance rate (доля принятых черновых токенов) традиционно высок.

Цифры из статьи: на Mac с M5 Pro и 64 ГБ памяти обычный режим даёт 21.6 токена в секунду, а с DFlash: 33.0 токена в секунду. Это рост на 52.8% без регресса качества. Для агентного сценария, где модель генерирует тысячи токенов кода за сессию, такая разница: это вопрос «приятно работать» против «бесит ждать».

Инженерная реализация тоже заслуживает внимания. Целевая и черновая модели делят веса и экспортируются в один PTE, что экономит память: критично, когда 30B-модель и так занимает значительную часть RAM ноутбука. Размер блока DFlash экспортируется динамически, так что один и тот же артефакт поддерживает выбор длины блока в рантайме. Поддерживаются и жадное декодирование, и rejection sampling.

K-quant без компромиссов по скорости

Модель распространяется в GGUF, и ExecuTorch экспортирует прямо из него, без промежуточной конвертации. Квантованные форматы Q4_K, Q5_K и Q6_K мапятся в упакованные INT4/5/6 с dp4a GEMV-ядрами на CUDA и в перепакованные или слитые Metal-ядра на MLX. На MLX есть тонкая оптимизация: при перепаковке соседние субблоки с идентичными scale и min сливаются в группы большего размера, вплоть до 128, но только если слияние безпотерьно. Это ускоряет работу, не трогая точность.

На CUDA decode-фаза захватывается в CUDA graph, что сводит оверхед запуска отдельных ядер к одной отправке. Упакованные K-quant ядра ускоряют decode при малом батче, а length-aware split-K пути FlashDecoding++ оптимизируют генерацию одиночных токенов и маленькие верификационные блоки DFlash. На MLX операции RMSNorm, RoPE, SDPA, обновления KV-кэша и квантованные линейные слои понижаются в MLX-native или кастомные Metal-реализации.

128 тысяч токенов контекста на ноутбуке

Длинный контекст обычно первым умирает при локальном запуске: KV-кэш растёт линейно и съедает всю память. В Muse Glimmer архитектура гибридная: из 52 слоёв только 13 глобальные, остальные 39 работают со скользящим окном. KV-кэш растёт заметно медленнее, чем у полностью глобальной архитектуры, и ExecuTorch поддерживает эту схему эффективно. Практический результат: контекст 128K+ токенов становится рабочим инструментом на edge-железе, а не пунктом в спецификации. Для кодинг-агента это означает, что в контекст помещается реальный репозиторий, а не три файла.

Агентный harness: одна модель, много сессий

Агентная нагрузка отличается от чат-бота: нужны параллельные изолированные диалоги, вызовы инструментов, режим рассуждений. В ExecuTorch для этого добавили несколько вещей. Одна загрузка модели обслуживает множество изолированных разговоров через per-session rebinding мутабельного состояния, реализованный в обоих бэкендах. Появился чат-шаблон Harmony с маршрутизацией рассуждений и парсер XML-формата вызова инструментов, включая несколько вызовов за один ход.

Поверх этого работает сервер с OpenAI-совместимым API на локальном порту. В демо к нему подключается агент Pi: пользователь просит игру про птиц, и агент на M5 Pro сам создаёт файлы, ставит зависимости, пишет и запускает тесты, а потом проактивно спрашивает, что доработать дальше. Всё это происходит локально, с «thinking high» режимом рассуждений.

Замеры производительности приведены на NVIDIA A100 как прокси для RTX-карт и на Mac с M5 Max, отдельно для prefill и decode, с DFlash и без. Текстовый ввод масштабируется по длине контекста предсказуемо, а decode на кодовых промптах выигрывает от высокого acceptance rate черновика.

Что пока не умеет

Релиз честно описывает ограничения. Видеовход не поддерживается, только текст и изображения. Нет ни кросс-сессионного шаринга префиксов, ни чекпоинтинга, ни continuous batching: всё это в активной разработке. Для одиночного агента на ноутбуке это некритично, но для серверного сценария с десятками параллельных пользователей текущая версия не подходит, и команда это прямо признаёт.

Почему это важно

Локальные агенты до сих пор были компромиссом: либо маленькая модель, которая путается в вызовах инструментов, либо облако с его задержками, счетами и утечкой кода на чужие серверы. Muse Glimmer плюс ExecuTorch закрывают середину: 30B-параметров достаточно для осмысленной агентной работы, а стек выжимает из потребительского железа скорость, при которой агентом реально удобно пользоваться. Корпоративный сценарий очевиден: кодовая база не покидает периметр, а разработчик получает агента без подписки и лимитов.

Важен и сдвиг в подходе к деплою. Вместо портирования моделей на C++ индустрия движется к экспорту из PyTorch с AOT-компиляцией под бэкенды. Когда runtime понимает спекулятивное декодирование, гибридный KV-кэш и квантованные ядра из коробки, порог входа для локальных агентов падает до «скачай PTE и собери runner».

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

На каком железе реально работает Muse Glimmer?

Официально поддерживаются NVIDIA GPU (замеры делались на A100 как прокси для RTX-карт) и Mac с Apple silicon: в демо использовались M5 Pro и M5 Max с 64 ГБ памяти. Для 30B-модели в Q4_K-квантизации нужно порядка 20 ГБ свободной памяти плюс место под KV-кэш, так что 32 ГБ: разумный минимум.

Чем DFlash отличается от обычного спекулятивного декодирования?

Классическая схема использует маленькую авторегрессионную черновую модель, которая сама генерирует токены по одному. DFlash применяет параллельный диффузионный механизм, предлагая блок кандидатов сразу. В Muse Glimmer целевая и черновая модели делят веса и живут в одном PTE-артефакте, что даёт рост скорости на 52.8% на M5 Pro без потери качества генерации.

Чем это лучше запуска через llama.cpp или Ollama?

Те фреймворки требуют портирования каждой новой фичи модели вручную. ExecuTorch экспортирует модель прямо из PyTorch-графа, поэтому DFlash, 128K-контекст, мультимодальность и K-quant работают сразу после релиза модели, а не через месяцы. Плюс из коробки есть агентный harness: сессии, парсер tool-call, OpenAI-совместимый сервер.

Итог

Muse Glimmer: это не просто ещё одна открытая модель, а готовый стек локального агента: 30B-параметров, дистиллированных под tool use, 128K контекст на гибридном KV-кэше, спекулятивное декодирование с приростом в полтора раза и runtime, который всё это понимает нативно. Если вы откладывали локальных агентов из-за скорости или качества, самый убедительный аргумент против только что устарел. Готовые PTE лежат на Hugging Face: скачайте артефакт под своё железо, соберите runner и подключите своего агента к локальному серверу. Вечер экспериментов скажет о практической ценности больше, чем любой бенчмарк.

← Все записи