В прошлой статье было показано, что обычный MacBook Pro M2 16GB может с оговорками решать инфраструктурные проблемы используя локальную LLM. В этой статье будут показаны результаты решения более сложных инфраструктурных задач на более тяжеловесных моделях.

Если лень читать и листать до конца, то вот ключевые результаты:

  1. Qwen3.6-27B не справился даже с лёгкой задачей - проигрывает как в качестве так и во времени решения

  2. Qwen3.6-27B, хоть и плохо, но смог завершить эксперимент, в отличие от Gemma4-31-B

  3. На простой задаче MoE модели Qwen3.6-35B-A3B и Gemma работают одинаково хорошо, однако Gemma тратит больше токенов и требовательнее к памяти.

  4. На средней задаче MoE Qwen3.6 показал себя значительно лучше Gemma.

  5. В то время как на тяжелой задаче качество решения Qwen значительно упало, Gemma полностью провалилась.

  6. Качество решения тяжелой задачи с помощью рассматриваемых MoE моделей можно улучшить до идеала если точно описывать проблему.

Мой личный выбор - Qwen3.6-35-A3B для проблем, которые сформулированы общими словами, Gemma4-26B-A4B - для чётко описанных проблем. Далее обо всём этом подробнее.

Содержание

  1. Состав испытательного стенда

  2. Инфраструктурные задачи

  3. Эксперименты

    1. Dense-Dense; простая задача (simple); обычный промпт (regular)

    2. Dense-MoE; простая задача (simple); обычный промпт (regular)

    3. MoE-MoE; простая задача (simple); обычный промпт (regular)

    4. MoE-MoE; средняя задача (medium); обычный промпт (regular)

    5. MoE-MoE; сложная задача (difficult); обычный промпт (regular)

    6. MoE-MoE; сложная задача (difficult); подробный промпт (precise)

  4. А как же обычный MacBook с 16GB?

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
Простая задача и промпт для неё
Простая задача, 1 сервер
Простая задача, 1 сервер
Обычный/regular промпт

python приложение по адресу http://10.12.2.134:8000/info возвращает 500. раньше возвращалось {"system_name":"Linux","internet_ok":true}. исправь

Задача средней сложности и промпт для неё
Задача средней сложности, 1 сервер
Задача средней сложности, 1 сервер
Обычный/regular промпт

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

Сложная задача и промпты для неё
Сложная задача, 2 сервера
Сложная задача, 2 сервера
Обычный/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

В нём (на сервере приложений) исправь:

  1. Опечатка в классе исключения в except

  2. Отсутствующий import requests

  3. Отсутствующий requests в venv

На хосте nginx:

  1. Установи nginx

  2. Сделай конфиг чтобы запрос 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. Эксперименты

Для каждой не выбывшей из “соревнования” модели были проведены следующие эксперименты:

  1. До 2х экспериментов на моделях Dense и некоторых MoE.

  2. Минимум 5 запусков/экспериментов каждой продолжившей участие в экспериментах модели МоЕ на задачах simple и medium сложности с regular промптом.

  3. Минимум 3 запусков/экспериментов каждой продолжившей участие в экспериментах модели МоЕ на задаче difficult сложности с regular промптом.

3.1. Dense-Dense; лёгкая задача (simple); обычный промпт (regular)

Qwen3.6-27B - единственная оценённая Dense модель
Qwen3.6-27B - единственная оценённая Dense модель

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 в зависимости от количества токенов на одном эксперименте.

Качество решения: Qwen3.6-27B vs Qwen3.6-35B-A3B
Качество решения: Qwen3.6-27B vs Qwen3.6-35B-A3B

3.3. MoE-MoE; лёгкая задача (simple); обычный промпт (regular)

Ниже дано сравнение потраченных токенов, времени работы и footprint памяти после выполнения задачи:

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

Качество решения simple/regular: MoE Gemma vs Qwen
Качество решения simple/regular: MoE Gemma vs Qwen

Комментарии:
Gemma4-26B-A4B - эксперимент 5 - запуск сервиса. запустил - но новый инстанс с новым портом.

3.4. MoE-MoE; средняя задача (medium); обычный промпт (regular)

Качество решения medium/regular: MoE Gemma vs Qwen
Качество решения medium/regular: MoE Gemma vs Qwen

Комментарии:
- 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)

Качество решения difficult/regular: MoE Gemma vs Qwen
Качество решения difficult/regular: MoE Gemma vs Qwen

Комментарии:
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)


  1. anonymous
    19.05.2026 20:00


    1. breakingtesting Автор
      19.05.2026 20:00

      Также интересно добавление тестов на менее мощном MacBook, где даже небольшая модель даёт частично рабочие результаты

      Имеете ввиду прогнать там не только simple/regular, но и medium/regular, difficult/regular?

      Дальше планировал эксперимент с интерактивной агентской отладкой.


  1. jojozuka
    19.05.2026 20:00

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


    1. breakingtesting Автор
      19.05.2026 20:00

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


  1. SabMakc
    19.05.2026 20:00

    Gemma4-26B-A4B - для чётко описанных проблем

    Совсем не понял, за счет чего такой выбор был сделан. Судя по тестам, Gemma4 везде справилась хуже, медленнее работала и потратила больше токенов. Разве что памяти должна занимать меньше, но больше на контексте съест по идее.

    P.S. Gemma4 - отличная модель, но не для агентских сценариев.


    1. breakingtesting Автор
      19.05.2026 20:00

      За счет чего такой выбор? Если обратите внимание, то тут

      https://habr.com/ru/articles/1037082/#moemoedifficultprecise

      Есть сравнение gemma с подробным промптом с qwen с подробным промптом. По качеству - одинаково, по скорости gemma лучше в этих условиях


      1. SabMakc
        19.05.2026 20:00

        Qwen обычно менее многословен относительно Gemma4 (правда не скажу, что большая разница). А вот к квантам от unsloth у меня есть вопросы (особенно к Qwen3.6-35B-A3B). Если получится выделить время, то попробую повторить эксперимент локально.

        P.S. да, я уже после комментария обратил внимание на токены именно в этом тесте. Gemma4 быстрее в этом случае, да. Но обычно если есть настолько подобная инструкция, то задача уже решена и LLM не нужна ) Да и нет “запаса” на возможные неожиданности )


        1. breakingtesting Автор
          19.05.2026 20:00

          обычно если есть настолько подобная инструкция, то задача уже решена и LLM не нужна ) Да и нет “запаса” на возможные неожиданности )

          Согласен


  1. frolser
    19.05.2026 20:00

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


    1. breakingtesting Автор
      19.05.2026 20:00

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


      1. SabMakc
        19.05.2026 20:00

        Т.е. это не размер финального контекста, а суммарный объем отправленных/принятых токенов, без учета кешей и прочего? Проще говоря начальное сообщение подсчитано столько раз, сколько было итераций у агента?

        А можно добавить именно размер контекста на финише и количество итераций (или количество сообщений в контексте)? Будет чуть более показательно.


  1. Ra2007
    19.05.2026 20:00

    «Не врал в саммари» это отдельная категория боли. В Claude Code было так: агент докладывает что всё готово, тесты зелёные, diff выглядит нормально. Потом смотришь внимательнее и пара edge cases просто исчезла, молча. Сейчас в конце каждой сессии задаю вопрос что именно изменил и почему, не лечит полностью но хотя бы делает ложь видимой.