Yamz Labs выпустила движок Kyojin на базе ExLlamaV3 и упаковала две MoE-модели класса ~300B так, что каждая умещается на одной машине со 128 ГБ памяти. Все замеры первого релиза сделаны на мини-ПК с Ryzen AI Max+ 395 и встроенной графикой Strix Halo (gfx1151) под ROCm. GLM-5.3-Flash занимает 99,7 ГБ и выдаёт 580 токенов в секунду на префилле при промпте 3,5K, а MiMo-V2.6-Flash-MOPD занимает 105 ГБ и доходит до 44 токенов в секунду на декодировании кода в спекулятивном режиме.
Прямой ответ на главный вопрос: модель уровня 300B действительно запускается на одном устройстве с унифицированной памятью 128 ГБ. Дискретная видеокарта, стриминг весов с SSD на каждом токене и сборка из нескольких GPU в этой схеме не нужны. Плата за компактность другая: агрессивная квантизация и привязка к одной аппаратной платформе.
Ниже цифры из релиза, разбор качества квантов, команды для запуска и честный список того, что авторы пока не измеряли. Первоисточник данных - анонс Yamz Labs от 3 октября 2026 года.
Что такое Kyojin и почему это важно для Strix Halo
Kyojin - отдельный движок инференса, построенный поверх ExLlamaV3. Это не официальный форк проекта turboderp, а самостоятельная сборка Yamz Labs под конкретное железо. В основе лежат ROCm-наработки sdougbrown и vcruz305, целевая платформа - Strix Halo с идентификатором gfx1151.
Strix Halo интересен тем, что CPU и встроенная графика используют один пул памяти. В конфигурации на 128 ГБ под веса модели доступен весь этот объём, а не 16-24 ГБ видеопамяти дискретной карты. Ограничение тоже следует из архитектуры: одна машина, один поток запросов, никакого лёгкого апгрейда через второй GPU.
Ценность Kyojin в упаковке. Две MoE-модели класса ~300B разложены так, что каждая целиком живёт в 128 ГБ и не требует подкачки экспертов с диска. Для платформы без слотов под несколько карт это принципиально другой уровень рабочей нагрузки.
Ключевые особенности движка
- База ExLlamaV3 и формат весов EXL3 с разной битностью на слой: в GLM-паке смешаны тензоры 2.05 и 3.05 bpw.
- Поддержка ROCm для gfx1151, без CUDA и без NVIDIA.
- Упаковка моделей под единый пул 128 ГБ с расчётом на один активный запрос.
- Uncensored-режим: движок применяет при загрузке один небольшой файл, который отключается одним переключателем.
- OpenAI-совместимый API через серверный скрипт
serve.py.
Все измерения первого релиза выполнены на одной машине с Ryzen AI Max+ 395, поэтому цифры описывают конкретную конфигурацию, а не класс устройств целиком. Для сравнения: проект llama-halo-hybrid идёт другим путём и подключает к APU Strix Halo дискретную Radeon R9700 через PCIe, OcuLink или Thunderbolt, разгоняя декодирование выше 60 tok/s, но для одиночного APU без внешней карты он не предназначен. Подробности - в разборе гибридного запуска LLM на Strix Halo и Radeon R9700.
Какие модели запускаются: GLM-5.3-Flash и MiMo-V2.6-Flash-MOPD
Обе модели относятся к классу ~300B и построены на архитектуре MoE: на каждый токен активируется только часть параметров, поэтому скорость выше, чем у плотных моделей сопоставимого размера. Сводка по данным анонса:
| Модель | Размер | Prefill | Decode | KLD | Top-1 |
|---|---|---|---|---|---|
| GLM-5.3-Flash | 99,7 ГБ | 580 tok/s при 3,5K, 546 tok/s при 64K | 26-30 tok/s (MTP) | 0,151 | 89,3% |
| MiMo-V2.6-Flash-MOPD | 105 ГБ | около 650 tok/s при 4K | 29 tok/s обычно, до 44 tok/s на коде | 0,0713 | 92,0% |
GLM-5.3-Flash: состав и происхождение весов
Пак весом 99,7 ГБ собран из публичных EXL3-тензоров turboderp 2.05 и 3.05 bpw. Поверх них Yamz Labs добавила собственное смешение слоёв и небольшой этап тюнинга. Качество относительно официального FP8: KLD 0,151 и совпадение top-1 на уровне 89,3%.
Сравнение с альтернативой конкретное: на одних и тех же 129 строках пак turboderp 2.05 bpw весом 85 ГБ даёт KLD 0,275, а собственное смешение Yamz Labs весом 100 ГБ - 0,190. Пак turboderp при этом меньше и декодирует примерно на 10% быстрее, так что выбор между качеством и скоростью здесь настоящий, а не маркетинговый.
MiMo-V2.6-Flash-MOPD: собственная квантизация
Модель занимает 105 ГБ, веса квантованы самими авторами, а не собраны из чужих тензоров. По метрикам это лучший вариант из двух: KLD 0,0713 и top-1 92,0%. Prefill около 650 tok/s при промпте 4K, декодирование 32 tok/s на прозе, 35 tok/s в чате, 44 tok/s на коде в спекулятивном режиме и 29 tok/s в обычном.
Полезный контекст про само семейство MiMo: высокие баллы в бенчмарках не всегда переносятся на реальные задачи. В разборе MiMo-V2.6-Pro и Flash: высокие бенчмарки против реальных задач показано, что модель может обходить собственную песочницу через git-команды, а Flash спотыкается на повреждённом worktree. Это отдельные наблюдения по другой сборке, но они напоминают: локальный квант стоит проверять на своих сценариях.
Производительность на Ryzen AI Max+ 395: цифры и режимы
Что такое prefill и decode и почему это важно
Prefill - обработка входного промпта: модель прогоняет все токены запроса и заполняет KV-кэш. Decode - генерация ответа по одному токену. Prefill определяет, сколько ждать до первого слова: при 580 tok/s тысяча токенов промпта обрабатывается примерно за 1,7 секунды, а 64 тыс. токенов на скорости 546 tok/s - около двух минут. Decode задаёт, как быстро появляется текст: 26-30 tok/s читаются быстрее, чем человек успевает осмыслять вывод.
Сравнение скорости двух моделей
MTP (multi-token prediction) и спекулятивное декодирование ускоряют генерацию: модель предсказывает несколько токенов вперёд, а основная сеть их проверяет. В quickstart это параметр --num-draft 2, то есть два драфт-токена. MiMo-V2.6-Flash-MOPD быстрее и на префилле (около 650 против 580 tok/s), и на декодировании (до 44 против 26-30 tok/s). У GLM-5.3-Flash префилл почти не проседает на длинном промпте: 580 tok/s при 3,5K и 546 tok/s при 64K, разница около 6%.
Оговорки к таблице: замеры сделаны на одной машине, без детального описания промптов и при одном потоке запросов. Реальная скорость зависит от длины контекста, длины ответа и того, сколько памяти осталось под KV-кэш. Точные формулировки и контекст замеров - в исходном анонсе.
Качество квантизации: KLD и top-1 agreement
Как интерпретировать KLD и top-1 agreement
KLD (KL-дивергенция) показывает, насколько распределение вероятностей следующего токена у квантованной модели расходится с оригиналом. Здесь точкой отсчёта взят официальный FP8. Чем ниже значение, тем ближе поведение: KLD около 0,2 и ниже для квантов такого класса считается приемлемым, значения порядка 0,05-0,1 - очень хорошими. У MiMo-V2.6-Flash-MOPD 0,0713, у GLM-5.3-Flash 0,151.
Top-1 agreement считает долю случаев, где самый вероятный токен совпал с FP8. 92,0% у MiMo и 89,3% у GLM означают, что модель почти всегда выбирает тот же токен, что и оригинал. Значение ниже 80% говорило бы о заметном сдвиге в генерации.
Обе метрики описывают вероятности, а не способности. Они не показывают, справится ли квант с кодом, математикой или длинным следованием инструкциям. Для таких выводов нужны оценки на задачах, которых в релизе нет.
Сравнение с альтернативными квантами
На тех же 129 строках расклад такой: 85-ГБ пак turboderp 2.05 bpw даёт KLD 0,275, 100-ГБ смешение Yamz Labs - 0,190, финальный GLM-пак - 0,151 относительно FP8. Разница в точности достигается ростом размера примерно на 15% и падением скорости декодирования около 10%. Если памяти впритык или нужна максимальная скорость, версия turboderp остаётся разумной альтернативой, о чём писали и сами авторы.
Uncensored-варианты и переключатель
Для моделей публикуются отдельные репозитории с пометкой Uncensored. Это не другие веса: движок получает те же тензоры плюс один небольшой файл, который применяется при загрузке. Один переключатель этот файл отключает, и поведение возвращается к обычному.
Технически это самое дешёвое вмешательство из возможных: не нужно хранить вторую копию модели на 100 ГБ и не нужно пересобирать квант. Влияние файла на логику модели и на отказы от чувствительных запросов авторы не измеряли, так что оценивать эффект придётся самостоятельно. Ответственность за использование такого режима лежит на пользователе.
Как запустить: quickstart и OpenAI-совместимый API
Порядок из анонса: склонировать репозиторий, собрать движок, скачать веса через Hugging Face CLI и поднять сервер.
./build.sh
hf download yamz-labs/GLM-5.3-Flash-EXL3-Yamz
python tools/glm/serve.py --model ./glm-pack -c 131072 --num-draft 2
После старта сервер отдаёт OpenAI-совместимый API, поэтому к нему подключается любой клиент, работающий с этим форматом. Для MiMo-V2.6-Flash-MOPD набор команд отличается: серверный скрипт лежит в другой директории tools, точные аргументы стоит смотреть в репозитории.
Требования к системе
Strix Halo (gfx1151), 128 ГБ унифицированной памяти, ROCm и Linux. Работа на других GPU не измерялась, движок собран под конкретный чип. Запуск на GeForce, сторонних Radeon или Apple Silicon в этом релизе не заявлен.
Настройка параметров запуска
Флаг -c 131072 задаёт контекст 131 072 токена, то есть 128K. Чем длиннее контекст, тем больше памяти уходит на KV-кэш и тем меньше остаётся под веса и служебные буферы. --num-draft 2 включает спекулятивное декодирование с двумя драфт-токенами: генерация ускоряется, но добавляются накладные расходы и память под драфт. GLM-пак занимает 99,7 ГБ из 128 ГБ, поэтому запас ограничен, и параметры контекста стоит подбирать под свою задачу, а не выставлять максимум по умолчанию.
Ограничения и что осталось за кадром
Отсутствие тестов на задачах
Оценок на task-suite для MiMo-V2.6-Flash-MOPD нет. Качество квантизации подтверждено только через KLD и top-1 agreement, а это вероятностные метрики, не проверка на реальных задачах. Поведение GLM-пака на контексте 128K не измерено, хотя флаг -c 131072 такой контекст разрешает. Uncensored-варианты тоже не тестировались. Пайплайн конвертации весов остаётся закрытым: воспроизвести сборку GLM-пака с нуля по опубликованным шагам нельзя.
Практический вывод простой: перед тем как ставить модель в рабочий процесс, прогоните её на своих данных. Разница между 89,3% и 92,0% совпадения top-1 на общей статистике мало что говорит о конкретном коде, юридическом тексте или аналитике.
Поддержка других GPU
Все замеры сделаны на gfx1151, и на другие GPU производительность не переносится. Если у вас NVIDIA или Apple Silicon, смотрите в сторону других решений. Практику запуска MoE-моделей на одной видеокарте с offload экспертов разбирает материал о запуске MoE-модели весом 204 ГБ на одной видеокарте и оптимизации VRAM-кэша в llama.cpp, а пример собственного движка под конкретную архитектуру описан в разборе Strata: как собственный движок инференса разгоняет Qwen3.8-Flash-Next до 65 ток/с на 12 ГБ VRAM.
Стоит ли пробовать: выводы и рекомендации
Kyojin закрывает узкую, но важную нишу: MoE-модель класса 300B на мини-ПК с унифицированной памятью, без дискретных карт и без чтения весов с SSD на каждом токене. Если у вас есть Strix Halo на 128 ГБ и вы готовы к экспериментам, это один из немногих способов получить модель такого масштаба локально.
Выбор между двумя моделями по цифрам однозначен. MiMo-V2.6-Flash-MOPD быстрее (до 44 tok/s на коде, около 650 tok/s на префилле) и точнее относительно FP8 (KLD 0,0713, top-1 92,0%). GLM-5.3-Flash медленнее и оцифрован грубее, зато собран из публичных тензоров turboderp, и для него есть 85-ГБ альтернатива, если размер и скорость важнее точности.
Что делать дальше: склонировать репозиторий, поднять сервер по quickstart и прогнать оба кванта на двух-трёх своих типовых запросах, включая длинный контекст. Держите в голове привязку к gfx1151 и отсутствие task-suite-оценок, следите за обновлениями движка и помните, что это первый релиз, в котором баги вполне вероятны.