colibrì — запуск огромных AI-моделей с использованием NVMe

Что такое colibrì?
colibrì — экспериментальный компактный движок для локального запуска очень больших AI-моделей, прежде всего моделей архитектуры Mixture of Experts (MoE).
Главная особенность проекта заключается в необычном использовании ресурсов компьютера. Вместо необходимости постоянно держать все веса огромной модели в оперативной или видеопамяти colibrì может хранить значительную часть модели на быстром NVMe-накопителе и загружать необходимые эксперты по мере выполнения запросов.
Благодаря этому становится возможным экспериментировать с моделями, которые при традиционном способе запуска потребовали бы значительно более дорогого оборудования.
Как работает colibrì?
Современные MoE-модели могут содержать огромное количество параметров, однако при обработке каждого токена используется только часть так называемых экспертов.
colibrì использует эту особенность архитектуры. Постоянно необходимые компоненты модели остаются в памяти, а маршрутизируемые эксперты могут находиться на диске.
Упрощённо схема выглядит следующим образом:
Запрос → модель → выбор экспертов → NVMe → RAM/кэш → вычисления → ответ
Для каждого слоя используется кэш экспертов. Если необходимый эксперт уже находится в кэше, он используется повторно. Если его там нет, движок считывает необходимые данные с накопителя.
Почему здесь так важен NVMe?
В обычных сценариях запуска LLM главным ограничением часто является объём RAM или VRAM. В colibrì большую роль начинает играть ещё и скорость накопителя.
Поскольку некоторые веса считываются непосредственно во время генерации, медленный жёсткий диск может очень сильно ограничивать производительность.
Поэтому для подобных конфигураций желательно использовать быстрый локальный NVMe SSD.
Обычный HDD, медленный SSD или сетевое хранилище значительно хуже подходят для такого режима работы.
Mixture of Experts
Mixture of Experts — архитектура нейронных сетей, в которой модель содержит множество специализированных блоков — экспертов.
Во время обработки каждого токена маршрутизатор выбирает только часть этих экспертов.
Например, модель может иметь сотни миллиардов общих параметров, но для конкретного токена активировать значительно меньшую их часть.
Именно это свойство делает возможным подход colibrì: эксперты, которые сейчас не используются, необязательно постоянно держать в быстрой памяти.
Очень большие модели на обычном сервере
Один из наиболее интересных примеров — GLM-5.2.
Эта MoE-модель содержит сотни миллиардов параметров. Для colibrì существуют специальные квантованные контейнеры, позволяющие хранить её веса на NVMe и подгружать необходимые эксперты во время генерации.
Размер такого контейнера составляет сотни гигабайт, поэтому для работы требуется достаточно большой и быстрый накопитель.
Это не превращает слабый компьютер в мощный GPU-сервер — скорость по-прежнему зависит от процессора, памяти, накопителя и выбранной модели. Однако такой подход позволяет запустить модель, которая иначе могла бы вообще не поместиться в доступную память.
Qwen3.6-35B-A3B
Более компактный пример — Qwen3.6-35B-A3B.
Это MoE-модель примерно с 35 миллиардами общих параметров и приблизительно 3 миллиардами активных параметров.
Для colibrì существуют готовые int4-контейнеры размером около 20–22 ГБ.
Это делает Qwen3.6 интересным вариантом для знакомства с технологией без необходимости сразу загружать несколько сотен гигабайт данных.
Hugging Face
Модели и подготовленные контейнеры для colibrì можно загружать с Hugging Face.
Для некоторых моделей уже существуют предварительно конвертированные варианты, поэтому пользователю не требуется самостоятельно преобразовывать оригинальные веса.
Например, загрузка подготовленной модели может выполняться через Hugging Face CLI:
hf download MODEL_REPOSITORY --local-dir ~/Models/model
После загрузки каталог модели указывается движку colibrì.
Установка colibrì
Исходный код проекта находится на GitHub.
git clone https://github.com/JustVugg/colibri
cd colibri/c
./setup.sh
Скрипт проверяет необходимые компоненты, собирает движок и выполняет базовые тесты.
Для Linux-конфигураций используется компилятор GCC и OpenMP. Конкретные требования зависят от выбранного движка и модели.
Запуск модели
После загрузки совместимого контейнера необходимо указать каталог модели:
COLI_MODEL=/nvme/model ./coli chat
После запуска становится доступен интерактивный режим общения с моделью.
Для хранения больших моделей желательно использовать отдельный быстрый NVMe:
/nvme/models/
Это особенно удобно на домашнем сервере или Proxmox-хосте с отдельным накопителем для AI-моделей.
OpenAI-совместимый API
colibrì можно использовать не только непосредственно из терминала.
Проект предоставляет серверный режим с OpenAI-совместимым API. Благодаря этому модель можно подключать к другим приложениям и сервисам, которые умеют работать с OpenAI API.
Получается следующая архитектура:
Приложение → API colibrì → локальная модель → NVMe → ответ
Это позволяет использовать большой локальный LLM как отдельный AI-сервис в собственной инфраструктуре.
Чем colibrì отличается от Ollama?
Ollama ориентирована прежде всего на максимально простой запуск и управление локальными AI-моделями.
colibrì решает несколько другую задачу. Проект специализируется на эффективном запуске поддерживаемых больших MoE-моделей и использует потоковую загрузку экспертов с накопителя.
Поэтому эти проекты не обязательно являются прямыми конкурентами.
Для повседневного локального AI и широкого выбора моделей удобнее может оказаться Ollama. colibrì особенно интересен для экспериментов с крупными MoE-моделями, которые трудно полностью разместить в доступной оперативной или видеопамяти.
Преимущества
- возможность запуска очень крупных MoE-моделей;
- активное использование NVMe вместо необходимости держать всех экспертов в памяти;
- компактный движок на C;
- CPU-инференс;
- поддержка кэширования экспертов;
- поддержка некоторых GPU-режимов для ускорения;
- OpenAI-совместимый API;
- готовые конвертированные модели на Hugging Face.
Ограничения
Главное преимущество colibrì одновременно является и его ограничением. NVMe значительно медленнее оперативной и особенно видеопамяти.
Поэтому возможность запустить огромную модель ещё не означает, что она будет работать с такой же скоростью, как на мощном GPU-сервере.
Производительность зависит от модели, процессора, скорости NVMe, размера RAM, размера кэша и наличия поддерживаемого GPU.
Кроме того, colibrì не является универсальным движком для любой модели с Hugging Face. Необходима поддержка конкретной архитектуры и совместимый формат весов.
Использование с Proxmox
Интересный вариант применения — собственный Proxmox-сервер.
Можно выделить отдельную виртуальную машину или контейнер для AI, подключить к нему быстрый NVMe и хранить модели отдельно от основной системы.
Получается домашний AI-сервер:
Proxmox → Linux → colibrì → NVMe → большая MoE-модель → API
Другие приложения домашней сети смогут обращаться к модели через API, а сами веса останутся на собственном сервере.
Кому интересен colibrì?
- владельцам домашних серверов;
- пользователям Proxmox;
- энтузиастам локального AI;
- разработчикам AI-приложений;
- тем, кто хочет экспериментировать с крупными MoE-моделями;
- пользователям с большим быстрым NVMe, но ограниченным объёмом RAM или VRAM.
Итог
colibrì предлагает необычный подход к локальному AI: использовать быстрый накопитель как важную часть системы инференса и загружать необходимые MoE-эксперты по мере работы модели.
Он не заменяет мощные GPU и не делает огромные модели быстрыми на любом компьютере. Его преимущество в другом — он позволяет запускать поддерживаемые крупные модели на оборудовании, где традиционный вариант размещения всех весов в RAM или VRAM был бы невозможен или слишком дорог.
Для домашнего AI-сервера с Proxmox и быстрым NVMe это особенно интересная технология для экспериментов с большими локальными моделями.
Проект: colibrì на GitHub
Модели: colibrì на Hugging Face
colibrì — компактный движок для запуска больших MoE-моделей на обычных компьютерах и серверах. Вместо загрузки всей модели в оперативную или видеопамять он может хранить маршрутизируемые эксперты на быстром NVMe и подгружать их по мере необходимости.