Перейти к содержанию
Публикация AiManual

AgrillaMoE: как запустить Qwen3.6-35B-A3B на 16 ГБ VRAM и ускорить вывод через MoE-экспансию

Разбираем форк AgrillaMoE для Qwen3.6-35B-A3B: запуск на 16 ГБ VRAM с квантом UD-Q2_K_XL, флаг --moe-experts 20 с адаптивным порогом и MoE-экспансия, которая по

Коротко

Что будет в материале

  1. 01

    Что такое AgrillaMoE и зачем понадобился отдельный форк

  2. 02

    Как работает MoE-экспансия: больше экспертов на токен без переобучения

  3. 03

    Запуск Qwen3.6-35B-A3B на 16 ГБ VRAM: конфигурация и флаги

  4. 04

    Скорость и качество: что даёт MoE-экспансия на практике

Что такое AgrillaMoE и зачем понадобился отдельный форк

AgrillaMoE - это форк сервера llama.cpp, который автор собрал под одну конкретную MoE-модель: Qwen3.6-35B-A3B (запись ~A4B) с квантами Unsloth. Это не новая модель и не универсальный сервер. Отдельная сборка понадобилась ради механизма, которого в стандартном llama.cpp нет: MoE-экспансии, то есть повышения числа активных маршрутизируемых экспертов на токен прямо во время работы.

На арендованной V100 с 16 ГБ VRAM и 2-битным квантом UD-Q2_K_XL сборка выдаёт примерно 57-60 ток/с при включённом полном профиле MoE-экспансии. Все цифры в статье приведены по заявлению автора проекта, независимых измерений в открытых материалах нет.

Практический бонус для тех, кто работает с агентами: AgrillaMoE поддерживает API OpenAI и Anthropic, поэтому с ним без доработок работает Claude Code. Автор описал сборку в посте на r/LocalLLaMA.

Чем AgrillaMoE отличается от стандартного llama.cpp

Обычный llama.cpp запускает MoE-модели и умеет работать с их экспертами, но не меняет бюджет активных экспертов на токен во время инференса. AgrillaMoE добавляет патч MoE-экспансии и флаг --moe-experts. Именно эта функция отличает форк от апстрима, остальное - знакомая механика сервера llama.cpp.

Форк заточен под Qwen3.6-35B-A3B и кванты Unsloth. Если у вас другая модель, готовой выгоды ждать не стоит: слои и порог подобраны под конкретную архитектуру. Тема экспансии экспертов обсуждается и в самом сообществе llama.cpp, где отдельно разбирают, как такие патчи влияют на маршрутизацию и какие метрики нужны для честного сравнения, подробнее в материале про экспериментальную ветку llama.cpp с expert expansion.

Кому эта сборка действительно нужна

Целевой сценарий простой: у вас GPU с 16 ГБ VRAM (своя или арендованная), вы хотите запустить крупную MoE-модель уровня 35B-A3B локально и вас интересует кодинг либо агенты вроде Claude Code. Тогда MoE-экспансия даёт то, чего не даёт стандартная сборка: возможность менять число активных экспертов под свою задачу без переобучения.

Если у вас 24+ ГБ VRAM или вы работаете с плотными моделями, выгода от экспансии может быть небольшой, а иногда её проще не включать. Категоричных рекомендаций тут нет: решение зависит от того, насколько ваша задача чувствительна к маршрутизации и есть ли у вас запас по памяти.

Как работает MoE-экспансия: больше экспертов на токен без переобучения

Qwen3.6-35B-A3B имеет 8 маршрутизируемых экспертов, активных на токен. MoE-экспансия повышает этот бюджет во время работы, без переобучения и без правки файлов модели. Меняется только то, какие эксперты срабатывают на каждом токене.

Что такое маршрутизируемые эксперты и top-8

Слой MoE содержит много экспертов, но на каждый токен активируется лишь часть из них. У Qwen3.6-35B-A3B это 8 маршрутизируемых экспертов: маршрутизатор считает вероятности p для каждого эксперта и выбирает top-8. Отсюда обозначение ~A4B: активных параметров примерно как у 4B-модели, хотя общее число параметров 35B. Именно эта экономия и позволяет модели укладываться в 16 ГБ VRAM при агрессивной квантизации.

Адаптивный порог p >= 0.8 × p(rank 8) и слои 25-39

