К содержанию
Новости

DiffusionGemma: альтернативный подход к генерации текста

DiffusionGemma: альтернативный подход к генерации текста
Фото: Exploring Language Models (Maarten Grootendorst)

В блоге Exploring Language Models вышел разбор DiffusionGemma, подхода к генерации текста, который отличается от привычных autoregressive LLMs. Материал появился после релиза Gemma 4 12B. В статье показывают, как методы диффузии можно применять к дискретному тексту, и разбирают архитектуру DiffusionGemma вместе с техниками, на которых она построена.

Автор напоминает о слабых местах autoregressive‑моделей. Они генерируют текст по одному токену за шаг, и во время декодирования значительная часть времени тратится не на вычисления, а на загрузку весов из памяти. Из‑за этого Transformer‑модели оказываются memory bound. На практике получается, что генерация одного токена занимает примерно одинаковое время как для одного пользователя, так и, например, для 256 пользователей, если их запросы объединены в батч. Это удобно для обслуживания большого числа запросов, но почти не снижает задержку для отдельного пользователя.

DiffusionGemma работает иначе. Модель не добавляет токены по одному, а начинает с последовательности из 256 случайно инициализированных токенов, так называемого canvas, и пытается улучшать всю последовательность сразу. После первого прохода начало обычно выглядит точнее, а ближе к концу появляются ошибки. Поэтому используется iterative refinement: модель несколько раз проходит по тому же canvas, опираясь на предыдущие предсказания. Токены с высокой вероятностью помогают уточнять следующие позиции, и последовательность постепенно становится более согласованной.

Ключевые факты

  • DiffusionGemma представлена после выпуска модели Gemma 4 12B и предлагает иной подход к генерации текста по сравнению с традиционными авторегрессионными LLM.

  • Авторегрессионные LLM генерируют текст по одному токену за шаг и во время декодирования ограничены пропускной способностью памяти, поскольку значительная часть времени уходит на загрузку весов из памяти.

  • Из‑за того что веса загружаются один раз на шаг, время генерации одного токена одинаково при обслуживании 1 пользователя и 256 пользователей, если они объединены в один батч.

  • В DiffusionGemma генерация начинается с «холста» из 256 случайно инициализированных токенов, после чего модель пытается предсказать 256 токенов одновременно и затем улучшает результат через несколько проходов итеративного уточнения.