В прошлой статье было показано, что обычный MacBook Pro M2 16GB может с оговорками решать инфраструктурные проблемы используя локальную LLM. В этой статье будут показаны результаты решения более сложных инфраструктурных задач на более тяжеловесных моделях.
Если лень читать и листать до конца, то вот ключевые результаты:
Qwen3.6-27B не справился даже с лёгкой задачей - проигрывает как в качестве так и во времени решения
Qwen3.6-27B, хоть и плохо, но смог завершить эксперимент, в отличие от Gemma4-31-B
На простой задаче MoE модели Qwen3.6-35B-A3B и Gemma работают одинаково хорошо, однако Gemma тратит больше токенов и требовательнее к памяти.
На средней задаче MoE Qwen3.6 показал себя значительно лучше Gemma.
В то время как на тяжелой задаче качество решения Qwen значительно упало, Gemma полностью провалилась.
Качество решения тяжелой задачи с помощью рассматриваемых MoE моделей можно улучшить до идеала если точно описывать проблему.
Мой личный выбор - Qwen3.6-35-A3B для проблем, которые сформулированы общими словами, Gemma4-26B-A4B - для чётко описанных проблем. Далее обо всём этом подробнее.
Содержание
1. Состав испытательного стенда
MacBook Pro M4 - 14 CPU (10+4), 20 GPU, 48GB Unified RAM (далее MB48)
LMStudio 0.4.6+1
LMStudio MLX Runtime 1.6.0
Модели:
2. Инфраструктурные задачи
На схеме каждого эксперимента/задачи дан список проблем, которые модель должна решить для выполнения испытания. За устранение каждой проблемы выставляется оценка от 0 до 2, где:
0 (красный) - “не исправлено”
1 (оранжевый) - “исправлено, но можно было бы правильнее”
2 (зеленый) - “исправлено”.
Состав Python+FastAPI приложения
main.py
import os from fastapi import FastAPI import internet app = FastAPI() @app.get("/info") def get_info(): try: internet_ok = internet.check() except requests.exceptions.RequestExceptio: return {"something went wrong"} return {"system_name": os.uname().sysname, "internet_ok": internet_ok}
internet.py
# ----- internet ----- def check(): import requests response = requests.get("https://www.google.com", timeout=5) return response.status_code == 200
Простая задача и промпт для неё

Обычный/regular промпт
python приложение по адресу http://10.12.2.134:8000/info возвращает 500. раньше возвращалось {"system_name":"Linux","internet_ok":true}. исправь
Задача средней сложности и промпт для неё

Обычный/regular промпт
python приложение по адресу http://10.12.2.134/get-info (порт 80) сейчас недоступно. раньше возвращалось {"system_name":"Linux","internet_ok":true}. исправь
Сложная задача и промпты для неё

Обычный/regular промпт
python приложение отвечавшее по адресу http://10.12.2.185/get-info (порт 80) сейчас недоступно. раньше возвращалось {"system_name":"Linux","internet_ok":true}. исправь
Подробный/precise промпт
Исправить окружение. Сейчас fastapi-приложение доступное по адресу http://10.12.2.134:8000/info
В нём (на сервере приложений) исправь:
Опечатка в классе исключения в except
Отсутствующий import requests
Отсутствующий requests в venv
На хосте nginx:
Установи nginx
Сделай конфиг чтобы запрос http://10.12.2.185:80/get-info попадал в http://10.12.2.134:8000/info
В результате исправлений должен быть получен ответ {"system_name":"Linux","internet_ok":true} на запрос http://10.12.2.185/get-info
Дополнительно, в таблицах качественного сравнения присутствуют критерии:
“Следовал системному промпту”
“Не врал в саммари”: в конце диагностики и исправления агент выдаёт саммари от модели - “что было сделано” - иногда такие заявления расходились с действительностью. некоторые вообще симулировали цикл “выполнить команду - получить вывод команды для анализа”
“Убедился в проблеме”: прежде чем браться за устранение проблем, проверить - есть ли проблема на самом деле.
Они тоже оцениваются по шкале 0..2.
3. Эксперименты
Для каждой не выбывшей из “соревнования” модели были проведены следующие эксперименты:
До 2х экспериментов на моделях Dense и некоторых MoE.
Минимум 5 запусков/экспериментов каждой продолжившей участие в экспериментах модели МоЕ на задачах simple и medium сложности с regular промптом.
Минимум 3 запусков/экспериментов каждой продолжившей участие в экспериментах модели МоЕ на задаче difficult сложности с regular промптом.
3.1. Dense-Dense; лёгкая задача (simple); обычный промпт (regular)

Qwen3.6-27B - вместо исправлений проблемных мест написал свой код, то есть замаскировал проблему. Запуск повторных экспериментов не был целесообразным из-за чрезмерной траты времени на решение простой задачи - 33 минуты 15 секунд, 97.000 токенов. Проведение экспериментов на medium и difficult задачах также нецелесообразно.
Gemma4-31B - крэш системы/windowserver на третьей итерации агентского цикла. увеличение sysctl iogpu.wired_limit_mb с 75%(36GB) до 85%(41GB) позволило выполнить дополнительные 2 цикла, но не спасло от крэша WindowServer
Победителя в свете таких результатов выявить не получилось.
Nemotron3-nano-30B-A3B - 1) ленивый, не удаётся заставить фиксить, только диагностика; 2) притворяется что получил ответ от агента.
Magistral-Small-24B - использует случайные имена сервисов, диагностика невозможна. Единственная модель, которая первым шагом диагностики стала смотреть что проблема есть
По итогам этого эксперимента к дальнейшим экспериментам допускаются только 2 MoE модели: Qwen3.6-35B-A3B и Gemma4-26-A4B
3.2. Dense-MoE; простая задача (simple); обычный промпт (regular)
По итогам эксперимента Dense-Dense-Здесь привожу количественные данные по одной Dense модели - Qwen3.6-27B - в сравнении с Qwen3.6-35-A3B.
Качественная оценка Dense была дана выше. Здесь только количественное сравнение динамики memory footprint в зависимости от количества токенов на одном эксперименте.



