Janas-LLM запускает модели больше ОЗУ, подгружая эксперты с SSD

Maurizio «camauri» Cammalleri опубликовал Janas, семейство инструментов для ИИ, написанное на C без зависимостей, кроме стандартной библиотеки C. Первый компонент, Janas-LLM, запускает крупные языковые модели с архитектурой «смесь экспертов» (MoE) на обычных компьютерах, с видеокартой или без неё: веса остаются на диске, эксперты, нужные для каждого токена, подгружаются с NVMe SSD, а те, что востребованы снова и снова, держатся в памяти. По словам автора, 80-миллиардная модель работает и отвечает на ноутбуке с 32 ГБ ОЗУ.
Главные цифры из README (все получены автором на одном ноутбуке: Debian 13, Intel Core Ultra 9 185H со встроенной графикой Arc, 32 ГБ DDR5, SSD на 1 ТБ с чтением около 5,7 ГБ/с; замеры 9-11 октября 2026). Qwen3-Next-80B (файл 48 ГБ) выдаёт 37 токенов в секунду в режиме с черновиками и 24 без них; llama.cpp на той же задаче, 2,8. Чтение промпта: 62 токена в секунду против 16. В этом сравнении Janas-LLM оказался быстрее llama.cpp на каждой из сравниваемых моделей, с одним исключением: 3-битная Qwen3-30B читает промпт медленнее, потому что её веса формата Q3_K пока не идут по быстрому пути для видеокарты, зато пишет втрое быстрее.
Сравнение на 80B-модели устроено так. Обычная сборка llama.cpp падала по памяти, как только подключалась видеокарта, поэтому её запускали в сборке без перепаковки весов (GGML_CPU_REPACK=OFF) и с опциями --no-host 1 -lm mmap: 16 токенов в секунду на чтении с видеокартой и 2,8 на записи на одном процессоре (с видеокартой, 2,0). Janas-LLM запускали без специальных опций: самые нужные эксперты лежали в кэше около 19 ГБ, остальное читалось с диска. Автор оговаривает, что инструменты меряют не совсем одинаково (llama-bench пишет без предшествующего промпта, janas-bench, после 1024 токенов), машина одна, а у Janas-LLM для этой модели по одному раунду на показатель.
На Windows 11 на том же ноутбуке (замеры 12 октября) Janas-LLM пишет так же быстро, как на Linux: Qwen3-4B, 25,6 токена в секунду, Qwen3-30B-A3B, 34,2. Чтение промпта: 132 токена в секунду у Qwen3-30B-A3B и 346 против 193 у плотной Qwen3-4B (в 1,8 раза быстрее llama.cpp). Без видеокарты (JANAS_GPU=0) Qwen3-4B читает промпт со скоростью 85 токенов в секунду и пишет 27.
Черновики, режим, где небольшой блок предугадывает следующие токены, а модель их проверяет. Их ценность зависит от текста: на англоязычном ответе чата они сохранялись в 74-89% случаев у моделей Qwen и двух старших Gemma и в 63-72% у Gemma E2B и E4B; на итальянской прозе Qwen3.5-2B сохранила около трети и почти ничего не выиграла. Если параллельно открыты браузер и редактор, та же модель сохранила около трёх четвертей скорости, а ожидание диска выросло в пять раз.
В комплекте, janas-chat (чат в терминале), janas-server (HTTP-API в духе OpenAI и страница чата), janas-mcp (модель как инструменты для Claude Code, редакторов и других MCP-клиентов), janas-bench и библиотека для C и FreeBASIC. Подсказки кода в VSCodium и VS Code через janas-server занимают 1,5-2,2 с на подсказку; при сдвиге окна на строку его пришлось бы перечитывать 17 с. Поддерживаются модели Qwen3, Qwen3.5, Qwen3.6, Qwen3-Next и Gemma 4. Лицензия, GNU GPL версии 3 или новее. Сам автор называет проект экспериментом, а не продуктом.
Ключевые факты
- Janas-LLM, открытый движок на C: веса MoE-модели лежат на NVMe SSD, нужные эксперты подгружаются по токену, частые остаются в памяти (на 80B-модели, кэш около 19 ГБ).
- По замерам автора на одном ноутбуке (Core Ultra 9 185H, 32 ГБ): Qwen3-Next-80B пишет 24 токена в секунду без черновиков и 37 с ними, llama.cpp, 2,8; чтение промпта 62 против 16.
- Janas-LLM быстрее llama.cpp на всех сравниваемых моделях, кроме чтения промпта у 3-битной Qwen3-30B (зато пишет втрое быстрее).
- Есть сборки для Linux x86-64 и Windows 10/11; на Windows скорость записи такая же, как на Linux. Лицензия GNU GPL 3 или новее.
- Все замеры сделаны самим автором на одной машине; другие процессоры, дискретные видеокарты и медленные диски не проверялись. Проект назван экспериментом, а не продуктом.
Почему это важно
Главное ограничение локального запуска больших моделей, оперативная память: файл Qwen3-Next-80B (48 ГБ) больше, чем доступно ноутбуку в 32 ГБ. Janas-LLM обходит его тем, что для MoE-модели на каждый токен нужна лишь часть экспертов: их читают с быстрого NVMe-диска, а самые востребованные держат в кэше. По заявлению автора, за счёт этого 80B-модель отвечает на ноутбуке с видеокартой встроенного типа, причём заметно быстрее llama.cpp. При этом заявление опирается на самоотчётные замеры одного ноутбука.
Кому это важно
Тем, кто запускает нейросети локально на обычном железе без дискретной видеокарты и упирается в объём памяти; тем, кого интересует работа с MoE-моделями (Qwen3, Qwen3.5, Qwen3.6, Qwen3-Next, Gemma 4) на NVMe-накопителе. Кроме того, проект полезен разработчикам: есть библиотека для C и FreeBASIC, HTTP-сервер в стиле OpenAI, MCP-сервер и подсказки кода для VSCodium и VS Code через janas-server. Автор отдельно просит присылать отчёты janas-bench с другого железа.
Как это применить
На Linux x86-64 (Ubuntu 22.04, Debian 12 и новее) скачайте janas-linux-x86_64.tar.gz из релизов репозитория, распакуйте и запустите ./janas-chat: он предложит известные модели, скачает и проверит выбранную. На Windows 10 (1903 и новее) и 11 на x86-64 скачайте janas-windows-x86_64.zip, распакуйте и запустите janas-chat в терминале из папки janas. Сборка из исходников./build.sh (нужен build-essential, для GPU, libvulkan-dev, glslang-tools и vulkan-tools). Полезные опции: --cache <ГиБ> жёстко ограничивает память под кэш экспертов, JANAS_GPU=0 отключает видеокарту, Ctrl-C останавливает ответ, Ctrl-D выходит из чата. Автор советует сначала пробовать на незагруженной машине и измерять скорость своего железа через janas-bench. Лицензия, GNU GPL, версия 3 или новее.
Можно ли доверять
Все цифры приведены в README самого автора; независимых проверок или результатов третьих сторон в источнике нет. Замеры сделаны на одном ноутбуке 9-12 октября 2026, а для 80B-модели у Janas-LLM по одному раунду на показатель. Для основной таблицы janas-bench автор указывает среднее из трёх раундов, а не лучший раунд. Он же прямо пишет, что инструменты измеряют не совсем одинаково, а на другой машине цифры будут другими. Код llama.cpp и ggml в Janas не входит, они служат эталоном, с которым сверяют результаты. Сам проект автор называет экспериментом, а не продуктом.
Риски и подводные камни
Проверено только на одной конфигурации: Intel Core Ultra 9 185H, встроенная Arc, 32 ГБ, быстрый NVMe. Другие процессоры (особенно без AVX-VNNI или от AMD), дискретные видеокарты, более медленные диски и иной объём памяти никогда не пробовали. Сравнение с llama.cpp на 80B-модели шло со специальной сборкой llama.cpp без перепаковки весов и с дополнительными опциями, потому что обычная падала по памяти; в README также указано, что в строке Qwen3-Next-80B использована Qwen3-Coder-Next. Скорость заметно падает, когда параллельно работают другие программы: с открытыми браузером и редактором ожидание диска выросло в пять раз, скорость, до трёх четвертей. Выигрыш от черновиков зависит от текста: на итальянской прозе Qwen3.5-2B почти ничего не выиграла. У 3-битной Qwen3-30B чтение промпта пока медленнее, чем у llama.cpp.
«Это эксперимент, а не продукт.»
— README проекта Janas