397 миллиардов параметров против 24 гигабайт VRAM: кто кого?
Помните тот момент, когда запустить 13B-модель на одной видеокарте казалось прорывом? Сегодня это детский лепет. Qwen3.5-397B-A17B — это не просто большая модель. Это чудовище с 397 миллиардами параметров, которое по заявлениям Alibaba Cloud обгоняет GPT-4-1106 в большинстве бенчмарков. И я решил запустить его на домашнем железе. Просто чтобы посмотреть, что произойдет.
Важное уточнение на февраль 2026: Qwen3.5-397B-A17B — это самая новая версия в линейке гигантских моделей от Alibaba. A17B в названии означает улучшенную архитектуру с лучшей поддержкой смешанного экспертного подхода (MoE). Если вы видите старые статьи про Qwen3.5-397B без этого суффикса — они уже неактуальны.
Железо: где искать компромиссы
Мой стенд выглядит так, будто я готовлюсь к майнингу в 2021:
- Процессор: AMD EPYC 7402p (24 ядра, 48 потоков)
- Оперативная память: 256 GB DDR4-3200
- Видеокарты: 2x NVIDIA GeForce RTX 3090 Ti (по 24 GB GDDR6X каждая)
- Хранение: 2x NVMe SSD 2TB в RAID0
Кажется, что 48 гигабайт VRAM — это много. До тех пор, пока не пытаешься загрузить туда 397 миллиардов параметров. Даже в 4-битном квантовании модель занимает около 200 GB. Математика простая: либо мы используем CPU для части вычислений, либо забываем про эту затею.
Подготовка: не пытайтесь повторить это на Windows
Первое правило запуска гигантских моделей: используйте Linux. Второе правило: используйте Linux. Windows с ее управлением памятью просто не справится. Я использовал Ubuntu 24.04 LTS с ядром 6.8.
1 Скачиваем модель и llama.cpp
На февраль 2026 актуальная версия llama.cpp — 4.2.1 с полной поддержкой Qwen3.5. Более старые версии могут не работать с A17B архитектурой.
# Клонируем репозиторий с поддержкой CUDA
git clone --recursive https://github.com/ggerganov/llama.cpp
cd llama.cpp
make clean && LLAMA_CUDA=1 make -j$(nproc)
Модель скачиваем в GGUF формате. На февраль 2026 самые оптимальные варианты:
- Qwen3.5-397B-A17B-Q4_K_M.gguf — баланс между качеством и размером (около 200 GB)
- Qwen3.5-397B-A17B-Q3_K_M.gguf — для тех, у кого совсем мало памяти (около 150 GB)
Важно: не путайте Qwen3.5-397B-A17B с обычным Qwen3.5-397B. Архитектура A17B использует улучшенный MoE (Mixture of Experts), который требует специальной поддержки в llama.cpp версии 4.1+. Старые версии просто упадут с ошибкой.
2 Настраиваем распределение слоев
Вот где начинается магия. Параметр -ngl (number of GPU layers) определяет, сколько слоев модели будут загружены в VRAM. Остальные уйдут в оперативную память и будут вычисляться на CPU.
Сначала проверяем, сколько слоев в модели:
./llama-cli -m Qwen3.5-397B-A17B-Q4_K_M.gguf --no-mmap --no-mlock -p "test" -n 1 | grep "layers"
В моем случае модель имеет 160 слоев. Теперь экспериментируем:
# Вариант 1: Максимально на GPU
./llama-cli -m Qwen3.5-397B-A17B-Q4_K_M.gguf -ngl 160 -t 48 -c 4096 --temp 0.7 --repeat-penalty 1.1 -p "Расскажи о квантовых вычислениях"
# Вариант 2: Компромиссный
./llama-cli -m Qwen3.5-397B-A17B-Q4_K_M.gguf -ngl 80 -t 96 -c 4096 --temp 0.7 --repeat-penalty 1.1
# Вариант 3: Минимум на GPU (для тестирования)
./llama-cli -m Qwen3.5-397B-A17B-Q4_K_M.gguf -ngl 40 -t 144 -c 2048
Результаты: медленно, но работает
Запускаю llama-bench для объективных измерений:
./llama-bench -m Qwen3.5-397B-A17B-Q4_K_M.gguf -ngl 80 -t 96 -c 512
| Конфигурация | Слоев на GPU | Токенов/сек | Использование VRAM | Загрузка CPU |
|---|---|---|---|---|
| Максимальная | 160 (все) | 0.8-1.2 | 47.8/48 GB | 15-20% |
| Оптимальная | 80 | 0.6-0.9 | 38.2/48 GB | 60-80% |
| Минимальная | 40 | 0.3-0.5 | 24.1/48 GB | 90-100% |
Да, вы не ослышались. 0.8-1.2 токена в секунду. Это не опечатка. Для сравнения: Qwen3-235B на том же железе выдает 4-5 токенов в секунду.
cpu-moe: секретное оружие для гигантских моделей
С февраля 2025 в llama.cpp появился флаг --cpu-moe, который меняет правила игры для MoE-моделей. Вместо того чтобы загружать всех экспертов в память, система динамически подгружает только нужных экспертов для каждого токена.
./llama-cli -m Qwen3.5-397B-A17B-Q4_K_M.gguf -ngl 60 --cpu-moe -t 96 -c 4096
Что это дает на практике:
- Потребление VRAM снижается на 30-40%
- Скорость падает всего на 10-15% (благодаря кэшированию экспертов)
- Можно увеличить контекстное окно с 4K до 8K токенов
Внимание: --cpu-moe работает только с моделями, использующими архитектуру Mixture of Experts. Для обычных плотных моделей этот флаг не даст эффекта. Также требуется llama.cpp версии 4.1+.
Практическое применение: когда это вообще нужно?
Справедливый вопрос: зачем терпеть 1 токен в секунду? Ответ: для специфических задач, где качество ответа критически важно.
Я протестировал модель на:
- Написании сложного технического кода с редкими библиотеками
- Анализе научных статей с последующим генерированием выводов
- Многоэтапном логическом reasoning (цепочки рассуждений)
Результат: Qwen3.5-397B-A17B справляется с задачами, которые не по зубам даже 70B-моделям. Разница в качестве заметна сразу. Это как сравнивать школьный калькулятор и Mathematica.
Ошибки, которые гарантированно сломают ваш запуск
За неделю экспериментов я наступил на все возможные грабли:
1. Недостаточный swap
Linux убивает процесс, когда заканчивается память. Решение:
# Создаем swap файл 128GB
sudo fallocate -l 128G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
2. Неправильные флаги mmap
Для моделей больше 100GB обязательно использовать:
--no-mmap --no-mlock
Иначе система будет пытаться загрузить всю модель в RAM, что приведет к падению.
3. Забытый флаг --tensor-split
Для двух видеокарт нужно явно указать распределение:
--tensor-split 24,24
Первое число — память первой карты, второе — второй. Можно настроить баланс, например 30,18 если одна карта быстрее.
Стоит ли игра свеч?
Честно? Для 99% пользователей — нет. Qwen3.5-72B даст 90% качества при в 20 раз большей скорости. Но...
Есть магический момент, когда ты задаешь вопрос, на который не ответила ни одна модель поменьше, а эта — отвечает. И отвечает так, что понимаешь: вот оно, настоящее ИИ. Не чат-бот, а система, способная на сложные абстракции.
Мой вердикт: запускать Qwen3.5-397B-A17B на домашнем железе в 2026 году — это как гонять на Ferrari по пробкам. Непрактично, дорого, медленно. Но черт возьми, как же это круто.
Если решитесь повторить — начинайте с Qwen3.5 в llama.cpp, где разобраны основы работы с этими моделями. А когда освоитесь — возвращайтесь к гиганту. Он подождет. Как и его ответы.