Флаг --moe-experts 20 задаёт потолок в 20 экспертов, а адаптивный порог решает, кого добавить к стандартной восьмёрке. Правило такое: эксперт удерживается, если его вероятность не ниже 80% от вероятности восьмого по рангу эксперта (p >= 0.8 × p(rank 8)). Экспансия применяется на слоях 25-39, то есть в верхней части сети, а не ко всем слоям.

Смысл в том, что маршрутизатор иногда оценивает полезного эксперта чуть ниже порога top-8, и тот не срабатывает. Адаптивный порог возвращает таких кандидатов в работу. Веса модели при этом не меняются ни на байт: правка касается только маршрутизации на инференсе. Детали реализации в предоставленных материалах не раскрыты, поэтому глубже в код заглядывать не будем.

Запуск Qwen3.6-35B-A3B на 16 ГБ VRAM: конфигурация и флаги

Референсная конфигурация из материалов автора выглядит так: арендованная V100 с 16 ГБ VRAM, 2-битный квант UD-Q2_K_XL от Unsloth и полный профиль MoE-экспансии. Это та связка, в которой заявлены 57-60 ток/с.

Какой квант выбрать: UD-Q2_K_XL против Q8_0

UD-Q2_K_XL - 2-битный квант, на котором замеряли скорость. Q8_0 - квант, на котором измеряли результат на GPQA-Diamond. Это разные конфигурации, и путать их нельзя: скорость и качество оценивались не на одних и тех же весах.

Для 16 ГБ VRAM реалистичен именно 2-битный квант. Q8_0 в 16 ГБ, скорее всего, не поместится, и в материалах нет подтверждения, что он туда влезает. Если ваша цель - уложиться в 16 ГБ, ориентируйтесь на 2-битный вариант.

Флаги и профиль MoE-экспансии

Ключевой параметр запуска - --moe-experts 20. Он работает вместе с адаптивным порогом и ограничением по слоям.

ПараметрЗначение из материалов автораЧто делает
--moe-experts20верхняя граница числа активных маршрутизируемых экспертов на токен
Адаптивный порогp >= 0.8 × p(rank 8)эксперт удерживается, если его вероятность не ниже 80% от вероятности восьмого по рангу
Слои25-39экспансия применяется только к верхней части сети

Общий каркас воспроизведения: получить сборку AgrillaMoE, скачать квант Unsloth, запустить сервер с включённым профилем экспансии, замерить скорость и качество на своей задаче. Пошаговой инструкции в предоставленных материалах нет, есть только упоминание файла gpu16gbguide.md, поэтому конкретные команды подставляйте по нему, а не наугад.

Скорость и качество: что даёт MoE-экспансия на практике

Два главных числа, на которые ссылается автор: примерно 57-60 ток/с на V100 16 ГБ с квантом UD-Q2_K_XL и результат 84.34% против 81.82% у стандартного top-8 на GPQA-Diamond с квантом Q8_0, то есть +2.5 пункта на тех же весах.

Почему +2.5 пункта на GPQA-Diamond - это про маршрутизацию, а не про веса

Веса модели при MoE-экспансии не меняются. Меняется только набор сработавших экспертов. Если маршрутизатор иногда недооценивает полезного эксперта, экспансия даёт тому шанс отработать. Отсюда формулировка автора: same weights, better routing. Это не дообучение и не fine-tuning, и именно поэтому результат интересен: качество растёт без изменения модели.

Ограничение тут принципиальное. Эффект зависит от задачи, кванта и модели. На другом наборе вопросов прирост может оказаться меньше или его не будет вовсе. +2.5 пункта получены на одном бенчмарке и с квантом Q8_0, а не с 2-битным, на котором гоняли скорость.

Скорость 57-60 ток/с: что стоит за цифрой

Цифра получена на арендованной V100 16 ГБ с квантом UD-Q2_K_XL и полным профилем MoE-экспансии. Это не значит, что на любой GPU с 16 ГБ будет столько же: V100 - конкретная карта с конкретной пропускной способностью памяти, а платформа аренды добавляет свои переменные.

Экспансия увеличивает число активных экспертов, а значит, и объём вычислений на токен. Автор заявляет, что скорость при этом остаётся на уровне 57-60 ток/с. Как именно разные конфигурации и патчи влияют на реальную скорость, разбирают в материале про оптимизацию MoE-инференса в llama.cpp и бенчмарки. Свои цифры на своём железе придётся получать самому.

Ограничения MoE-экспансии и подводные камни

