Google Gemma 4 хорошо работает на локальных системах — и больших, и маленьких

Прослушать статью

Мы протестировали новую семейство мультимодальных моделей Google в вариантах, достаточно компактных для локальных устройств. Они работают хорошо.

Google’s Gemma 4 преподносится как очередной этап развития мультимодальных моделей Google. Gemma 4 поддерживает не только рассуждение и использование инструментов, но и функции зрения и аудио, а также доступна в разных размерах моделей, рассчитанных на серверы и локальные устройства.

Особенно примечательно, что даже старшие варианты Gemma 4 вполне неплохо работают на персональном железе. Google объясняет это инновациями в архитектуре модели, но проверка на практике важнее любых заявлений. Gemma 4 действительно довольно отзывчива.

Поэтому я решил прогнать Gemma 4 на собственном оборудовании и посмотреть, как она справляется с заявленными задачами.

Размеры модели Gemma 4

Gemma 4 доступна в четырех базовых размерах, или «плотностях»:

  • E2B: 2,3 млрд эффективных параметров, 5,1 млрд параметров всего, окно контекста до 128K.
  • E4B: 4,5 млрд эффективных параметров, 8 млрд параметров всего, окно контекста до 128K.
  • 31B: 31 млрд параметров (плотная версия), окно контекста до 256K. Вероятно, на своем компьютере вы эту версию использовать не будете — она занимает 62 ГБ.
  • 26B A4B: модель с архитектурой mixture of experts, 4 млрд «активируемых» параметров и 26 млрд параметров всего, окно контекста до 256K.

Каждый из этих размеров доступен во множестве сообществом созданных сборок благодаря лицензии Gemma 4 Apache 2. Например, модель 26B A4B доступна в community-версии с более компактными квантованиями (4-bit, 6-bit и т. д.), и именно ее я использовал в одной из комбинаций моделей для этой статьи.

Использованные мной модели:

  • google/gemma-4-26b-a4b: размер модели 18 ГБ, квантование 4-bit.
  • lmstudio-community/gemma-4-E4B-it-GGUF: размер модели 6,3 ГБ, квантование 4-bit.
  • unsloth/gemma-4-E4B-it-GGUF: популярная альтернативная сборка той же модели, доступная в нескольких квантованиях. Я использовал размер 4,84 ГБ с квантованием 4-bit.

Тестовая система и промпты

Я запускал каждую модель на своей стандартной тестовой конфигурации: LM Studio 0.4.10 на AMD Ryzen 5 3600, 6-ядерный CPU (32 ГБ RAM), и Nvidia GeForce RTX 5060 (8 ГБ VRAM).

Для каждой модели я прогонял набор промптов:

  • Промпт для проверки визуальных возможностей: «Создай подпись к прикрепленному изображению не более чем из трех предложений». В другой версии промпта было добавлено: «… без редакторских оценок». (Прикрепленное изображение показано в одном из скриншотов ниже.)
  • Промпты, рассчитанные на использование веб-поиска и получение либо подробного, либо упрощенного ответа: «Каков статус авторских прав на произведения Франца Кафки? Объясни подробно» и «Что Уильям Гибсон думал о Blade Runner
  • Промпт для генерации кода и решения задачи: «В инструменте pip в Python есть функция ScriptMaker (доступна через from pip._vendor.distlib.scripts import ScriptMaker). В Microsoft Windows она используется для создания заглушки .exe, запускающей точки входа Python-пакета при установке через pip. Однако значок, создаваемый для этой заглушки, такой же, как и стандартный значок среды выполнения Python. Давайте напишем утилиту на Python, которая позволит пользователю добавить собственный значок к заглушке .exe, но при этом сохранит добавленный архив и другие метаданные заглушки. Утилита должна использовать только стандартную библиотеку Python и быть как можно более простой.»
  • Еще один кодовый промпт: «У меня есть прикрепленная программа на Python, которая берет Python-приложения и упаковывает их так, чтобы они запускались с автономным экземпляром среды выполнения Python. Один из недостатков программы в том, что она не слишком модульная. Проанализируйте программу и предложите, как повысить ее модульность, чтобы ее можно было использовать как библиотеку с хуками для различных продвинутых сценариев.»

