Что такое WASTE и зачем это нужно
WASTE (Weight-Aware Streaming Tensor Engine) — это встроенный движок инференса на C, не требующий сторонних зависимостей (CUDA, Python, BLAS). Его главная цель — запускать огромные модели уровня Kimi K3 на потребительском оборудовании, используя быстрое хранилище (NVMe SSD) как основную память для весов, а оперативную память (RAM) — только для кэширования активных экспертов.
Код проекта написан ИИ, а идеи и тесты — людьми. Это позволяет быстро итерировать алгоритмы. Движок использует архитектуру Mixture-of-Experts (MoE): из 2.78 трлн параметров модели активными для каждого токена являются лишь ~4%.
Технические детали и метрики
Модель Kimi K3 использует линейное внимание и сжатый KV-кэш, что снижает требования к памяти. При контексте 4K размер KV-кэша составляет всего 0.21 ГБ (против 11.25 ГБ у стандартных моделей). Минимальный порог для запуска — 29.06 ГБ ОЗУ, но для комфортной работы требуется 64 ГБ.
Весовые данные хранятся на диске в формате .waste (982 ГБ из исходных 1.42 ТБ). Движок читает экспертов с диска, накладывая чтение на вычисления. Используется 3-битная квантизация для экспертов и 4/8 бит для общих весов.
Производительность на MacBook Pro M5 Pro (64 ГБ)
Скорость генерации зависит от размера кэша экспертов в ОЗУ. Парадоксально, но увеличение кэша свыше определенного предела не ускоряет процесс, а может даже замедлить его из-за свопинга.
| Размер кэша экспертов | Hit Rate (попадания) | Скорость (tok/s) |
|---|---|---|
| 3.32 ГБ | 29.1% | 0.56–0.58 |
| 17.32 ГБ (по умолчанию) | 36.2% | 0.63 |
| 23.32 ГБ | 38.4% | 0.07–0.09 |
| 29.32 ГБ | 41.3% | 0.07–0.08 |
Как видно из таблицы, при кэше 23+ ГБ скорость падает в 8 раз, несмотря на рост hit rate. Это происходит потому, что процесс занимает больше памяти, чем доступно, и «попадания» в кэш превращаются в page faults. Оптимальный баланс найден при ~17 ГБ кэша.
Мультимодальность и сравнение с другими моделями
WASTE поддерживает работу с изображениями. Обработка одного изображения (896x896) занимает около 15.7 секунд на бэкенде, но основная нагрузка ложится на языковую часть (2.8 сек на позицию изображения). Для сравнения, более легкая модель Kimi-Linear 48B (контейнер 19 ГБ, ОЗУ 1.28 ГБ) работает на той же машине со скоростью 10.65 токена/с.
Как запустить
Для работы требуется:
- macOS или Linux (Windows через MinGW-w66).
- 64 ГБ ОЗУ (рекомендуется), 29 ГБ — жесткий минимум.
- ~1 ТБ свободного места на внутреннем NVMe SSD для контейнера модели.
- Компилятор C11 и
make.
Движок можно использовать как CLI, как библиотеку C, или запустить сервер, совместимый с OpenAI API (/v1/chat/completions), для интеграции с другими приложениями.
Источник: Github ↗
