Задача: CLI для слияния JSON-файлов с конфликт-резолвингом
Я дал обеим моделям одинаковый промпт. Задача нетривиальная: создать утилиту командной строки, которая принимает несколько JSON-файлов, сливает их, разрешает конфликты по заданным правилам, поддерживает сухие прогоны и логирование.
Ключевые требования: обработка вложенных структур, стратегии слияния (перезапись, объединение массивов, пропуск), валидация JSON, цветной вывод. Именно то, где модели часто спотыкаются.
GLM 4.7: тяжелая артиллерия с перекосом
1 Структурный перебор
GLM 4.7 выдал монолит. 250 строк кода одним файлом. Аргумент парсер с кучей флагов, три вложенных класса для стратегий, свой логгер, кастомные исключения. Архитектурно «правильно», но для CLI утилиты - это стрельба из пушки по воробьям.
Модель явно перестраховалась. Каждый метод имеет докстринги, каждая ошибка обработана, типизация полная. Но запустишь это - и понимаешь: зависимостей больше, чем функционала.
2 Где спотыкается тяжеловес
Логика разрешения конфликтов работает только на первом уровне вложенности. Спросил про глубокое слияние - модель добавила рекурсию, но сломала обработку массивов. Типичная проблема больших моделей: они генерируют много кода, но не держат в голове всю архитектуру.
Цветной вывод через сложную систему ANSI-кодов, хотя можно было использовать библиотеку. Зато валидация JSON - через try/except с кастомными сообщениями. Неэффективно, но «надежно».
MiniMax M2.1: компактный снайпер
1 Минимализм с умом
MiniMax M2.1 выдал 120 строк. Один файл, три функции, словарь стратегий. Аргументы через argparse, но только необходимые флаги. Логирование - простой print с уровнями. Никаких лишних абстракций.
Но вот что удивило: глубокая рекурсия для слияния с первого раза. Модель сразу поняла, что нужна обработка вложенных словарей и списков. Стратегии реализованы как лямбда-функции - элегантно и читаемо.
2 Практичность вместо пафоса
MiniMax использовал json.loads с обработкой ошибок, но без переусложнения. Цветной вывод через библиотеку colorama - модель предложила установить зависимость. Практично: если нужны цвета, ставь библиотеку. Не нужны - удали одну строку.
Сухой прогон реализован проверкой флага в начале, а не отдельным режимом выполнения. Меньше кода, та же функциональность.
MiniMax M2.1 ведет себя как мидл, который уже набил шишек: знает, где можно срезать углы без потери качества.
Сравнение в цифрах и фактах
| Критерий | GLM 4.7 | MiniMax M2.1 |
|---|---|---|
| Объем кода | 250 строк | 120 строк |
| Архитектура | ООП, много классов | Функциональная, минимум абстракций |
| Глубокое слияние | Сломалось при доработке | Работает из коробки |
| Зависимости | Только стандартная библиотека | Предложил colorama (опционально) |
| Читаемость | Перегружена | Прямолинейна |
Почему так происходит?
GLM 4.7 с его 128 миллиардами параметров обучен на корпоративных кодбазах. Он видит, как пишут в больших проектах, и копирует эти паттерны. Даже если задача маленькая. Это как если бы вы попросили архитектора спроектировать сарай, а он начал рисовать чертежи небоскреба.
MiniMax M2.1, про которую мы писали в материале про темную лошадку, оптимизирован под эффективность. Меньше параметров - меньше «шума» в генерации. Модель фокусируется на сути задачи, а не на демонстрации знаний.
Когда что выбирать?
Берите GLM 4.7, если:
- Нужен продакшен-код с полным покрытием edge-кейсов
- Работаете над большим проектом, где важна архитектурная чистота
- Готовы потом рефакторить и упрощать
- Как в нашем сравнении GLM 4.7 для Python и React - для комплексных задач
Берите MiniMax M2.1, если:
- Нужен рабочий прототип быстро
- Делаете утилиту или скрипт
- Цените простоту и минимализм
- Работаете с ограниченными ресурсами, как в случае GGUF-версии MiniMax
Итоговый вердикт
GLM 4.7 генерирует «правильный» код. MiniMax M2.1 - практичный код. Разница в том, что первый можно показать на code review, а второй - сразу запустить.
Для CLI утилит MiniMax выигрывает. Меньше кода - меньше багов. Проще архитектура - легче поддерживать. Модель не пытается впечатлить, она решает задачу.
Парадокс: модель с вдвое меньшим числом параметров лучше понимает, что такое «достаточно хорошо» для конкретной задачи.
Следующий тест - веб-сервис с базой данных. Интересно, сохранится ли эта динамика, когда задача станет действительно сложной. Или GLM 4.7 все же раскроется на масштабе, а MiniMax упрется в потолок сложности.
А пока - для ваших скриптов и утилит попробуйте MiniMax M2.1. Особенно в квантованных версиях, про которые мы писали в материале про кванты для программирования. Может оказаться, что лучшая модель - не самая большая, а та, которая не усложняет простые вещи.