Gemma 4 в работе

Модель 26B оказалась на верхней границе того, что я мог комфортно запускать на своем тестовом оборудовании. Полностью поместить модель в GPU-память не удалось, но я перенес первые 12 слоев на GPU (7,51 ГБ VRAM) и выставил длину контекста 16384 токенов (всего 18,76 ГБ RAM).

Получить хорошую производительность от моделей, которые не помещаются в VRAM, всегда непросто. Однако у Gemma 4 благодаря архитектуре mixture of experts есть механизм, улучшающий скорость. LM Studio открывает эту возможность через параметр, помеченный как экспериментальный. Можно выбрать, сколько слоев модели «принудительно перевести веса MoE [mixture of experts] на CPU», что экономит VRAM и может ускорить инференс.

Экспериментальная настройка MoE (mixture of experts) в LM Studio
Экспериментальная настройка MoE (mixture of experts) в LM Studio. Для моделей с MoE-архитектурой этот параметр заставляет веса этой части модели выполняться на CPU вместо GPU. В случае Gemma 4 это дало существенный прирост скорости у моделей, которые слишком велики для полной загрузки в память.

Без принудительного переноса MoE общее время инференса и скорость генерации токенов резко проседали; модель с трудом выдавала в среднем 1,5 токена в секунду даже на простых запросах. Когда принудительный режим MoE был включен (на максимальном поддерживаемом числе слоев, 30), скорость генерации подскакивала до 5–13 токенов в секунду в зависимости от нагрузки на систему. Это все еще далеко от скорости меньших моделей, но уже гораздо практичнее.

Чтобы ускорить получение первого токена, можно отключить thinking, но это может снизить надежность ответа. В задаче на генерацию кода Gemma 4 провела 6 минут 26 секунд в режиме thinking и более 8 минут генерировала ответ (5 013 токенов, 9,55 токена в секунду). Получившийся код и объяснение не были заметно более продвинутыми или подробными, чем версия без thinking.

Модель Gemma 4 с 26 млрд параметров отвечает на запрос на генерацию кода.
Ответ 26-миллиардной версии Gemma 4 на запрос на генерацию кода. Эта более крупная версия модели работает медленнее, когда не может полностью поместиться в память, но архитектура mixture of experts помогла частично компенсировать это ограничение.

Когда я переключился на LM Studio Community-версию модели E4B, я поместил все 42 слоя на GPU и оставил контекст 16 384, причем все это комфортно помещалось в VRAM с запасом. Результат дал резкий скачок скорости: 72 токена в секунду. У меньшей модели ответы на некоторые запросы были менее конкретными — особенно в задаче генерации кода, где она не выдавала полноценный пример кода, а только концептуальную основу для него, — но она все равно неплохо анализировала проблему и предлагала конструктивные подходы. Версия unsloth модели E4B, несмотря на чуть меньший размер, показала примерно такую же производительность и полезность.

Примеры генерации подписей к изображениям в версии Gemma 4 с 26 млрд параметров.
Примеры генерации подписей к изображениям в версии Gemma 4 с 26 млрд параметров. Меньшие версии модели, как правило, не переходили к редакторским оценкам. Более крупной версии иногда требовалось более точное указание, чтобы она была менее многословной или менее витиеватой.

В ответах на промпт «сделайте эту программу более модульной» я получил примерно одинаковые результаты у всех вариантов модели с точки зрения самих рекомендаций. Единственное существенное различие заключалось в том, что меньшие модели работали намного быстрее — 73,85 и 71,73 токена в секунду против 9,3 у большой модели.

Выводы по Gemma 4

Главный вывод после локального запуска Gemma 4 — то, насколько архитектура mixture of experts в одной из более крупных версий модели делает ее полезной даже на системах, где модель не помещается целиком в VRAM. При этом и меньшие версии модели, даже на более низких квантованиях, тоже работают хорошо. Они еще и дают результат во много раз быстрее и высвобождают гораздо больше памяти для более длинных контекстов. Поэтому меньшие модели стоит попробовать в первую очередь, прежде чем переходить к их более крупным версиям.


Материал — перевод статьи с английского.

Оригинал: Google’s Gemma 4 shines on local systems – both big and small