Я давно слежу за развитием локальных LLM, но всегда упирался в одно и то же — либо модель маленькая и качество не устраивает, либо большая и не влезает в видеопамять. Всё изменилось когда я наткнулся на статью про MoE-модели и параметр-cmoeв llama.cpp.
Расскажу как я запустил Qwen3.6 35B-A3B на RTX 4070 12GB с 32GB RAM, настроил его как AI-ассистент для реального проекта в opencode, и почему теперь эта модель у меня работает постоянно.
Железо и ожидания
Моя конфигурация:
- GPU: RTX 4070 12GB VRAM
- RAM: 32GB DDR4
- CPU: 12 физических ядер
- OS: Windows 11 + WSL2 (Ubuntu)
Когда я впервые прочитал про Qwen3.6 35B-A3B, я был скептически настроен — 35 миллиардов параметров при 32GB RAM звучит как "не влезет". Но MoE архитектура меняет правила игры.
Почему MoE — это другая история
Обычные (Dense) модели активируют все параметры при генерации каждого токена. MoE (Mixture of Experts) модели устроены иначе: из всех "экспертов" (мини-подсетей) на каждом шаге активируется только небольшая их часть.
Qwen3.6 35B-A3B имеет256 экспертовна каждом слое, но активирует только8 routed + 1 shared— то есть реально считает примерно 3 миллиарда параметров на каждый токен, хотя общий вес модели 35B.
Это означает:
- Скорость генерации как у маленькой 3B модели
- Качество значительно выше за счёт специализации экспертов
- Квант Q4_K_M весит всего22GB— влезает в 32GB RAM
Настройка в LM Studio
Для запуска выбрал LM Studio — удобный GUI поверх llama.cpp. Скачал модельqwen/qwen3.6-35b-a3bквант Q4_K_M (22GB).
Ключевые настройки которые я подобрал:
Передача на GPU (ngl)
Все слои пытаемся отдать GPU
Number of layers for MoE onto CPU
MoE-веса остаются в RAM
Flash Attention
Экономия памяти под контекст
Размер пакета оценки
Быстрая обработка контекста
Размер пула потоков ЦПУ
Чуть меньше макс для стабильности
Длина контекста
Баланс качество/память
Важный момент про ncmoe: логика немного контринтуитивна. Сначала параметромngl=40отдаём все слои на GPU, потом параметромncmoe=40говорим "но MoE-веса вернуть на CPU". В итоге на GPU остаются только лёгкие тензоры внимания (~6GB VRAM), а тяжёлые MoE-веса лежат в RAM.
До применения-cmoeмодель требовала все 12GB VRAM и не влезала. После — занимает6.2GB VRAMи комфортно работает.
Реальные замеры скорости
Из логов LM Studio при генерации:
42 токена/сек при генерации — для 35B модели отличный результат, текст появляется плавно без заметных пауз.
Скорость обработки контекста (PP) сильно зависит от размера запроса — от нескольких секунд на короткие вопросы до минуты при первом запросе с полным анализом кодовой базы. В обычном режиме работы (вопрос-ответ, правка кода) задержка практически не ощущается.
Чем дольше работаете в одной сессии — тем быстрее модель отвечает на новые сообщения, так как KV-кэш переиспользует уже обработанный контекст.
Подключение к opencode в WSL
Модель поднимает OpenAI-совместимый API на порту 1234. IP адрес хоста видно прямо в интерфейсе LM Studio в разделе Developer — поле"Reachable at"(на скриншоте:http://172.18.0.1:1234). Именно этот адрес использую для подключения из WSL.
В ответе видноreasoning_content— модель думает вслух перед каждым ответом. Для простого "Hello!" она потратила 243 reasoning-токена на анализ приветствия. Для серьёзных задач это большой плюс.
В opencode.json прописываю:
Как модель работает с реальным проектом
Тестировал на своём проектеonline-course-platform— микросервисная архитектура на FastAPI + React.
Анализ кодовой базы
Попросил:"Какие улучшения для проекта можешь предложить?"
Модель запустила explore-агент, сделала173 вызова инструментов, реально прочитала весь код и выдала структурированный список из 23 улучшений с разбивкой по приоритетам
Создание GitHub Issues
Попросил создать детальные issues для найденных проблем. Модель:
- Изучила существующие паттерны тестов в проекте (auth, course)
- Написала детальные issues с конкретными названиями тестов, структурой файлов, критериями готовности
- Создала их черезgh CLIпрямо в репозиторий
Пример issue для тестирования progress-сервиса содержал: структуру тестов, 21 конкретный тест-кейс с ожидаемыми HTTP-статусами, конфигурацию fixtures по аналогии с существующими сервисами. Не абстрактное "написать тесты", а конкретный план —можно посмотреть живой пример.
Качество ответов
По бенчмаркам Qwen3.6 35B-A3B показывает сильные результаты среди MoE моделей — SWE-bench Verified 73.4%, Terminal-Bench 2.0 51.5%, GPQA Diamond 86.0%. Особенно выделяется в agentic coding задачах, обгоняя Dense модели значительно большего размера.
На практике это подтверждается. Модель:
- Правильно понимает контекст больших кодовых баз
- Генерирует рабочий код без галлюцинаций несуществующих API
- Сама исправляет ошибки когда bash возвращает ошибку
- Хорошо работает с русским языком
Параметры температуры
Официальная документация Qwen рекомендует для coding задач:temperature=0.6, top_p=0.95. Это совпало с дефолтом LM Studio и на практике работает хорошо — ответы детерминированные, но не механические.
Qwen3.6 35B-A3B на RTX 4070 + 32GB RAM — это работающий вариант для разработчика который хочет мощный локальный AI-ассистент без облачных расходов и без отправки кода на внешние серверы.
MoE архитектура позволила запустить то, что раньше требовало минимум 80GB RAM. 42 токена/сек — это комфортная скорость для работы в реальном времени.
Если у вас похожее железо и вы ещё не пробовали — рекомендую. Особенно если работаете с кодом и хотите агентский режим через opencode или аналоги.
Железо для воспроизведения:
- GPU от 8GB VRAM (проверено на RTX 4070 12GB)
- RAM от 32GB (модель займёт ~22GB)
- LM Studio последней версии
- llama.cpp для более тонкой настройки через CLI
- Модель:qwen/qwen3.6-35b-a3b на Hugging Face
- LM Studio:lmstudio.ai
- opencode:github.com/sst/opencode