Содержание
Коротко
Проект Colibri показывает необычный способ запускать GLM-5.2 — модель класса MoE с 744 млрд параметров — на обычной машине с 25 ГБ оперативной памяти и без GPU. Это не превращает такой компьютер в быстрый чат-сервер: автор сообщает всего о 0,05–0,1 токена в секунду на своей конфигурации.
Смысл эксперимента в другом. Постоянно в памяти остаётся лишь компактная часть модели, а выбранные экспертные блоки читаются с NVMe-накопителя по мере необходимости. Получается наглядный разбор того, как разреженная архитектура модели меняет требования к железу.
Что произошло
Colibri — небольшой движок на C без внешних зависимостей. В опубликованном разборе его автор описывает запуск квантованной GLM-5.2: плотные слои, общие эксперты и представления занимают около 9,9 ГБ ОЗУ, а 21 504 маршрутизируемых эксперта объёмом примерно 370 ГБ хранятся на NVMe.
Для каждого токена маршрутизатор выбирает лишь часть экспертов. Поэтому программе не нужно держать на руках весь вес модели: она подгружает нужные блоки с диска и сохраняет часто используемые в свободной памяти. Цена такого решения — ожидание чтения с накопителя, особенно при «холодном» кэше.
Автор также реализовал сжатое хранение контекста диалога, предварительное чтение вероятно нужных экспертов и предсказание нескольких токенов за один проход. Это инженерный эксперимент с конкретным узким местом — пропускной способностью случайного чтения NVMe, а не обещание универсальной замены облачных моделей.
Почему это важно
MoE-модель активирует не все параметры на каждом шаге. В случае GLM-5.2 автор указывает примерно 40 млрд активных параметров на токен, хотя общий размер значительно больше. Colibri использует это свойство буквально: постоянные вычисления остаются в ОЗУ, а редкие экспертные веса становятся внешним уровнем памяти.
Такой подход полезен разработчикам как архитектурный пример. Ограничение определяется не только числом параметров, но и тем, какие из них нужны одновременно, сколько данных приходится переносить и можно ли предсказать следующий доступ. При этом локальный запуск не равен высокой производительности: медленный ответ остаётся медленным, даже если его стоимость в API равна нулю.
| Характеристика | Что заявляет автор | Практический смысл |
|---|---|---|
| Память | около 9,9 ГБ постоянно в ОЗУ | модель помещается на недорогой машине |
| Хранилище | около 370 ГБ на NVMe |
быстрый локальный диск обязателен |
| Скорость | 0,05–0,1 токена/с на тестовой машине | диалоговый интерфейс будет неудобен |
| Код | один файл C, без тяжёлой среды | проще изучать устройство движка |
На практике
Colibri разумнее рассматривать для задач, где результат не нужен пользователю через секунды. Например, для ночной пакетной обработки документов, локального исследования поведения модели или разбора конфиденциальных текстов, которые нельзя передавать внешнему поставщику.
Перед экспериментом стоит проверить не рекламное число параметров, а ограничения конкретной машины:
- Выделить быстрый
NVMeс запасом как минимум в несколько сотен гигабайт; сетевое хранилище здесь сведёт идею на нет. - Измерить скорость случайного чтения и потребление памяти на собственных запросах, а не ориентироваться на чужие замеры.
- Отделить пакетные задания от интерактивных: очередь и фоновое выполнение честнее, чем интерфейс, в котором человек ждёт каждый токен.
- Проверить лицензию весов, источник файлов и целостность загрузки до работы с чувствительными данными.
Для сервиса с несколькими одновременными пользователями такой движок пока не подходит: последовательности выполняются по очереди, а задержка измеряется десятками секунд или минутами. Однако идеи кэша экспертов и предварительного чтения применимы и к более производительным системам.
Итог
Colibri не доказывает, что гигантская LLM стала удобной на любом компьютере. Он доказывает более узкую и интересную вещь: разреженную MoE-модель можно разложить по уровням памяти и запустить локально, если принять компромисс по времени ответа.
Для разработчика это хороший открытый материал о маршрутизации экспертов, квантовании и работе с дисковым кэшем. Для продукта — повод сначала определить допустимую задержку: впечатляющий запуск на 25 ГБ ОЗУ ещё не означает пригодность для интерактивного ИИ.

