AirLLM грузит модель послойно с диска, поэтому 70B помещается в 4 ГБ видеопамяти, а Kimi K3 на 2,8 трлн параметров — меньше чем в 4 ГБ. Разбираем, как это работает, что реально запускается и чем за это платите по скорости.
AirLLM — открытая библиотека, которая позволяет запускать очень большие модели на слабой видеокарте. Она не сжимает модель до неузнаваемости и не режет её: веса разбиваются на слои и лежат на диске, а в память попадает только тот слой, который считается прямо сейчас. Поэтому 70B работает на 4 ГБ видеопамяти, а самая большая открытая модель — Kimi K3 на 2,8 трлн параметров — укладывается в 3,72 ГБ.
Проект ведёт lyogavin, репозиторий живёт с июня 2023 года. За это время библиотека прошла путь от «Llama 2 на 4 ГБ» до поддержки моделей на триллионы параметров: в описании репозитория прямо стоит «AirLLM 2.8T LLM inference with single 4GB GPU». На 3 ноября 2026 года у проекта 41 662 звезды, 4 280 форков и 150 открытых задач — активность не затухает, последний коммит в тот же день.
Ключевая идея проста и стара: не нужно держать всю модель в памяти одновременно, потому что при генерации слои используются последовательно. AirLLM разбивает веса на отдельные файлы по слоям, держит на диске и подгружает по одному в видеопамять. Предзагрузка следующего слоя идёт параллельно с вычислением текущего — это дало примерно 10% прироста скорости ещё в версии 2.5.
Важно, что это не квантование и не дистилляция: по умолчанию веса остаются в исходной точности. Опционально можно включить блочное квантование в 4 или 8 бит — тогда скорость растёт до трёх раз, а качество падает минимально.
На практике узкое место — не видеокарта, а диск. Модель на 70B в половинной точности весит около 140 ГБ; чтобы сгенерировать один токен, все эти гигабайты должны пройти через шину. Поэтому NVMe даёт заметно лучший результат, чем SATA, а сетевой диск превращает генерацию в мучение.
При первом запуске библиотека один раз разбивает чекпоинт на послойные файлы. Это долго и требует свободного места: для модели на 125B в README указано около 360 ГБ на диске, а исходные файлы можно удалить после разбиения.
| Модель | Параметры | Видеопамять | Где замерено |
|---|---|---|---|
| Llama 3.1 70B | 70B | 4 ГБ | заявлено в README |
| Qwen3-235B-A22B | 235B | ~3 ГБ | README, версия 3.0 |
| DeepSeek-V3 | 671B | ~12 ГБ | README, версия 3.0 |
| Qwen3.8-27B | 27B | 3,33 ГБ | RTX 3090, конец 2026 |
| Qwen3.8-Flash-Next | 125B MoE | 5,95 ГБ | RTX 4090, конец 2026 |
| Kimi K3 | 2,8T | 3,72 ГБ | RTX 6000 Ada, конец 2026 |
Список поддерживаемых архитектур широкий: Qwen, Llama, DeepSeek, Mistral, Mixtral, Phi, Gemma, ChatGLM, Baichuan, InternLM. Есть отдельный класс для MoE-моделей: у них в память попадают только те эксперты, к которым реально маршрутизируется токен — именно так Kimi K3 на 2,8 трлн параметров укладывается в 3,72 ГБ.
Отдельно стоит обучение: с сентября 2026 AirLLM умеет держать на видеокарте только адаптеры, а замороженные веса стримить послойно. В README заявлено обучение 125B под 6 ГБ на RTX 3060 Ti и 27B примерно под 2 ГБ при длине последовательности 512.
from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained("Qwen/Qwen3-32B")
input_tokens = model.tokenizer(
["Столица Франции?"],
return_tensors="pt",
return_attention_mask=False,
truncation=True,
max_length=MAX_LENGTH,
padding=False)
out = model.generate(
input_tokens["input_ids"].to(model.device),
max_new_tokens=20,
use_cache=True,
return_dict_in_generate=True)
print(model.tokenizer.decode(out.sequences[0]))AirLLM меняет память на время. В обычном запуске все слои уже в видеопамяти, и узкое место — вычисления. Здесь же каждый токен ждёт, пока слои прочитаются с диска, поэтому реальная скорость зависит от накопителя, объёма модели и длины контекста. На одном и том же железе модель на 7B будет отвечать заметно быстрее, чем 70B, хотя обе «влезут» в 4 ГБ.
| Режим | Память на слои | Чтение с диска | Когда выбирать |
|---|---|---|---|
| 4 бита | минимум | в 4 раза меньше | когда важна скорость, а не идеальная точность |
| 8 бит | средне | в 2 раза меньше | компромисс для рабочих задач |
| Полная точность | максимум по диску | всё | когда нужна исходная модель без потерь |
AirLLM — инструмент для экспериментов и обучения. Он хорош, когда нужно посмотреть, как ведёт себя большая модель, снять несколько ответов, собрать демо на ноутбуке или проверить гипотезу на дешёвом железе. Для сервиса с сотнями запросов в минуту он не годится: там нужны либо достаточная видеопамять, либо квантизованная модель в нормальном движке.
Второй сценарий — обучение. Возможность стримить замороженные веса и держать на карте только адаптеры открывает тонкую настройку больших моделей на бытовом железе. Это медленнее, чем на A100, но позволяет обойтись без аренды дорогой машины.