На днях появилась новая версия открытой LLM от Google — Gemma 4. Как только прочитал в новостях об этом, решил попробовать, что у них получилось на этот раз. Дело в том, что в третьей версии моделька получилась очень хорошей с оптимальным соотношением размера и качества для локального запуска. Я ее пробовал как для разных своих нужд, так и для одного тестирования по материалам чужой статьи на Хабре — Эксперименты с локальной LLM Gemma 3.
Сегодня хотел провести (и провел) два эксперимента, но в итоге, под впечатлениями, решил описать только второй из них. Как раз повторение эксперимента из статьи о Gemma 3 с созданием игры.
Итак, напомню предысторию. Человек решил создать простую игру на html + css + Javascript через один промпт. Через один, разумеется, не получилось тогда ни у него, ни у меня. Но я тогда, в силу тормознутости модели и постоянных ошибок в предлагаемом ею коде до рабочего состояния игру довести так и не смог, потратив пару часов времени и сделав с десяток итераций исправлений кода. То есть код модель написала, но очень долго (почти полчаса времени) и с кучей ошибок или недоработок. Посмотрим, что нам предложит новая версия модели сегодня.
Эксперимент. Создаем игру
Стартовые условия. Для запуска локальной модели использую простую программу LM Studio, на этот раз версии 0.4.7. Модель — gemma-4-26B-A4B-it-Q4_K_M. Приблизительно того же размера, того же квантования. Отличие лишь в том, что в 4 версии при работе модели используется всего 4 миллиарда параметров, вместо всех 26. Судя по всему, именно это крайне положительно повлияло на скорости работы модели. Но нам важнее качество, а не скорость. Хотя, одно другому не мешает.
Тот же самый промпт, что и в прошлый раз, слово в слово:
Промпт
Напишите HTML-код для игры в Lines.
Суть игры состоит в следующем.
На игровом поле 10 на 10 клеток в случайной клетке появляется первый шарик круглой формы одного из 5 случайных цветов.
Игрок мышкой кликает на этот шарик, выбирая его.
При выборе шарика его яркость и размер плавно циклически изменялись по синусоиде с помощью таймера.
Игрок мышкой указывает свободную клетку, куда он этот шарик желает передвинуть, и шарик передвигается в эту клетку. После этого изменение яркости и размера данного шарика прекращаются.
Выбор шарика и указание клеточки для его перемещения производились только нажатием левой кнопки мыши.
Затем в случайной свободной клетке опять появляется другой шарик одного из случайных 5 цветов.
Игрок снова мышкой кликает на любой имеющийся на поле шарик, выбирая его.
И таким же образом игра продолжается дальше.
Задача игрока состоит в том, чтобы из 5 или более шариков одного цвета собрать непрерывную линию по вертикали или по горизонтали или по диагонали. В этом случае все эти 5 шариков исчезают.
Игра заканчивается, когда все клеточки заполнены шариками. Новый шарик может появиться только на свободной клеточке.
Добавь кнопку, нажав на которую начинается новая игра, а также Label, на котором считается число удаленных линий из шариков. Сделай панель, кнопку и Label более красивыми, с четкими линиями и приятными цветами.
Отправляю и жду. Ответ получился в 3477 токена, со скоростью генерации 10,37 токена в секунду, то есть занял он где-то 336 секунд. Менее 6 минут. В прошлый раз на Gemma 3 понадобилось почти 30 минут. Увеличение скорости реально впечатляет. Конечно, это все зависит от железа, но железо у меня не менялось. Так что выигрыш чисто за счет улучшения работы модели. Но это еще цветочки, ягодки были впереди.
