Введение
Всем привет! Продолжаю тему предыдущей статьи. В ней сравнивалось железо для локального инференса — Nvidia DGX Spark, Mac Studio M3 Ultra и Strix Halo. И как можно было догадаться, остановился я именно на последнем.
Железо есть, зарядим теперь на нем пару-тройку локальных моделей под управлением проверенного AI-агента.
Claude Сode по подписке с оригинальными LLM - это, конечно, замечательно. Но это стоит денег, да и свой код в чужие дата-центры не всегда правильно отправлять. Плюс за всякое неосторожное движение можно попасть в бан, рискуя потерять все свои наработки.
Одно из решений: Claude Code во free mode с локальными моделями. Anthropic позволяет заменить свои модели на любые с совместимым API. И если раньше это выглядело как эксперимент (локальная модель — что с неё возьмёшь?), то сейчас, с моделями Qwen3.6 результат в целом рабочий.
В этой статье я расскажу, как всё это настроить на GMKtec EV0-X2 — от загрузки моделей до первого запроса к Claude Code.
Постановка задачи и конфигурация
Допустим, вы хотите использовать ИИ-ассистента для помощи в программировании, но по ряду причин не хотите пользоваться облачным API. Например:
платный API Claude Sonnet/Opus это дорого, лимиты выгорают быстро;
анализируете код, которым не хочется делиться;
или вам просто интересно (тоже повод).
Я выбрал связку: llama.cpp server + две GGUF-модели Qwen3.6-MTP + Claude Code в режиме free mode. Всё это работает на Strix Halo (Ryzen AI Max+ 395) с 128 ГБ оперативной памяти. ИИ-ассистент можно взять и другой (Opencode, Kilocode CLI и т.п.). Но мне пока больше всего нравится Claude Code. Качество harness у этого агента из коробки субъективно показалось мне выше, чем у опенсорсных альтернатив.
Железо
Напомним, что такое это самое Strix Halo. Это не конкретный компьютер, а архитектура AMD для высокопроизводительных ноутбуков и мини-ПК. Процессор Ryzen AI Max+ 395 - десктопный чиплет в форм-факторе мобильного решения.
Характеристики GMKtec EV0-X2:
Параметр | Значение |
|---|---|
Процессор | AMD Ryzen AI Max+ 395, 16 ядер / 32 потока, TSMC 4nm, до 5.1 ГГц, 16 МБ L2, 64 МБ L3 (X3D) |
Графика | AMD Radeon 8060S, RDNA 3.5, 40 вычислительных блоков |
Оперативная память | LPDDR5X, 128 ГБ, 8-канальная, 8 ГГц, 217 ГБ/с |
SSD | PCIe 4.0, 2 ТБ |
Сеть | Wi-Fi 7, Bluetooth 5.4, 2.5 Гбит/с Ethernet |
Питание | Стабильная работа при 120 Вт, пик до 140 Вт |
Нейронный ускоритель | XDNA 2, до 126 TOPS |
Для инференса LLM ключевой ограничитель - пропускная способность памяти. У Strix Halo 8-канальная LPDDR5X с 217 ГБ/с - это заметно больше, чем у типичных ноутбуков. А 128 ГБ можно делить между CPU и GPU. Если выделить на GPU 96 Гб (это делается через BIOS, не тратьте время на предустановенную утилиту AMD Software: Adrenalin Edition) то можно загрузить целиком в видеопамять модели размером до ~120B параметров в Q4_K_M.
К тому же это полноценная Windows 11 с обычным софтом. Ставишь на стол и работаешь. Продвинутые пользователи предпочитают накатывать на железку Linux, но инференс вполне прилично работает и из под Винды.
Софт для инференса
Собственно, вариантов под Виндой не много. Я смотрел на три основных:
Ollama - быстро и минималистично, много туториалов по работе, вот официальный сайт. Но мне не зашло. С консолью разбираться было в лом. Тем паче, что есть бесплатный LM Studio с великолепным графическим интерфейсом.
LM Studio помимо всего прочего обладает удобным GUI для скачивания и запуска моделей (повторяюсь, но он и вправду хорош). Очень удобно выбирать и скачивать GGUF-файлы прямо в графической оболочке, точно понимая - какая из компрессий сколько занимает места на диске. Рядом с перечнем моделей в соседнем окошечке - краткое описание модели и ссылка на сайт разработчика.

