Как запустить нейросеть на 744 миллиарда параметров на обычном компьютере

15 авг 2026
24,770
2,704
218
3 недели

colibrì — tiny engine, immense model

Когда открываешь страницу модели вроде GLM-5.2 на 744 миллиарда параметров или Kimi K3 на 2.8 триллиона, первая мысль вполне простая: для запуска нужна стойка серверов с десятком карт H100. Если таких ресурсов под рукой нет, остаётся только платить за вызовы API.

Недавно наткнулся на проект JustVugg/colibri. Автор написал легковесный движок инференса на чистом Си без сторонних зависимостей. Движок умудряется прогонять гигантские MoE-модели на обычном десктопе или ноутбуке с 24 ГБ оперативки, подтягивая веса прямо с быстрого SSD.

only ~5.4% of parameters are active per token

В чем хитрость

Архитектура Mixture-of-Experts (MoE) устроена так, что для генерации одного токена не требуется вся модель целиком. Например, в GLM-5.2 из 744 миллиардов параметров активны лишь около 40 миллиардов. При этом от токена к токену меняется всего порядка 11 ГБ весов, которые приходятся на выбранных маршрутизатором экспертов.

Реклама

Вместо попыток утрамбовать 370 ГБ модели в видеопамять, движок распределяет данные по иерархии носителей:

  • Плотная часть модели (эмбеддинги, attention, общие слои) весит около 9.9 ГБ в квантовании int4 и постоянно сидит в оперативной памяти.
  • Почти 20 тысяч экспертов лежат на быстром NVMe SSD и подгружаются по мере надобности через асинхронный I/O.
  • Часто используемые эксперты оседают в LRU-кэше оперативной памяти или VRAM.

VRAM / RAM / NVMe three-tier expert residency

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

Как устроен движок

Кодовая база лаконичная. Ядро написано на Си (каждое семейство моделей вынесено в отдельный файл, например c/colibri.c для GLM) и компилируется с помощью gcc или clang с поддержкой OpenMP. Никаких гигантских фреймворков и монструозных рантаймов. Питон используется только для разовой конвертации весов и обвязки веб-интерфейса.

route → union → place → overlap → learn

При генерации каждого токена движок выполняет несколько шагов:

  1. Просчитывает маршрутизацию на слой вперед через отдельный поток префетча. Роутер предсказывает нужного эксперта с точностью около 71%, поэтому чтение с диска идет параллельно с вычислениями.
  2. Объединяет запросы к одинаковым экспертам в батче, чтобы исключить повторные чтения.
  3. Читает три матрицы каждого эксперта единым системным вызовом pread.
  4. Сохраняет статистику попаданий в файл истории, чтобы при следующих запусках заранее закреплять горячие слои в памяти.

Интересно сделана поддержка двух накопителей. Если разложить копии весов на два разных SSD, движок распределяет запросы к экспертам пропорционально скорости чтения каждого диска. Пара накопителей на 9 ГБ/с и 3 ГБ/с ускоряет чтение примерно на треть.

colibrì web dashboard

Для ускорения вычислений поддерживаются CUDA, Metal на чипах Apple Silicon и Vulkan. Вариант с Vulkan работает даже со старыми видеокартами вроде AMD RX 580 через драйвер RADV, для которых вендор давно закрыл поддержку свежего ROCm.

the Brain page

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

the Atlas page

Честные цифры скорости

Чудес не бывает, поэтому скорость упирается в пропускную способность диска и доступный объем памяти.

measured decode speed by hardware class

В бенчмарках проекта зафиксированы следующие результаты на модели GLM-5.2:

  • Ноутбук с 25 ГБ RAM и холодным кэшем выдает скромные 0.05-0.1 токена в секунду. Это долго, но модель отвечает без искажения логики.
  • Рабочая станция со 128 ГБ оперативной памяти без дискретной видеокарты выдает около 1.8 токена в секунду на разогретом кэше.
  • Ноутбук с мобильной RTX 5070 Ti за счет GPU-пайплайна разгоняется до 1.07 токена в секунду.
  • Сервер с шестью картами RTX 5090 держит экспертов целиком в видеопамяти и показывает 5.8-6.8 токенов в секунду.

Поддерживаемые модели

Помимо базовой GLM-5.2, автор добавил поддержку еще четырех архитектур:

  • Inkling (975B) — для запуска плотной части в int4 требуется около 25 ГБ оперативки и 469 ГБ места на диске.
  • Kimi K3 (2.8T) — гигант весом 1.6 ТБ, читает нативные веса MXFP4 напрямую из оригинальных шардов без предварительной конвертации.
  • DeepSeek V4 Flash (284B) — работает со 167 ГБ весов в формате fp4/fp8 и требует от 16 до 22 ГБ RAM.
  • OLMoE (7B) — компактный вариант на 4 ГБ весов для быстрых экспериментов на 8 ГБ RAM.

Как запустить

Движок распространяется в виде готовых бинарников под Linux, macOS и Windows, либо собирается из исходников за минуту:

git clone https://github.com/JustVugg/colibri && cd colibri/c
./setup.sh

После сборки скачиваем квантованные веса нужной модели с Hugging Face (например, GLM-5.2 int4 занимает около 372 ГБ) и запускаем чат через терминал:

COLI_MODEL=/path/to/glm52_i4 ./coli chat

Если хочется получить совместимый с OpenAI API локальный сервер вместе с веб-панелью, запускаем команду:

./coli web --model /path/to/glm52_i4

Перед запуском имеет смысл проверить распределение памяти с помощью ./coli plan и провести быстрый тест железа через ./coli tune.

Кому пригодится проект

Colibrì вряд ли подойдет для высоконагруженного продакшена из-за задержек дискового чтения на потребительском железе. Зато это отличная находка для исследователей, энтузиастов и разработчиков, которым нужно протестировать рассуждения топовых открытых моделей локально, не покупая серверные видеокарты за миллионы рублей. Код ядра компактный и прозрачный, так что движок удобно использовать как полигон для собственных экспериментов с I/O и квантованием.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.