- BrainTools - https://www.braintools.ru -

Запускаем Qwen3.6 35B-A3B + opencode локально на RTX 4070 12GB — AI-ассистент для разработки без облака

Я давно слежу за развитием локальных 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)

40 (макс)

Все слои пытаемся отдать GPU

Number of layers for MoE onto CPU

40

MoE-веса остаются в RAM

Flash Attention

Включён

Экономия памяти [1] под контекст

Размер пакета оценки

8192

Быстрая обработка контекста

Размер пула потоков ЦПУ

10

Чуть меньше макс для стабильности

Длина контекста

65 536

Баланс качество/память

Важный момент про ncmoe: логика [2] немного контринтуитивна. Сначала параметром ngl=40 отдаём все слои на GPU, потом параметром ncmoe=40 говорим “но MoE-веса вернуть на CPU”. В итоге на GPU остаются только лёгкие тензоры внимания [3] (~6GB VRAM), а тяжёлые MoE-веса лежат в RAM.

До применения -cmoe модель требовала все 12GB VRAM и не влезала. После — занимает 6.2GB VRAM и комфортно работает.


Реальные замеры скорости

Из логов LM Studio при генерации:

eval time = 8228 ms / 347 tokens → 42 tokens/sec (TG)

42 токена/сек при генерации — для 35B модели отличный результат, текст появляется плавно без заметных пауз.

Скорость обработки контекста (PP) сильно зависит от размера запроса — от нескольких секунд на короткие вопросы до минуты при первом запросе с полным анализом кодовой базы. В обычном режиме работы (вопрос-ответ, правка кода) задержка практически не ощущается.

Чем дольше работаете в одной сессии — тем быстрее модель отвечает на новые сообщения, так как KV-кэш переиспользует уже обработанный контекст.


Подключение к opencode в WSL

Модель поднимает OpenAI-совместимый API на порту 1234. IP адрес хоста видно прямо в интерфейсе LM Studio в разделе Developer — поле “Reachable at” (на скриншоте: http://172.18.0.1:1234 [4]). Именно этот адрес использую для подключения из WSL.

IP адрес хоста

IP адрес хоста
# Проверить что модель отвечает
curl http://172.18.0.1:1234/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "qwen/qwen3.6-35b-a3b",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

В ответе видно reasoning_content — модель думает вслух перед каждым ответом. Для простого “Hello!” она потратила 243 reasoning-токена на анализ приветствия. Для серьёзных задач это большой плюс.

В opencode.json прописываю:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "lmstudio": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Studio (local)",
      "options": {
        "baseURL": "http://172.18.0.1:1234/v1"
      },
      "models": {
        "qwen/qwen3.6-35b-a3b": {
          "name": "Qwen3.6 35B a3b (local)"
        }
      }
    }
  }
}

Как модель работает с реальным проектом

Тестировал на своём проекте online-course-platform — микросервисная архитектура на FastAPI + React.

Анализ кодовой базы

Попросил: “Какие улучшения для проекта можешь предложить?”

Модель запустила explore-агент, сделала 173 вызова инструментов, реально прочитала весь код и выдала структурированный список из 23 улучшений с разбивкой по приоритетам

Создание GitHub Issues

Попросил создать детальные issues для найденных проблем. Модель:

  1. Изучила существующие паттерны тестов в проекте (auth, course)

  2. Написала детальные issues с конкретными названиями тестов, структурой файлов, критериями готовности

  3. Создала их через gh CLI прямо в репозиторий

Пример issue для тестирования progress-сервиса содержал: структуру тестов, 21 конкретный тест-кейс с ожидаемыми HTTP-статусами, конфигурацию fixtures по аналогии с существующими сервисами. Не абстрактное “написать тесты”, а конкретный план — можно посмотреть живой пример [5].


Качество ответов

По бенчмаркам Qwen3.6 35B-A3B показывает сильные результаты среди MoE моделей — SWE-bench Verified 73.4%, Terminal-Bench 2.0 51.5%, GPQA Diamond 86.0%. Особенно выделяется в agentic coding задачах, обгоняя Dense модели значительно большего размера.

На практике это подтверждается. Модель:

  • Правильно понимает контекст больших кодовых баз

  • Генерирует рабочий код без галлюцинаций несуществующих API

  • Сама исправляет ошибки [6] когда 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

Ссылки:

Автор: rAnto

Источник [10]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/29188

URLs in this post:

[1] памяти: http://www.braintools.ru/article/4140

[2] логика: http://www.braintools.ru/article/7640

[3] внимания: http://www.braintools.ru/article/7595

[4] http://172.18.0.1:1234: http://172.18.0.1:1234

[5] можно посмотреть живой пример: https://github.com/rAnto0/online-course-platform/issues/25

[6] ошибки: http://www.braintools.ru/article/4192

[7] qwen/qwen3.6-35b-a3b на Hugging Face: https://huggingface.co/qwen/qwen3.6-35b-a3b

[8] lmstudio.ai: http://lmstudio.ai

[9] github.com/sst/opencode: https://github.com/sst/opencode

[10] Источник: https://habr.com/ru/articles/1026482/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1026482

www.BrainTools.ru

Rambler's Top100