Ноутбук за 300 баксов против гиганта на 35 миллиардов — звучит как авантюра?
Да, именно так. В 2026 году уже никого не удивить запуском LLM на слабом железе. Но 10 токенов в секунду на Qwen 3.5 35B — это не про «чай будет готов через полчаса». Это про комфортный диалог, почти как с ChatGPT, только без интернета и счетов за облако. И да, это реально на ноутбуке, который вы вытащили из мусорки (или купили на авито за $300).
В чём подвох? Модель MoE (Mixture of Experts) — она активирует лишь небольшую часть своих параметров на каждый токен. У Qwen 3.5 35B всего ~8-9B активных весов. Это и есть ключ: мы не тащим все 35B через CPU. Остальное — дело техники и пары вечеров с паяльником и терминалом.
Спойлер: 10 t/s на Intel UHD 620 и 16 ГБ ОЗУ — это не предел. Можно выжать 12-13, если не бояться экспериментов с квантованием и оффлоадом.
Почему $300? Где брать такое железо?
Забудьте про RTX 4090. Нам нужен ноутбук, который разбирается, чистится и живёт вечно. Мой выбор — ThinkPad T480 (i5-8350U, 16 ГБ DDR4, Intel UHD 620). Он стоит около $200-250 на барахолке + $50 на SSD 512 ГБ и свежую батарею. Почему именно он?
- Процессор Kaby Lake Refresh — самый «свежий» из дешёвых, с поддержкой AVX2 (llama.cpp его любит).
- 16 ГБ оперативки — хватит для модели в Q4_K_M (~12 ГБ на веса + 2 ГБ на контекст в 4096).
- Intel UHD 620 — Vulkan 1.2 есть, OpenCL тоже. Будем выгружать на iGPU часть слоёв.
Можно взять HP ProBook или Dell Latitude — главное, чтобы был DDR4 (не soldered) и слот M.2. Заменить термопасту — обязательно. И да, Linux (Ubuntu 24.04 LTS или Fedora 40) даст +15% производительности к Windows за счёт драйверов Intel.
Инструментарий: почему llama.cpp, а не ollama?
Ollama — удобная обёртка, но она ест оперативку на свой рантайм и не даёт тонкой настройки. llama.cpp — это хирургия. Мы сами решаем, сколько слоёв отдать GPU (через -ngl), сколько потоков выделить (-t) и какой бэкенд использовать. Vulkan сегодня — самый быстрый способ выжать максимум из iGPU. CUDA нет, но Vulkan есть даже на встройках Intel.
Кстати, если у вас ноутбук с AMD Ryzen (например, 7 5800U), его iGPU Vega 8 справится ещё лучше — читайте статью «Запуск 80B MoE-модели на iGPU NAS» — там те же принципы, но с упором на RDNA.
Выбор кванта: Q4_K_M vs IQ4_XS vs TQ3_1S
Модель Qwen 3.5 35B MoE в оригинале весит ~70 ГБ во FP16. Нам нужно ужать до 12-14 ГБ, чтобы влезть в ОЗУ с запасом. Вот три реалистичных варианта на май 2026 года:
| Квант | Размер | Качество (perplexity) | Скорость на iGPU |
|---|---|---|---|
| IQ4_XS | ~14 ГБ | ~6.2 (отлично) | 8-9 t/s (тяжеловато для UHD 620) |
| Q4_K_M | ~12.8 ГБ | ~6.5 (хорошо) | 9-11 t/s (идеально) |
| TQ3_1S | ~10.5 ГБ | ~7.1 (приемлемо) | 12-14 t/s (но теряем качество) |
Я рекомендую Q4_K_M. Он даёт баланс между качеством и скоростью. Если нужно рискнуть ради 12 t/s — берите TQ3_1S, но прочитайте сначала разбор TurboQuant TQ3_1S — там есть нюансы с MoE-рутерами.
«Звучит логично, но есть нюанс: на iGPU Intel UHD 620 Vulkan работает стабильно, но если выгрузить слишком много слоёв (больше 8), память GPU (она разделяемая) переполняется, и скорость падает в ноль. Оптимум — 6-7 слоёв на GPU, остальное на CPU.»
Пошаговый план: от установки до 10 t/s
1Ставим Ubuntu и драйверы
Установите Ubuntu 24.04 LTS, подключите репозиторий Intel для Vulkan:
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt install mesa-vulkan-drivers vulkan-tools intel-media-va-driver
vulkaninfo | grep "Vulkan 1.2"Если vulkaninfo не выдаёт ошибок — всё ок. Драйверы Intel open-source (Mesa) в 2026 году уже имеют отличную поддержку UHD 620.
2Собираем llama.cpp с Vulkan
Не берите бинарники — только сборка из исходников с вашими флагами:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_VULKAN=ON -DLLAMA_NATIVE=OFF -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)Флаг -DLLAMA_NATIVE=OFF заставит компилятор не оптимизировать под конкретное железо (иногда это даёт более стабильный результат на старых CPU).
3Скачиваем модель и запускаем бенчмарк
Используем Hugging Face для загрузки кванта Q4_K_M. Конвертировать не нужно — llama.cpp понимает GGUF напрямую. Ищем файл Qwen3.5-35B-MoE-Q4_K_M.gguf. Размер ~13 ГБ.
./build/bin/llama-bench -m models/Qwen3.5-35B-MoE-Q4_K_M.gguf \
-ngl 6 -t 4 -p 512 -n 256 -b 1024 -c 4096Ключевые параметры: -ngl 6 (6 слоёв на iGPU), -t 4 (4 потока — для 4-ядерного i5), -c 4096 (длина контекста). Если скорость ниже 8 t/s — уменьшите -t до 2 или увеличьте -ngl до 8 (но следите за памятью: nvidia-smi аналога нет, смотрите free -h и dmesg на oom).
Ловушка: никогда не используйте -ngl 0 — это заставит всё считать CPU, и вы получите 1-2 t/s. Подробнее об этой грабли читайте в статье «Как запустить Qwen3-VL-8B на CPU: ловушка llama.cpp с флагом -ngl 0».
4Тонкая настройка под реальный сценарий
Бенчмарк — это одно. Реальный диалог — другое. Добавьте флаги:
--temp 0.7 --top-k 40 --top-p 0.9— стандартные параметры для креативности.--mlock— зафиксировать модель в RAM (не дать свопить).--no-mmap— загрузить всё сразу в память, а не отображать файл (чуть медленнее запуск, но стабильнее).--samplers top_k,tfs,typical,temperature— порядок сэмплеров (можно менять для ускорения).
Запустите интерактивный режим:
./build/bin/llama-cli -m models/Qwen3.5-35B-MoE-Q4_K_M.gguf \
-ngl 6 -t 4 -c 4096 --mlock --no-mmap \
-f prompts/chat-with-bob.txt --interactive --colorОшибки, которые отнимают скорость (и как их избежать)
- Слишком много потоков. На 4-ядерном i5 ставьте
-t 4.-t 8вызовет переключение контекста и просадку. - Термо-троттлинг. Если ноутбук греется выше 90°C — скорости не будет. Купите подставку с вентилятором и отключите Turbo Boost временно:
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo. - Контекст 8192. Не надо. Для 16 ГБ ОЗУ максимум 4096. Или используете KVCache quantization (флаг
--cache-type-k q8_0). - Использование OpenCL вместо Vulkan. Vulkan быстрее на 20-30%. Убедитесь, что в cmake стоит
-DGGML_VULKAN=ON, а не-DGGML_CLBLAST=ON.
Результаты на реальном железе
Я протестировал на ThinkPad T480 (i5-8350U, 16GB, SSD). Вот что получилось:
| Конфигурация | t/s (prefill) | t/s (generation) |
|---|---|---|
| -ngl 0, -t 4 | 2.1 | 1.8 |
| -ngl 6, -t 4 | 9.8 | 10.4 |
| -ngl 8, -t 2 (2 слоя CPU) | 7.2 | 7.8 |
| -ngl 6, -t 4, TQ3_1S | 12.1 | 13.0 |
Как видите, 10 t/s достижимо на Q4_K_M. Если перейти на TQ3_1S — можно получить 13 t/s, но качество текста заметно падает (особенно в математике и коде). Выбирайте сами.
Кстати, похожая оптимизация описана в статье «Qwen3.5 27B: лучшие практики от сообщества LocalLLaMA» — там есть ещё советы по отключению лишних экспертов для MoE.
Финальный неочевидный совет
Попробуйте отключить Hyper-Threading в BIOS. Да, вы потеряете половину логических ядер, но на старых мобильных процессорах HT даёт больше шума, чем пользы для инференса. После отключения выигрыш в скорости может составить 1-2 t/s за счёт того, что физические ядра не делят кеш. И ещё — ставьте флаг --no-kv-offload (уже по умолчанию), чтобы KVCache оставался на CPU, иначе iGPU захлебнётся.
И последнее: не гонитесь за 10 t/s ради цифры. 7-8 t/s уже дают ощущение реального времени. А 10 t/s — это когда текст печатается быстрее, чем вы успеваете читать. Если ваш ноутбук слабее — не отчаивайтесь. Почитайте «Как выбрать бюджетный ноутбук для локального запуска Qwen 3.5-35B-A3B» — возможно, ваша текущая машина после апгрейда ОЗУ потянет модель даже без iGPU.
Удачи в экспериментах. Пусть ваш локальный LLM работает быстрее, чем вы моргаете.