Начнём с достоверности. Оба ключевых числа, 57-60 ток/с и +2.5 пункта, идут от автора проекта, а не от независимой проверки. Скорость и качество измерены на разных квантах: UD-Q2_K_XL против Q8_0. Детали реализации экспансии в материалах не раскрыты, пошаговой инструкции воспроизведения нет, а исходный пост содержит ограничения доступа к полному тексту.

Что может пойти не так на 16 ГБ VRAM

Экспансия повышает бюджет активных экспертов, а значит, увеличивает нагрузку на VRAM и на вычисления. На 16 ГБ запас небольшой: рост числа активных экспертов может привести к вытеснению части работы в системную память и падению скорости. Конкретных замеров потребления VRAM в материалах нет, поэтому точные пороги назвать нельзя.

Практическая тактика - начинать с меньшего значения --moe-experts, следить за потреблением памяти и повышать число экспертов постепенно, пока скорость остаётся приемлемой. Про замену и подкачку экспертов во время генерации есть отдельный разбор: Hot Expert Reload в llama.cpp объясняет, как роутинг взаимодействует с памятью.

Почему нельзя переносить результат 1:1 на другие модели

AgrillaMoE - сборка под конкретную модель, Qwen3.6-35B-A3B с квантами Unsloth. Слои 25-39 и порог 0.8 × p(rank 8) подобраны под неё. На другой MoE-модели эти параметры, скорее всего, придётся подбирать заново, и результат не гарантирован. Метод не универсален, это настройка под одну архитектуру.

Claude Code и API: как встроить AgrillaMoE в рабочий процесс

AgrillaMoE поддерживает API OpenAI и Anthropic, поэтому с ним работает Claude Code. Это значит, что клиент можно направить на локальный сервер вместо облачного API, не переписывая интеграцию.

Совместимость с OpenAI и Anthropic API

Поддержка обоих интерфейсов снижает порог входа: инструменты, рассчитанные на OpenAI или Anthropic, подключаются к AgrillaMoE как к обычному серверу. Собственный клиент писать не нужно. Конкретных примеров конфигурации в материалах нет, поэтому готовые фрагменты конфигов приводить не будем: их стоит брать из документации инструментов, которые вы используете.

Сценарии: локальный кодинг и агенты

Основной сценарий - локальный кодинг-агент на своей или арендованной GPU с 16 ГБ VRAM. Плюсы понятны: контроль над данными и отсутствие оплаты за токены облачного API. Минусы тоже стоит держать в голове: качество Qwen3.6-35B-A3B может отличаться от облачных моделей, а скорость зависит от вашего железа. Локальная замена за тем же интерфейсом не означает эквивалентного поведения: это другая модель.

Стоит ли пробовать AgrillaMoE: кому подходит, а кому нет

AgrillaMoE - нишевый форк под Qwen3.6-35B-A3B и 16 ГБ VRAM. Он подходит тем, кто хочет запустить крупную MoE-модель на ограниченной памяти и готов экспериментировать с флагами маршрутизации. Он не подходит тем, у кого другая модель, много VRAM или нет желания разбираться с нестандартной сборкой.

Краткий чек-лист перед запуском

  • Есть GPU с 16 ГБ VRAM или возможность арендовать такую карту.
  • Готовы использовать 2-битный квант UD-Q2_K_XL, а не Q8_0.
  • Понимаете, что 57-60 ток/с и +2.5 пункта - заявления автора, а не независимо подтверждённые цифры.
  • Есть время подобрать --moe-experts под свою задачу и проверить потребление памяти.
  • Допускаете, что на другой модели или другом бенчмарке эффект окажется иным.

Альтернативы: стандартный llama.cpp и другие модели

Стандартный llama.cpp остаётся более универсальным и лучше поддерживаемым решением: он тянет разные модели и обновляется активнее. AgrillaMoE даёт MoE-экспансию, но ценой нишевости: сборка под одну модель, меньше документации, зависимость от одного автора форка. Если нужна стабильность и поддержка разных моделей, апстрим может оказаться разумнее.

Если вы уже запускаете MoE-модели на ограниченном железе, полезно сравнить подход с другими конфигурациями. Например, в разборе про GTX 1080 Ti и MoE-модели 35B, 120B и 176B видно, как размер модели и квант меняют скорость и стабильность на одной карте. Вывод для AgrillaMoE тот же: относитесь к заявленным цифрам как к гипотезе и проверяйте её на своих задачах.

Подписаться на канал