Также сразу видно, какие из моделей наиболее популярны, насколько они свежие, насколько нравятся пользователям (по количеству лайков). Локальные модели и их доработанные разными умельцами версии выходят довольно часто, есть из чего повыбирать. Поэтому такой интерфейс лично мной оказался весьма востребован.
LM Studio в developer mode позволяет делать множество настроек для оптимизации инференса. Это опции загрузки, типа количества токенов в контексте (для моего железа почти всегда в максимум), распределение загрузки слоев между памятью CPU и GPU (всё в GPU), различные параметры типа flash attention (всегда ON) и пр. Также можно выбирать температуру, top k, top p и прочие навороты. Здесь не будем углубляться. Наша задача запуститься, чтобы работало, остальное подкрутите по мере необходимости.
LM Studio вполне себе рабочий вариант для совместной работы с Claude Code. Он может даже выступать в качестве роутера. То есть можно загрузить сразу обе упомянутые выше модели в память одновременно, Claude code будет обращаться к нужной, а вы будете видеть результат этого обращения прямо в интерфейсе.

llama.cpp server — то, на чём я остановился. Пришлось таки разбираться с консолью, но оно того стоило. Помимо поддержки режима роутера и MTP технологии (собственно, аналогично с LM Studio) есть несколько приятных бонусов:
Скорость генерации при запуске той одной и той же модели напрямую из под llama.cpp примерно на 20...25% выше, чем при запуске из под LM Studio.
Поддержка режима размышления(недоступно в LM Studio из-за неполной реализации API Антропика);
Поддержка загрузки изображений (недоступно в LM Studio по той же причине).
Выбор моделей
В Claude Code используется система Tier-моделей: Opus (самая умная), Sonnet (сбалансированная), Haiku (быстрая и дешёвая). И тут есть возможность сопоставить каждому Tier свою локальную модель — тогда Claude Code будет автоматически выбирать нужную для задачи.
Сегодня (начало июня 2026-ого на дворе) я остановился на такой связке:
Tier Claude Code | Локальная модель | Для чего |
|---|---|---|
Opus | Qwen3.6-27b-MTP | Сложные задачи: multi-file рефакторинг, архитектура, баг-фиксы |
Sonnet | Qwen3.6-35B-A3B-MTP | Стандартные задачи: генерация кода, тесты, рефакторинг |
Haiku | Qwen3.6-35B-A3B-MTP | Используется в основном для файлового поиска, чтобы не забивать контекст основной модели. |
35B-A3B имеет Adaptive Sparsity — это модель, оптимизированная для скорости. Она быстрая (до 60 t/s при пустом контексте) и довольно умная, именно ей лучше всего подходит роль рабочей лошадки. А 27B — более «глубокая», но и при этом значительно более медленная (не более 20 t/s при пустом контексте) модель для случаев, когда нужен максимально точный ответ.
В качестве быстрой модели я также выбираю 35B-A3B из-за скорости. Если бы в семействе qwen3.6 были варианты на 4B или 2B параметров, можно было бы попробовать их, но таковых пока что нет. А qwen3.5-4B работает примерно с той же скоростью, как и qwen3.6-35B-A3B при этом значительно уступая по интеллекту (если верить бенчмаркам самой Qwen). Поэтому решено было не забивать память лишней моделью, а обойтись двумя.
MTP (Multi-Token Prediction) - расширение к обычной autoregressive генерации. В обычном режиме модель генерирует по одному токену за шаг. С MTP модель предсказывает сразу несколько следующих токенов. Это ускоряет генерацию в 1.5-2 раза. В начале мая в llama.cpp добавили поддержку MTP. А в середине мая ревизия llama.cpp с поддержкой MTP появилась и в LM Studio. Для того, чтобы получить максимальную скорость генерации лучше сразу ориентироваться на модели с поддержкой этой технологии. Можно более подробно почитать о ней здесь.
Квантизация моделей
Обе модели скачаны через LM Studio из репозитория unsloth на HuggingFace:
Qwen3.6-35B-A3B-UD-Q6_K_XL.ggufQwen3.6-27B-UD-Q6_K_XL.gguf
Почему именно Q6_K_XL? Тут простая математика:
Квантование | Размер 35B | Размер 27B | Суммарно | Качество |
|---|---|---|---|---|
Q4_K_M | ~20 ГБ | ~16 ГБ | ~38.5 ГБ | Ощутимая потеря качества |
Q6_K_XL | ~30 ГБ | ~24 ГБ | ~74 ГБ | Качество ≈ FP16 |
FP16 | ~70 ГБ | ~54 ГБ | ~132 ГБ | Не влезает в VRAM |
Q6_K_XL — «золотая середина». Качество близко к FP16, а суммарно обе модели, занимая ~74 ГБ, влезают в 128 ГБ с запасом под KV-cache. Q4_K_M — быстрее, но на 27B уже заметна потеря качества в сложных задачах. FP16 — было бы совсем хорошо, но слишком жирно.
Настройка моделей будет дальше по тексту.
Скачивание и настройка llama.cpp server
Свежий релиз llama.cpp можно найти здесь. Если у вас Winows - лучше ставить "Windows x64 (Vulkan)", он работает стабильнее HIP. Если другая ОС - соответствующую сборку под свою ОС. И распаковываете в любую директорию. Например C:\Users\[user_name]\llama.cpp.
Presets-файл
llama.cpp позволяет определить несколько моделей в одном INI-файле. Каждая модель — отдельная секция с абсолютными путями:
[qwen3.6-27b-mtp] model = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-27B-MTP-GGUF\Qwen3.6-27B-UD-Q6_K_XL.gguf mmproj = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-27B-MTP-GGUF\mmproj-F32.gguf n-gpu-layers = 99 n-gpu-layers-draft = 99 parallel = 1 ctx-size = 200000 cache-type-k = q8_0 cache-type-v = q8_0 flash-attn = on load-on-startup = true [qwen3.6-35b-a3b-mtp] model = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-35B-A3B-MTP-GGUF\Qwen3.6-35B-A3B-UD-Q6_K_XL.gguf mmproj = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-35B-A3B-MTP-GGUF\mmproj-F32.gguf n-gpu-layers = 99 n-gpu-layers-draft = 99 parallel = 1 ctx-size = 200000 cache-type-k = q8_0 cache-type-v = q8_0 flash-attn = on load-on-startup = true
Ключевые параметры:
model = C:\Users\[user_name]\.lmstudio\models\unsloth\...- директория, где лежат модели. Если скачивали из под LM Studio и от провайдера unsloth, то лежать должны именно там. Не забудьте поменять[user_name]на актуальное.mmproj- мультимодальный проектор, нужен для того, чтобы модели понимали изображения. Лежит рядом с модлью.n-gpu-layers = 99- все слои на GPU (99 = «все доступные»). На Strix Halo GPU с 128 ГБ ОЗУ достаточно места для размещения всех моделей целиком.n-gpu-layers-draft = 99- draft-модель тоже на GPU. Критично для MTP: без этого будет простой на шине передачи.parallel = 1- один parallel stream на модель. Предотвращает конкуренцию за память между двумя моделями.ctx-size = 200000- контекст 200K токенов. Больше делать смысла нет, Claude Code будет работать только с такой длиной контекста.cache-type-k = q8_0,cache-type-v = q8_0- KV-cache в q8_0 квантизации. FP16, который стоит по умолчанию, съел бы лишние ~10 ГБ.flash-attn = on- flash attention для скорости.load-on-startup = true- модель не выгружается из памяти после запроса. Первый запуск дольше (минут пять), но последующие запросы - мгновенно.
Команда запуска
llama-server.exe ^ --models-preset presets_claude.ini ^ --host 127.0.0.1 --port 1234 ^ -ngl 99 ^ --spec-type draft-mtp --spec-draft-n-max 3 ^ --timeout 36000
Здесь всё предельно просто. -ngl 99 — глобальный оффлоад всех слоёв на GPU. --spec-type draft-mtp --spec-draft-n-max 3 — MTP speculation: модель предсказывает до трёх токенов за один шаг. --timeout 36000 — 10 часов бездействия, модели не выгружаются. --host 127.0.0.1 --port 1234 — такой же адрес и порт, как и у LM Studio. Сделал специально, чтобы при необходимости можно было запустить Claude Code совместно с LM Studio (на всякий случай).
Обёртка в батник
Всё это можно поместить в llama_for_claude.bat — он автоматически генерирует presets-файл при каждом запуске и стартует сервер. Не требует Python, виртуальных окружений или Docker. В файл добавлены настройки самих моделей (температура и пр. в соответствии рекомендациями Qwen).
run_llama_for_claude.bat
@echo off setlocal enabledelayedexpansion :: Переход в папку с llama.cpp cd /d "C:\Users\[user_name]\llama.cpp" || ( echo Ошибка: папка не найдена & pause & exit /b 1 ) echo ============================================================ echo Starting llama-server for Claude Code echo Port: 1234 echo Models will stay in memory echo Request logs (generation speed) will appear below echo ============================================================ echo. :: Создаём временный файл пресетов с абсолютными путями к моделям set PRESETS_FILE=presets_claude.ini ( echo [qwen3.6-27b-mtp] echo model = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-27B-MTP-GGUF\Qwen3.6-27B-UD-Q6_K_XL.gguf echo mmproj = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-27B-MTP-GGUF\mmproj-F32.gguf echo n-gpu-layers = 99 echo n-gpu-layers-draft = 99 echo parallel = 1 echo ctx-size = 200000 echo cache-type-k = q8_0 echo cache-type-v = q8_0 echo flash-attn = on echo temp = 0.6 echo top-p = 0.95 echo top-k = 20 echo presence-penalty = 1.1 echo min-p = 0 echo load-on-startup = true echo. echo [qwen3.6-35b-a3b-mtp] echo model = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-35B-A3B-MTP-GGUF\Qwen3.6-35B-A3B-UD-Q6_K_XL.gguf echo mmproj = C:\Users\[user_name]\.lmstudio\models\unsloth\Qwen3.6-35B-A3B-MTP-GGUF\mmproj-F32.gguf echo n-gpu-layers = 99 echo n-gpu-layers-draft = 99 echo parallel = 1 echo ctx-size = 200000 echo cache-type-k = q8_0 echo cache-type-v = q8_0 echo flash-attn = on echo temp = 0.6 echo top-p = 0.95 echo top-k = 20 echo presence-penalty = 1.1 echo min-p = 0 echo load-on-startup = true ) > "%PRESETS_FILE%" echo [INFO] Preset file created: %PRESETS_FILE% echo. :: Запуск сервера с MTP, постоянным удержанием моделей и подробными логами llama-server.exe ^ --models-preset "%PRESETS_FILE%" ^ --host 127.0.0.1 --port 1234 ^ -ngl 99 ^ --spec-type draft-mtp --spec-draft-n-max 2 ^ --timeout 36000 :: Если сервер завершился с ошибкой – показать сообщение echo. echo Сервер остановлен. Нажмите любую клавишу для выхода... pause > nul
Запускаем bat файл, ждем с минуту загрузки обоих моделей, и всё — сервер работает. Проверить можно так: curl http://127.0.0.1:1234/v1/models — должен вернуть список всех трёх моделей.

