Colibri держит горячих экспертов MoE на видеокарте, тёплых — в оперативной памяти, холодных — на NVMe. Разбираем, какие модели реально идут, с какой скоростью и где подвох.
Colibri — движок вывода для очень больших MoE-моделей, написанный на чистом C. Вместо того чтобы требовать видеокарту под весь чекпоинт, он держит в памяти только ту часть экспертов, которая нужна прямо сейчас, а остальное читает с диска. На практике это значит: GLM-5.2 на 744 млрд параметров запускается на ноутбуке с 24 ГБ памяти, пусть и медленно.
Colibri — это inference-движок, а не модель и не обёртка над llama.cpp. Его задача — запускать mixture-of-experts модели, которые в память целиком не влезают. У MoE на каждый токен активируется лишь небольшая часть параметров, и именно на этом строится вся архитектура: активные эксперты считаются на GPU, неактивные лежат в RAM или на диске и подгружаются по мере надобности.
Проект написан на C, без Python-рантайма в горячем пути. Поддерживается три бэкенда: CPU, Vulkan (любая видеокарта, включая интегрированную) и CUDA (NVIDIA). Один и тот же движок собирается под конкретную модель — в репозитории 13 движков: десять языковых, один графический (Qwen-Image-2.1) и два решающих (Laya и GLiNER2.5-Decide).
Список языковых моделей на момент обзора: GLM-5.2 и GLM-5.3 (744B), GLM-5.3-Flash (321B), Inkling (975B), Kimi K3 (2,8T), DeepSeek V4 Flash и V4.1 Flash, MiMo-V2.6 Flash и Pro, Qwen3.8-Flash-Next, Qwen3.6 (он же Qwen3-Coder, Qwen3.8-27B, Flint, Muse Spark Open и LFM3-VL) и OLMoE. Отдельно поддерживается запуск из готовых GGUF-файлов — их можно читать как есть, без конвертации.
Ключевая деталь — предсказуемость. Если маршрутизатор часто вызывает одни и те же эксперты, они остаются в быстрой памяти и скорость держится. Если модель «скачет» по всему словарю экспертов, каждый токен превращается в чтение с диска, и скорость падает до десятых долей токена в секунду.
Отсюда и требования: быстрый NVMe важнее мощной видеокарты. Авторы прямо пишут, что скорость упирается в диск, а не в GPU. Видеокарта нужна, чтобы считать то, что уже загружено, — она перестаёт быть узким местом примерно на 6×RTX 5090, где все эксперты помещаются в память.
| Модель | Скачать | RAM | Скорость (замер авторов) |
|---|---|---|---|
| Qwen3.6-35B-A3B | 23 ГБ | 10 / 20 ГБ | 6,0 tok/s CPU; 9,9 Vulkan на встройке; 30,0 CUDA |
| DeepSeek V4 Flash (284B) | 167 ГБ | 16 / 32 ГБ | 0,93 tok/s на 32 ГБ; 1,24 на 63 ГБ; 1,5–1,6 CUDA |
| GLM-5.2 (744B) | 429 ГБ | 16 / 24 ГБ | 0,05–0,1 на ноутбуке 25 ГБ; 1,83 на 128 ГБ; 9,0–9,2 на 6×RTX 5090 |
| Inkling (975B) | 514 ГБ | 120 / 128 ГБ | 0,25 tok/s (Ryzen 9 7900 + RTX A6000) |
| Kimi K3 (2,8T) | 1,56 ТБ | 32 / 64 ГБ | около 9,4 с на токен, чтение экспертов 6,3 ГБ/с |
Для слабых машин есть отдельная ветка: Qwen3-Coder-30B-A3B (19 ГБ) идёт со скоростью 8,5–9,6 tok/s, если все эксперты помещаются в RAM, и 5,1 tok/s, если держать по 32 эксперта на слой. OLMoE на 7B после конвертации в int8 занимает 7 ГБ и выдаёт 22–23 tok/s на CPU — на нём удобно знакомиться с инструментом.
Требования к железу скромные только на бумаге: минимум 8 ГБ RAM и 22 ГБ свободного диска под самую маленькую модель. Но чем больше модель, тем больше диск: под Kimi K3 нужно 1,56 ТБ, под GLM-5.2 — 429 ГБ. Это не «поставил и забыл», а отдельный шкаф с накопителями.
| Что поддерживается | Где есть | Где нет |
|---|---|---|
| Tool calling | все чат-движки | Inkling, OLMoE |
| Картинки на вход | GLM-5.3-Flash, DeepSeek V4.1 Flash, MiMo-V2.6, Qwen3.8-Flash-Next, Qwen3.8-27B, LFM3-VL, Mistral-Large-4 | остальные |
| Документы /file | все чат-движки (до 64 МиБ, 2 млн символов) | — |
| Генерация картинок | Qwen-Image-2.1 (/v1/images/generations) | остальные |
| Несколько контекстов | coli serve --kv-slots до 16 | текстовые движки |
Разброс в сто раз — это и есть главный вывод. На ноутбуке с 25 ГБ памяти GLM-5.2 отвечает в темпе «токен в 10–20 секунд»: формально работает, практически — только для экспериментов. На машине с 128 ГБ и быстрым NVMe уже 1,83 tok/s, и это похоже на медленное, но живое общение. На шести RTX 5090, где все эксперты влезают в память, — 9,0–9,2 tok/s, и вот это уже рабочая скорость.
С GGUF-файлами картина другая: Inkling-Small (77 ГБ) на Vulkan выдаёт 10,9–11,5 tok/s, MiMo-V2.6-Flash (106 ГБ) — 7,8 tok/s, DeepSeek V4 Flash (85 ГБ) — 6,2 tok/s. То есть правильно подобранная модель на 100 ГБ может быть быстрее, чем «флагман» на 744 млрд, который постоянно читает диск.
sudo apt install git python3 build-essential git clone https://github.com/JustVugg/colibri cd colibri ./start-here.sh # после сборки ./coli chat # чат в терминале ./coli serve # OpenAI-совместимый сервер на 127.0.0.1:8000
Установщик задаёт один вопрос — какую модель ставить, — и предлагает вариант, который влезает в вашу память. На Windows есть START-HERE.bat, на macOS — тот же start-here.sh через Homebrew. Если компилятора нет, скачивается предсобранный бинарник.
`coli serve` — это не только чат. Сервер отдаёт OpenAI-совместимые /v1/chat/completions, /v1/completions и /v1/models со стримингом и JSON-ответами, а также Anthropic-совместимый /v1/messages — то есть Claude Code и официальные SDK Anthropic работают с ним как с обычным провайдером. База — http://127.0.0.1:8000/v1, ключ любой непустой.
Дополнительно: tool calling на всех чат-движках, кроме Inkling и OLMoE; приём картинок на GLM-5.3-Flash, DeepSeek V4.1 Flash, MiMo-V2.6, Qwen3.8-Flash-Next, Qwen3.8-27B, LFM3-VL и Mistral-Large-4; документы до 64 МиБ и 2 млн символов через /file; генерация картинок на Qwen-Image-2.1 и решения на /v1/systemone. До 16 изолированных контекстов через --kv-slots.
Практический сценарий: поднять coli serve на домашней машине и подключить к нему Cline, Continue или Claude Code, получив локального провайдера без облачных счетов. Ограничение — скорость: на больших моделях автодополнение в редакторе будет заметно тормозить.
Кому подходит: тем, у кого есть машина с большим объёмом RAM и быстрым NVMe и кто хочет потрогать модели, до которых иначе не добраться. Кому нет: продакшену с нагрузкой, командам без быстрых накопителей и тем, кому нужна максимальная скорость, — здесь выигрывает модель, которая просто влезает в видеопамять.