← Все статьи

Модель на 744 млрд параметров запустили на ноутбуке: движок Colibrì держит экспертов на SSD

Светящееся стеклянное ядро и рядом огромная полупрозрачная структура из множества светящихся кубиков на светлой поверхности

Открытый движок Colibrì, написанный на чистом C без единой внешней зависимости, запускает модели от 744 миллиардов до 2,8 триллиона параметров на обычном ноутбуке — без обязательной видеокарты. Работает это не за счёт сжатия модели до неузнаваемости: движок держит на диске «экспертов» — те части модели, которые нужны не каждый раз, — и подгружает только те, что понадобились на текущем токене. Проект набрал почти 38 тысяч звёзд на GitHub и уже поддерживает девять семейств моделей.

Что это за проект

Colibrì — движок для вывода больших моделей, который написал один разработчик под ником JustVugg. Он начинался как эксперимент на 12-ядерном ноутбуке с 25 ГБ оперативной памяти и вырос в проект с 37 951 звездой и 4 124 форками на GitHub. Лицензия — Apache 2.0, весь код открыт.

Сам движок — это один файл на C плюс небольшие заголовки. Ни BLAS, ни Python во время работы, ни обязательного GPU. Сборка — обычным gcc или clang с OpenMP, готовые бинарники есть для Linux, macOS и Windows.

Почему это вообще возможно

Секрет в архитектуре современных моделей. GLM-5.2 — это 744 миллиарда параметров, но на каждый токен активируется лишь около 40 миллиардов: маршрутизатор выбирает, какие «эксперты» будут считать именно этот токен. Причём от токена к токену меняется совсем небольшая часть — примерно 11 ГБ весов.

Отсюда главная мысль проекта: модель не обязана помещаться в быструю память — её нужно правильно разместить. Плотная часть (внимание, общие эксперты, эмбеддинги — около 17 миллиардов параметров) постоянно живёт в оперативной памяти и в int4 занимает примерно 9,9 ГБ. А 19 456 маршрутизируемых экспертов (75 слоёв MoE по 256 штук плюс голова MTP, примерно по 19 МБ каждый в int4) лежат на диске — около 370 ГБ — и подгружаются по мере надобности.

Светящееся стеклянное ядро и рядом огромная полупрозрачная структура из множества светящихся кубиков на светлой поверхности

JIT для весов

Автор описывает ядро движка как JIT-компилятор, только для весов. Обычный JIT не компилирует программу целиком — он смотрит, что реально выполняется, и компилирует горячие пути. Colibrì делает ту же ставку: параметры — не состояние, которое надо удерживать, а данные, которые надо вовремя подставить.

Измеренная «температура» маршрутизации решает, какой эксперт попадёт в быстрый слой. Для каждого слоя работает LRU-кэш, есть обученное «горячее» хранилище закреплённых экспертов и предзагрузка на слой вперёд: маршрутизатор выполняется раньше, чем нужны его результаты, и подкачка успевает спрятаться за вычислениями. Чем дольше вы работаете, тем точнее движок угадывает ваши горячие эксперты.

Три уровня памяти — VRAM, RAM и NVMe — это уровни размещения одних и тех же весов. Мало быстрой памяти — падает скорость, но не меняется модель: точность весов и выбор маршрутизатора остаются теми же, эксперт из VRAM и эксперт с диска дают одинаковый результат.

Цифры

Все замеры — на одной и той же модели GLM-5.2 в контейнере int4; меняется только железо, то есть то, где живут эксперты.

  • 6 видеокарт RTX 5090, все эксперты в быстрой памяти: 5,8–6,8 токена в секунду, время до первого токена около 13 секунд.
  • Настольный компьютер только на CPU со 128 ГБ памяти: около 1,8 токена в секунду на прогретом кэше.
  • Ноутбук с одной RTX 5070 Ti: 1,07 токена в секунду.
  • Та самая машина, с которой всё началось, — 12 ядер и 25 ГБ памяти: 0,05–0,1 токена в секунду на холодном кэше. Это честный нижний предел проекта.

Отдельно измерен эффект от двух независимых NVMe-накопителей: +37,5% к скорости декодирования. Третий, более медленный диск после взвешенного распределения нагрузки ничего не добавил.

Что поддерживается

Сейчас движок умеет девять семейств моделей, у каждого — свой C-файл, но общие компоненты (ввод-вывод, кэш, токенизатор) переиспользуются:

  • GLM-5.2 и GLM-5.3 — 744 млрд параметров, около 372 и 419 ГБ на диске, от 16 ГБ оперативной памяти;
  • GLM-5.3-Flash — 321 млрд, с поддержкой изображений;
  • Inkling — 975 млрд;
  • Kimi K3 — 2,8 трлн параметров, около 1,6 ТБ на диске и от 32 ГБ оперативной памяти, GPU не нужен;
  • DeepSeek V4 Flash — 284 млрд и DeepSeek V4.1 Flash — 552 млрд, оба с поддержкой изображений;
  • Qwen3.8-Flash-Next — 125 млрд плюс 51 млрд в n-граммовой памяти;
  • Qwen3.6 — 35 млрд и OLMoE — 7 млрд.

Есть веб-панель с живыми метриками и отдельная страница Brain, где визуализированы все 19 456 экспертов GLM-5.2: видно, какой эксперт только что вызван маршрутизатором и на каком уровне памяти он сейчас лежит. Есть и режим локального кластера: координатор считает токены и маршрутизацию, а эксперты на других машинах подхватывают вычисления.

Что честно говорят авторы

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

Часть идей пока остаётся гипотезами. Обученное закрепление горячих экспертов выигрывает на повторяющихся задачах, но может переобучиться под конкретный запрос. Спекулятивное декодирование на некоторых конфигурациях давало не выигрыш, а потерю около 32% при попадании в кэш около 85%. Прямой доступ к диску сильно зависит от модели накопителя. Автор приглашает сообщество проверять эти гипотезы и публиковать в том числе отрицательные результаты.

Что это значит

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

Для тех, кто хочет просто поговорить с современными моделями без возни с дисками и сборкой, есть чат NeuralSpace; генерация картинок — в разделе «Картинки», видео — в «Видео».

Частые вопросы

Что такое Colibrì?

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

Нужна ли видеокарта?

Нет. GPU только ускоряет работу, но ни одна из поддерживаемых моделей его не требует. Скорость в первую очередь определяет накопитель, с которого подгружаются эксперты.

Насколько это быстро?

На слабой машине — доли токена в секунду, на быстрой — несколько токенов. Это не замена облачному API по скорости, но полноценный локальный запуск без аренды серверов.

Где взять?

Код и готовые сборки — в открытом репозитории JustVugg/colibri на GitHub. Источник: 量子位 (QbitAI).