Установка Claude Code
Установка под Windows и все остальные ОС описана в официальной документации Антропика.
Настройка Claude Code
Дальше вC:\Users\[user_name]\.claude\settings.json прописываем сопоставление Tier → модель, указываем адрес сервера и ещё ряд интересных параметров:
{ "env": { "ANTHROPIC_BASE_URL": "http://127.0.0.1:1234", "ANTHROPIC_AUTH_TOKEN": "sk-any-key", "ANTHROPIC_API_KEY": "sk-any-key", "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen3.6-27b-mtp", "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.6-35b-a3b-mtp", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3.6-35b-a3b-mtp", "CLAUDE_CODE_ATTRIBUTION_HEADER": "0", "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "262144", "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "95", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "0", "CLAUDE_CODE_ENABLE_TELEMETRY": "0", "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32768", "CLAUDE_STREAM_IDLE_TIMEOUT_MS": "36000000", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } }
Вот что они означают:
Переменная | Значение | Зачем |
|---|---|---|
| Указывает на наш llama-server. С такой настройкой можно будет запускать claude code как с llama.cpp, так и с LM Studio. | |
|
| Любое непустое значение, если не поставить, Claude Code будет требовать аутентификации. |
|
| Любое непустое значение |
|
| Сложные задачи → умная модель |
|
| Стандартные задачи → основная модель |
|
| Тривиальные → быстрая модель (в нашем случае та же основная) |
|
| Максимум токенов в ответе модели. |
|
| 262K контекста - пробовал увеличить контекст до поддерживаемого моделями, но это не сработало. |
|
| Компрессия только когда контекст заполнен на 95%. Вроде бы оно тоже не особо работает ( |
|
| 10 часов ожидания генерации (на всякий случай). |
|
| Включить мышление, в llama.cpp оно работает! |
|
| Полный оффлайн, без сетевых запросов |
|
| Без телеметрии |
|
| Без колонтитулов с указанием ИИ. Если не указать - Claude Code будет жутко тормозить. |
Запуск Claude Code
Сначала запускаете llama.cpp server с помощью bat файла, приведенного выше.
Потом открываете терминал в любой своей рабочей директории и вбиваете claude. В терминале запустится ваш полностью локальный Claude Code с моделями Qwen на борту.

Бенчмарки
Тестировал на GMKtec EV0-X2 (Ryzen AI Max+ 395, 128 ГБ RAM). llama.cpp server, GPU offload, MTP speculation включён.
Скорость загрузки промпта и генерации (токенов/сек):
Модель | Квантование | Input, t/s | Output, t/s |
|---|---|---|---|
Qwen3.6-35B-A3B-MTP | Q6_K_XL | ~750-300 | ~55-35 |
Qwen3.6-27B-MTP | Q6_K_XL | ~175-100 | ~15-10 |
Приведен диапазон значений. Максимальные значения наблюдаются сразу после запуска Clude Code (сразу после начала диалога, контекст что-то около 16...20 килотокенов). Далее по мере заполнения контекста значения будут проседать. Для получения максимальной точности лучше не переваливать за 100...120 тыс. токенов, чтобы экономить контекст используйте субагентов (они запускаются со своим контекстным окном).
Заключение
Вот собственно и всё. Запускаете, работаете в Claude Code с локальными моделями, жжёте токены как не в себя и в ус не дуете. Модели, конечно, поглупее по сравнению с оригинальными Антропиковскими, но зато абсолютно бесплатно!