3.3. MoE-MoE; лёгкая задача (simple); обычный промпт (regular)
Ниже дано сравнение потраченных токенов, времени работы и footprint памяти после выполнения задачи:



Поскольку в виде графиков сравнивать качественные результаты неудобно, далее буду приводить данные в табличной форме, добавив к ним значимые количественные данные для каждого из 5 экспериментов

Комментарии:
Gemma4-26B-A4B - эксперимент 5 - запуск сервиса. запустил - но новый инстанс с новым портом.
3.4. MoE-MoE; средняя задача (medium); обычный промпт (regular)

Комментарии:
- Qwen3.6-35B-A3B - Эксперименты 1-4 - порт исправил, но с помощью root пользователя, а не nginx/iptables
- Gemma4-26B-A4B - Эксперимент 3 - вместо исправления опечатки использовал другой класс исключения
- Gemma4-26B-A4B - Эксперимент 5 - порт исправил, но с помощью root пользователя, а не nginx/iptables
3.5. MoE-MoE; сложная задача (difficult); обычный промпт (regular)

Комментарии:
Gemma4-26B-A4B - Эксперименты 1-2 - Потрачено более 100.000 токенов на поиск приложения на неверном сервере - эксперимент прерван
3.6. MoE-MoE; сложная задача (difficult); подробный промпт (precise)
Qwen regular vs Qwen precise

Gemma regular vs Gemma precise

Gemma precise vs Qwen precise

4. А как же обычный MacBook с 16GB?
Отдельно от основного хода эксперимента провел несколько тестов difficult-precise с моделью Qwen3.5-9B-4b из предыдущего поста - качественные результаты даёт также в половине случаев
Комментарии (12)

jojozuka
19.05.2026 20:00неожиданно, что разряжённые эксперты побили плотные модели. Разряжённые эксперты это, вроде, компромисс, когда не хватает VRAM. Вроде, я такие объяснения читал.

breakingtesting Автор
19.05.2026 20:00Возможно, если провести 50/100/1000 экспериментов - результаты могут оказаться схожими. Однако в силу медлительности плотной модели в этих условиях - эксперименты с ней прекратил.

SabMakc
19.05.2026 20:00Gemma4-26B-A4B - для чётко описанных проблем
Совсем не понял, за счет чего такой выбор был сделан. Судя по тестам, Gemma4 везде справилась хуже, медленнее работала и потратила больше токенов. Разве что памяти должна занимать меньше, но больше на контексте съест по идее.
P.S. Gemma4 - отличная модель, но не для агентских сценариев.

breakingtesting Автор
19.05.2026 20:00За счет чего такой выбор? Если обратите внимание, то тут
https://habr.com/ru/articles/1037082/#moemoedifficultprecise
Есть сравнение gemma с подробным промптом с qwen с подробным промптом. По качеству - одинаково, по скорости gemma лучше в этих условиях

SabMakc
19.05.2026 20:00Qwen обычно менее многословен относительно Gemma4 (правда не скажу, что большая разница). А вот к квантам от unsloth у меня есть вопросы (особенно к Qwen3.6-35B-A3B). Если получится выделить время, то попробую повторить эксперимент локально.
P.S. да, я уже после комментария обратил внимание на токены именно в этом тесте. Gemma4 быстрее в этом случае, да. Но обычно если есть настолько подобная инструкция, то задача уже решена и LLM не нужна ) Да и нет “запаса” на возможные неожиданности )

breakingtesting Автор
19.05.2026 20:00обычно если есть настолько подобная инструкция, то задача уже решена и LLM не нужна ) Да и нет “запаса” на возможные неожиданности )
Согласен

frolser
19.05.2026 20:00А потраченные токены, это и входящие и сгенерированные вместе взятые?

breakingtesting Автор
19.05.2026 20:00Да, но по каждому в логах есть разделение на входящие и исходящие

SabMakc
19.05.2026 20:00Т.е. это не размер финального контекста, а суммарный объем отправленных/принятых токенов, без учета кешей и прочего? Проще говоря начальное сообщение подсчитано столько раз, сколько было итераций у агента?
А можно добавить именно размер контекста на финише и количество итераций (или количество сообщений в контексте)? Будет чуть более показательно.

Ra2007
19.05.2026 20:00«Не врал в саммари» это отдельная категория боли. В Claude Code было так: агент докладывает что всё готово, тесты зелёные, diff выглядит нормально. Потом смотришь внимательнее и пара edge cases просто исчезла, молча. Сейчас в конце каждой сессии задаю вопрос что именно изменил и почему, не лечит полностью но хотя бы делает ложь видимой.
anonymous
breakingtesting Автор
Имеете ввиду прогнать там не только simple/regular, но и medium/regular, difficult/regular?
Дальше планировал эксперимент с интерактивной агентской отладкой.