Зачем тестировать модели на одной задаче? (Потому что все врут)
Каждый день появляются новые бенчмарки, графики и красивые презентации. "Наша модель превосходит конкурентов в 37 задачах!" Звучит здорово, пока не попробуешь заставить ее написать работающий код. Особенно код, который должен работать сразу — без бесконечных правок и "давай попробуем еще раз".
Вот почему я взял конкретную, понятную задачу: создать клон Pacman на чистом HTML5 (Canvas, JavaScript). Одна попытка. Температура 0. Никаких "попробуйте изменить промпт". И посмотрел, что реально могут GLM 4.7 (последняя версия на январь 2026) и Gemini 3 Pro.
Важно: температура (temperature) = 0 — это не просто цифра. При нулевой температуре модель дает наиболее вероятный, детерминированный ответ. Нет "творчества", нет случайных вариаций. Если код работает при temperature=0, его можно воспроизвести завтра, через неделю, у другого пользователя. Это тест на надежность, а не на креативность.
Промпт, который заставил модели работать (а не болтать)
Плохой промпт: "Напиши игру Pacman". Хороший промпт — это техническое задание для инженера, который ненавидит неоднозначности. Вот что я отправил обеим моделям:
Создай полнофункциональный клон игры Pacman на HTML5, используя один файл HTML с встроенными CSS и JavaScript.
Требования:
1. Игровое поле 19x19 клеток, отрисованное на Canvas.
2. Управление Pacman стрелками клавиатуры.
3. 4 призрака разных цветов с базовым ИИ патрулирования.
4. Точки для сбора, большие точки (энерджайзеры), которые делают призраков уязвимыми.
5. Система очков, отображаемая на экране.
6. Жизни Pacman (3 жизни).
7. Столкновения с призраками: в обычном режиме - потеря жизни, в режиме уязвимости - поедание призрака.
8. Базовая анимация движения (ротик Pacman открывается/закрывается).
Код должен быть полностью самодостаточным, запускаться при открытии HTML-файла в браузере. Не используй внешние библиотеки. Пиши чистый, комментированный код.
Почему именно такой промпт? Он задает конкретные размеры (19x19), перечисляет обязательные механики и запрещает костыли в виде jQuery или фреймворков. Модель не может "срезать углы" и сказать "а тут мы подключим библиотеку".
Раунд 1: GLM 4.7 — китайская дисциплина в действии
GLM 4.7 (последний релиз от Zhipu AI на начало 2026) ответила сразу. Без лирических отступлений, без вопросов "какой цвет вы предпочитаете?". Просто код. 320 строк HTML с встроенным CSS и JavaScript.
Сильные стороны кода от GLM 4.7:
- Чистая математика для движения: grid-based система с преобразованием пикселей в клетки
- Рабочий ИИ призраков: простой, но функциональный патруль по заданным точкам
- Корректная обработка состояний: обычный режим, режим уязвимости, смерть Pacman
- Анимация рта через математику синуса — элегантное решение без тяжелой графики
Я запустил файл. Игра работала с первого раза. Стрелки двигали Pacman, призраки патрулировали, точки исчезали, очки считались. Не шедевр геймдизайна, но полностью функциональный прототип.
Раунд 2: Gemini 3 Pro — мощь Google и... странные выборы
Gemini 3 Pro (актуальная версия на январь 2026) начала с многословного объяснения того, что она сейчас сделает. "Я создам...", "Вот как это будет работать...". Код появился после трех абзацев текста.
И тут началось интересное. Gemini 3 решила использовать... таблицу стилей внутри тега <style>? Нет, она написала CSS прямо в атрибутах HTML элементов через JavaScript. Динамическое создание div'ов для каждой клетки поля вместо Canvas. 19x19 = 361 div на странице.
Это классическая ошибка новичка в веб-разработке. Рендерить 361 отдельный DOM-элемент и управлять их стилями через JS — гарантированная проблема с производительностью. Canvas создан именно для таких задач. Gemini 3 проигнорировала явное указание "используя Canvas" в промпте.
Дальше — больше. Логика столкновений проверялась через getBoundingClientRect() для каждого div'а. В игровом цикле requestAnimationFrame. Представьте: 60 раз в секунду вычислять позиции 361 элемента. Браузер начал подтормаживать на третьей секунде.
При этом сама игровая механика была реализована... местами лучше, чем у GLM! Система состояний призраков (разброс, погоня, испуг, возврат в дом) была сложнее и интереснее. Но все это тонуло в ужасном архитектурном решении.
Сравнительная таблица: что работало, а что нет
| Критерий | GLM 4.7 | Gemini 3 Pro |
|---|---|---|
| Архитектура рендеринга | Canvas (правильно) | 361 DIV (катастрофа) |
| Производительность | 60 FPS стабильно | Падает до 15-20 FPS |
| ИИ призраков | Базовый патруль | Сложные состояния |
| Столкновения | Точная grid-система | Неточный bounding box |
| Читаемость кода | Модульная структура | Спагетти-код |
| Соответствие ТЗ | 100% (Canvas, все механики) | ~70% (игнорирован Canvas) |
Почему GLM 4.7 выиграла этот раунд? (И это не про "китайское качество")
Дело не в национальности модели. Дело в тренировочных данных и фокусе. GLM 4.7, судя по всему, обучали на большом количестве практических примеров веб-разработки, где эффективность и соответствие стандартам — ключевые метрики. Модель выбрала правильный инструмент (Canvas) для задачи и не стала "умничать".
Gemini 3 продемонстрировала то, что я называю "синдромом отличника": она попыталась сделать слишком много, переусложнила архитектуру, чтобы показать свои знания DOM API, и провалила базовое требование производительности. Интересно, что в других тестах, например в сравнении по поиску ошибок в коде, Gemini 3 показывает сильные результаты. Но здесь, в задаче на создание, а не анализ, она споткнулась.
Температура 0: ваш лучший друг для воспроизводимых результатов
Повторю еще раз: если бы я не установил temperature=0, оба результата могли бы меняться при каждом запросе. Сегодня Gemini 3 могла бы использовать Canvas, завтра — WebGL, послезавтра — SVG. Вы бы не смогли повторить мой тест.
Temperature=0 убирает случайность. Модель выдает наиболее вероятный ответ, основанный на ее тренировочных данных и архитектуре. Это не "самый креативный" ответ, это "самый ожидаемый" ответ. И в инженерии часто нужен именно он.
Что это значит для вас как разработчика?
1. Не верьте хайпу. Модель, которая выигрывает в бенчмарках по математике или рассуждениям, может провалить конкретную практическую задачу. Всегда тестируйте на своих use cases.
2. Специализация существует. GLM 4.7 показала себя сильной в практическом веб-кодировании. Gemini 3, как видно из анализа ее архитектуры, заточена под reasoning и мультимодальность. Выбирайте инструмент под задачу.
3. Промпт — это всё. Мой промпт был жестким ТЗ. Если бы я написал "создай игру Pacman как-нибудь", результаты были бы другими (и скорее всего, хуже). Учитесь писать точные, недвусмысленные требования.
Можно ли улучшить результат Gemini 3? (Да, но это читерство)
Если бы я сделал follow-up промпт: "Ты использовал DIV вместо Canvas, перепиши на Canvas", Gemini 3 вероятно исправила бы ошибку. Но это уже не one-shot тест. В реальной работе вы конечно будете уточнять и править. Но начальная точка — тот код, что модель выдает с первого раза — критически важна. Она задает архитектуру, от которой потом придется отталкиваться (или переписывать всё).
GLM 4.7 дала лучшую стартовую архитектуру. С ней можно было бы работать дальше: добавлять уровни, улучшать AI, вводить бонусы. Код от Gemini 3 требовал немедленного рефакторинга рендерера — фундаментальной переделки.
Где брать актуальные модели для своих тестов?
На январь 2026:
- GLM 4.7: доступна через официальный API Zhipu AI, есть в некоторых локальных сборках (но проверяйте лицензию)
- Gemini 3 Pro: Google AI Studio (бесплатные квоты), Gemini API (платно), встроена в некоторые продукты Google
Для чистоты эксперимента я использовал API обеих моделей с одинаковыми параметрами: temperature=0, max_tokens=4000. Никаких кастомных системных промптов (хотя про системные промпты Gemini 3 есть отдельная интересная статья).
Итог: что выбрать для веб-разработки?
После этого теста (и нескольких других, включая сравнение с DeepSeek и Qwen в Python/React) я бы составил такой стек:
- Быстрый прототип веб-приложения/игры: GLM 4.7 или специализированные код-модели (если нужен работающий каркас сразу)
- Анализ сложного кода, поиск уязвимостей: Gemini 3 Pro или Claude Opus (у них сильнее reasoning)
- Мультимодальные задачи (изображение + код): Gemini 3 без вариантов
Но самый главный вывод проще: перестаньте верить маркетингу. Возьмите свою самую частую задачу. Напишите точный промпт. Прогоните через 2-3 модели с temperature=0. Посмотрите, что работает лучше для вас. Этот тест занял у меня 20 минут. Он сэкономит вам десятки часов в долгосрочной перспективе.
А код рабочего Pacman от GLM 4.7? Он лежит у меня в гите. Но я не дам вам ссылку. Потому что важнее не скопировать готовое, а научиться проводить такие тесты самому. Возьмите свою задачу. Сделайте свой тест. И найдите свою лучшую модель.