Три правила промпта для Gemma 4: MoE нашёл строки каталога, dense «отвалился» на тех же SKU

Разработчик сравнивает два варианта открытых моделей семейства Gemma 4 с GPT‑4o и GPT‑4o mini на реальном сценарии AI‑чата для продавцов арабоязычной электронной торговли. i-added-three-rules-to-gemma-4-the-moe-searched-the-dense-model-refused
После одной и той же доработки промпта только для Gemma описаны симметричные сбои: MoE 26B ведёт себя через каталог, dense 31B отказывается в выдаче, хотя SKU в данных есть.
У публикации на Dev.to заметная публичная активность ограничена: восемь реакций и четыре комментария по счётчикам площадки; счётчик просмотров в доступной карточке пустой. На странице указано ориентировочное время чтения — 11 минут; время публикации поста — 2026‑05‑16T14:28:27Z.
Как построены чат-маршрутизатор и «снимок», а не бенчмарк
Подход описан как мультиарендная цепочка для арабоязычной коммерции: входящее сообщение сначала обрабатывает gpt‑4o‑mini, который решает, нужен ли поиск товаров или достаточно разговорного ответа. При необходимости поисковые шаги и перепись переговоров остаются на gpt‑4o‑mini, а финальную генерацию переключают на сравниваемую модель. До эксперимента финальный ответ давал исключительно gpt‑4o‑mini.
Как лабораторный кейс приведён небольшой магазин с 34 заполненными карточками (цены, характеристики, перевод на продающий арабский; канонический язык в базе данных — английский).
Шесть диалогов с фиксированными репликами клиента задают сетку наблюдений. По четырём моделям получается 24 набора сообщений — в статье это названо исследовательским снимком качества без претензии на статистический бенчмарк.
В перечне API фигурируют идентификаторы gpt‑4o‑mini, gpt‑4o, gemma‑4‑26b‑a4b‑it, gemma‑4‑31b‑it; суффикс a4b в тексте связан с конвенцией про число активных параметров для MoE.
Что внесли только в ветку Gemma во второй фазе
Правку сосредоточили в обработчике вызова Google: к сообщениям для Gemma добавлен системный фрейм GEMMA_AR_FRAME («четыре строки» с ролью, заголовком «Strict rules:» и четырьмя пунктами списка). Одновременно верхнее ограничение temperature задаёт значение 0.3, а max_tokens — минимальный пол не ниже 400. Параллельные вызовы OpenAI оставлены в том же виде, что и в первой серии экспериментов.
Четыре правила в тексте поста сводятся к такому виду:
- один короткий ответ палестинским диалектом без преамбулы и «видимого» рассуждения от имени представителя онлайн-магазина;
- без выдуманных названий цен, имён товаров или политик вне уже данных контекста;
- если нужного SKU нет в каталоге — честное «нет», плюс альтернатива только из доступного;
- не смешивать финальный текст с англоязычными строками.
Автор прямо пишет, что температура, порог токенов и текст фрейма внесены одним пакетом: без отдельных абляций нельзя выделить вклад каждого рычага.
Латентность, «thinking», HTTP 400 и характер сбоев между раундами
В тексте упомянута попытка отключить «thinking» через generationConfig.thinkingConfig с нулевым бюджетом и includeThoughts: false. API Google ответил HTTP 400: режим недоступен для модели — конфигурацию убрали. Прозрачного контроля скрытых рассуждений Gemma здесь нет, поэтому задержку рядом с колонками GPT уместно читать с оговоркой — это не два полностью сопоставимых «чистых» генеративных вызова без скрытых фаз у одной из сторон.
На странице приведены ориентиры задержки (wall‑clock у клиента). Для gpt‑4o‑mini и gpt‑4o указан узкий диапазон 7–14 секунд.
Для Gemma в первом раунде приводятся 28–77 секунд у 26B (пик на задаче с математикой и доставкой) и примерно 30–43 у 31B, там где цепочка доходит до ответа. Таблица в конце агрегирует p95 по колонкам: gpt‑4o‑mini ~14 с, gpt‑4o ~13 с, 26B R1 ~77 с, 31B R1 ~76 с, 26B R2 ~49 с, 31B R2 ~41 с.
Во второй фазе по ошибкам API: у dense 31B зафиксировано 2 случая HTTP 500 из шести попыток до получения кандидата; у MoE 26B для тех же шести сценариев указан ноль таких отказов.
Почему сценарий с белой рубашкой ведёт MoE и dense по-разному
Для второго диалога (поиск белой рубашки большого размера) в первой волне MoE «замирает» на реплике про связь с «владельцем», когда перед моделью три SKU. После введения правил MoE перечисляет три живые позиции с ценами. У dense картина обратная: первый проход считают успешным, а после правил появляется ложное «нет в наличии», хотя выбранный набор SKU в данных присутствует.
Вывод автора прагматичный: промпт нужно подгонять под архитектуру отдельно. Для описанной цепочки GPT‑4o‑mini остаётся в продакшене. MoE 26B отмечен как перспективный открытый кандидат для неанглоязычного чата после сокращения разрыва по задержке и стоимости настройки. Dense 31B — до тех пор, пока модель не перестанет избыточно отвергать реальные позиции из каталога.
Публичного торгового имени магазина на странице нет — подставлять его в тексте не следует.
Источники
- Dev.to — материал на Dev.to; дата доступа 2026‑05‑16T15:00:00Z.