Новая ИИ-модель от Google генерирует более 1000 токенов в секунду (DiffusionGemma)

BBetter Stack
Computing/SoftwareVideo & Computer Games

Transcript

00:00:00Google в последнее время просто жжет. На прошлой неделе я делал видео об их революционной
00:00:05модели Gemma 4 без энкодера, а на этой неделе они выпустили еще одну шокирующе инновационную модель. Она называется Diffusion
00:00:11Gemma, и эта модель невероятно быстрая. Она способна генерировать более тысячи токенов
00:00:18в секунду, и причина такой скорости в том, что она генерирует текст совершенно
00:00:23иначе, чем любая другая модель, которой вы когда-либо пользовались. Итак, в этом видео мы взглянем
00:00:29на Diffusion Gemma, узнаем, как она работает, и я покажу вам, как вы можете протестировать ее самостоятельно.
00:00:35Будет очень интересно, так что давайте начнем.
00:00:41Итак, каждая языковая модель, с которой вы когда-либо общались, работает по одному и тому же фундаментальному принципу. Они авторегрессионные,
00:00:48и это модное слово означает, что они генерируют по одному токену за раз, слева направо. Они пишут слово,
00:00:54затем смотрят на все, что было написано до сих пор, и предсказывают следующее слово, и цикл просто
00:00:59повторяется. И в случае с крупными коммерческими моделями, такими как Claude или GPT, когда сервер
00:01:06генерирует токен, большая часть времени уходит не на вычисления, а на загрузку весов модели
00:01:12из памяти. И это довольно расточительно, если вы обслуживаете только одного пользователя. Поэтому серверы объединяют сотни
00:01:19пользователей вместе, загружают веса один раз и прогоняют их для всех одновременно. Таким образом,
00:01:25можно обслуживать 256 пользователей с одной загрузкой памяти. Но когда вы запускаете модель локально, вы всего лишь один пользователь,
00:01:33поэтому вас не с кем объединять в пакет. GPU загружает массивную порцию весов, выполняет крошечное
00:01:39вычисление для создания одного токена, а затем простаивает перед следующим шагом. В технических терминах
00:01:46это называется ограничением по памяти. Ваш дорогой GPU проводит большую часть своей жизни в ожидании следующего
00:01:52токена, а не в реальных вычислениях. Поэтому Google DeepMind посмотрели на эту проблему и задали умный
00:01:58вопрос. Если облако заполняет время простоя, обслуживая 256 пользователей одновременно, что если мы заполним это время простоя
00:02:07для одного пользователя? Вместо одного токена для 256 человек, что если мы сгенерируем 256 токенов для одного
00:02:16человека сразу? И в этом вся идея Diffusion Gemma. Вместо того чтобы писать слово за словом,
00:02:23модель начинает с «холста» — строки из 256 полностью случайных заполнителей. То есть просто
00:02:31шума. И ее задача — исправить этот холст во всех позициях сразу и превратить его в реальный текст. Таким образом, предсказывая все
00:02:38256 токенов за один раз, вы даете своему GPU большой объем реальной работы вместо того, чтобы он простаивал. Таким образом,
00:02:46вы переводите модель из состояния ограниченности по памяти в состояние ограниченности по вычислительной мощности, и вся эта потраченная впустую мощь наконец используется.
00:02:53Но это не так просто, как кажется. Предсказать 256 токенов сразу — это на самом деле очень сложно.
00:03:01Потому что откуда модели знать токен номер 254, если она понятия не имеет, чем оказались токены с 1 по 253?
00:03:09И именно это и происходит. Первые несколько токенов получаются хорошими, но чем дальше, тем больше
00:03:15все превращается в бессмыслицу. Но что, если вместо того, чтобы делать один проход, модель сделает
00:03:21несколько проходов? И это ключевой трюк. Модель проходит по холсту снова и снова, но теперь она
00:03:28может видеть свои предыдущие догадки. Токены, которые она предсказала с уверенностью, становятся контекстными подсказками,
00:03:35которые помогают исправить более сомнительные. Самое крутое, что нужно всего несколько проходов. Намного меньше проходов, чем
00:03:42общее количество токенов — 256. И именно отсюда берется скорость модели. И вы, вероятно, видели
00:03:49этот трюк раньше. Это называется диффузия. Вы начинаете с шума, а затем уточняете его шаг за шагом. И
00:03:55это та же самая идея, которая питает ИИ-генераторы изображений. И модель учится этому, путем
00:04:01намеренного добавления шума к реальным изображениям при обучении, а затем учась предсказывать и вычитать этот шум.
00:04:07Но как применить ту же концепцию к тексту? Это самая сложная часть. Потому что с изображением
00:04:14шум — это легко. Сделать пиксель немного краснее или синее. Но с текстом, как сделать слово
00:04:19«the» немного менее «the»? Что этот шум вообще означает для слова? Что ж, DeepMind придумали
00:04:27нечто под названием «диффузия в равномерном состоянии» (uniform state diffusion). Так что вместо возни с буквами вы рассматриваете случайно
00:04:32замененное слово как шум. И чтобы исказить тренировочный текст, вы заменяете некоторые реальные слова случайными.
00:04:38Задача модели — понять, какие слова являются мусором, и в конечном итоге исправить их с помощью нескольких проходов.
00:04:45На самом деле есть более простой способ сделать это, называемый «масочной диффузией», который просто скрывает токены.
00:04:51Но у него есть большой недостаток. Как только модель выбирает слово, оно зафиксировано навсегда. У нее та же
00:04:57проблема, что и у авторегрессионных моделей. Но равномерная диффузия состояний исправляет это, всегда удерживая какой-то токен в
00:05:04каждой позиции. Поэтому модель может посмотреть на слово, которое она приняла три шага назад, решить, что оно больше
00:05:10не подходит, и заменить его. Так что мы, по сути, можем корректировать его на всем пути. Но это решение
00:05:15также имеет подвох. Диффузии нужен энкодер, чтобы понимать ваш запрос, и денойзер, чтобы очищать
00:05:23холст. Поэтому DeepMind разработали патч энкодера-денойзера. Он построен на базе их существующей 26-миллиардной
00:05:30модели GEMMA4, и она переключается между этими двумя режимами при генерации ответа. В режиме энкодера
00:05:36модель читает ваш запрос, пытается извлечь из него контекст и рекомендации. Она собирает все это
00:05:42в KV-кэш, а затем передает напрямую денойзеру. А задача денойзера, по сути, —
00:05:49очистить холст. И он делает это двумя способами. Во-первых, помните, как обычная LLM создает
00:05:56показатель уверенности (confidence score) или логит для каждой позиции, но отбрасывает все из них, кроме последнего? Кстати,
00:06:02если вы запутались, я уже делал видео, где подробно объяснял, как работают LLM.
00:06:07Так что посмотрите это видео, если интересно. По сути, Diffusion GEMMA не выбрасывает
00:06:13эти оценки. Она сохраняет все эти показатели уверенности, потому что каждая позиция холста требует собственного предсказания.
00:06:19И второе: этот денойзер не использует причинно-следственное (causal) внимание, которое гласит, что слово может
00:06:25смотреть только назад — именно так работают авторегрессионные модели. Вместо этого он заменяет его на двунаправленное
00:06:31внимание. Теперь каждый токен может видеть любой другой токен во всех направлениях. Поэтому для каждой позиции
00:06:38вы применяете эти оценки уверенности, смотрите на другие токены и медленно, шаг за шагом, очищаете холст.
00:06:44И именно так Diffusion GEMMA способна достичь своей невероятной скорости в 1000 с лишним токенов в секунду
00:06:51на GPU H100. Теперь я должен быть откровенен с вами. Это не серебряная пуля. С этими новыми тактиками
00:06:58Diffusion GEMMA, по сути, меняет качество на скорость. Для максимального качества стандартная GEMMA 4
00:07:05все еще лучший выбор. Эта модель создана специально для критически важных локальных задач, таких как встроенное редактирование, заполнение кода
00:07:13или быстрая итерация. И она особенно сильна в нелинейных задачах, таких как заполнение середины
00:07:19блока кода или даже решение судоку, в которых обычные модели, работающие слева направо, откровенно плохи.
00:07:26Все это звучит захватывающе, но давайте протестируем ее и посмотрим, как она работает в действии.
00:07:33Google выложила веса в открытый доступ по лицензии Apache 2.0 на Hugging Face.
00:07:38Так что, если у вас мощный GPU вроде RTX 5090, вы можете попробовать запустить ее локально. Также есть
00:07:44специальный рецепт для VLLM, который можно запустить в Docker для упрощения этого процесса. Но мне очень любопытно,
00:07:51может ли эта модель действительно достичь 1000 с лишним токенов в секунду. Поэтому для этого теста я попробую
00:07:58запустить ее на GPU H100, используя контейнер RunPod, и посмотрим, что получится. Кстати, я также
00:08:04опубликовал шаблон Diffusion GEMMA для запуска на RunPod. Так что, если вы хотите повторить этот тест,
00:08:10все, что нужно сделать, — запустить этот шаблон при создании нового пода. Итак, чтобы сделать этот тест на RunPod,
00:08:15я выберу контейнер H100. И, как я уже упоминал, я создал шаблон Diffusion GEMMA,
00:08:22который вы можете использовать повторно. Просто нажмите кнопку, выберите диск и нажмите развертывание
00:08:28по требованию. Потребуется несколько минут, пока он скачает контейнер и все запустит.
00:08:34Если мы зайдем в логи и увидим «application startup complete», это значит, что VLLM готова
00:08:40и теперь доступна через порт 8000. Если мы откроем это, вы увидите «detail not found»,
00:08:46но не волнуйтесь. Это значит, что она работает. Нам нужно только скопировать этот URL. Чтобы
00:08:52настроить Diffusion GEMMA для работы в терминале ИИ-агента, вроде OpenCode, нужно
00:08:58настроить параметры OpenCode для доступа к удаленному серверу. Вы можете сделать это с помощью простой
00:09:04команды, и это откроет файл конфигурации. Здесь я просто указываю наш сервер RunPod и
00:09:11в нем выбрана модель Diffusion GEMMA. Вы можете просто сохранить этот файл и запустить OpenCode.
00:09:17В этом тесте я попрошу ее создать дашборд для отслеживания личных финансов под названием «Ledger».
00:09:24Посмотрим, как быстро она сможет его сгенерировать. Смотрите. Она мгновенно начинает стримить ответ.
00:09:34Посмотрите, насколько это бешено быстро. Боже мой. Ого. Это безумие. А здесь, в логах,
00:09:43мы видим, что в среднем получается 700 токенов в секунду. Так что для фазы вывода немного упало,
00:09:50но во время фазы рассуждений она доходила до 700 токенов в секунду. Это безумие. Давайте
00:09:58откроем его. Итак, похоже на дашборд. Это неплохо. Хорошо, у нас действительно есть категории
00:10:06и прочее. Если мы добавим что-то сюда... О, она действительно добавляет это как расход. Так что
00:10:13расходы на самом деле не обновляются. Так что он не полностью функционален, но по крайней мере некоторые части интерактивны.
00:10:20Для следующей задачи давайте посмотрим, сможет ли она сделать аркадную игру.
00:10:26Итак, запускаем. Снова скорость просто безумная. Окей, эта задача заняла немного больше времени.
00:10:36У нас здесь два файла. Интересно, интересно. Окей. Она заметила опечатку, а затем
00:10:44снова обработала HTML-файл, что довольно хорошо. Окей. Ладно, давайте откроем этот. Перезапуск.
00:10:52Ого, это работает. Ого, это круто. Вау. Очень мило. Это впечатляет. Итак, игра
00:11:03полностью функциональна, и на генерацию этой игры ушло 14 секунд. 14 секунд на генерацию такой игры.
00:11:11Так что, хотя на маркетинговой странице было сказано, что мы можем ожидать скорости в тысячу токенов в секунду на H
00:11:18100, это не то, что я наблюдал. Не знаю. Может, есть что-то, что нужно подправить в
00:11:26шаблоне или моих запросах, но, тем не менее, я искренне впечатлен. Это зверь. Итак, друзья,
00:11:33вот вам Diffusion Gemma в двух словах. Я думаю, это один из самых интересных релизов
00:11:38года, потому что он доказывает, что можно взять совершенно другую парадигму генерации из мира изображений,
00:11:44наложить ее на существующую модель, которую вы уже обучили, и разблокировать реальный прирост скорости для локального пользователя.
00:11:51И я думаю, это также открывает дверь для целого семейства быстрых интерактивных локальных моделей,
00:11:58которые используют полный потенциал вашего железа вместо того, чтобы оставлять его простаивать. Итак, что вы думаете
00:12:04о Diffusion Gemma? Пробовали ли вы ее? Будете ли использовать? Дайте знать в комментариях ниже.
00:12:09И друзья, если вам нравятся подобные технические разборы, пожалуйста, дайте мне знать, нажав на
00:12:14кнопку лайка под видео. И также не забудьте подписаться на наш канал. С вами был
00:12:19Андрус из Betterstack, и увидимся в следующих видео.

Key Takeaway

DiffusionGemma повышает скорость генерации текста до 1000 токенов в секунду, используя методы диффузии из генераторов изображений для параллельного заполнения 256 токенов вместо их поочередного написания.

Highlights

  • DiffusionGemma генерирует текст со скоростью до 700-1000 токенов в секунду за счет параллельного предсказания всех 256 токенов на «холсте» вместо последовательной авторегрессии.

  • Архитектура модели переключается между режимом энкодера для анализа запроса и режимом денойзера для очистки сгенерированного текста от «шума» в несколько проходов.

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

  • Модель эффективна для локальных задач, таких как редактирование кода или заполнение пропущенных фрагментов данных, благодаря нелинейному способу генерации.

  • Тестирование на графическом процессоре H100 показало способность модели генерировать функциональный HTML-код для игры за 14 секунд.

Timeline

Ограничения авторегрессионных моделей

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

Стандартные модели (например, GPT или Claude) тратят основные ресурсы не на вычисления, а на загрузку данных. В облачных средах это решается объединением 256 пользователей в один пакет, но при локальном использовании GPU вынужден ждать формирования каждого следующего токена.

Принцип работы DiffusionGemma

  • Модель начинает с заполнения 256 позиций случайным шумом, а затем итеративно уточняет их в несколько проходов.
  • Использование метода «диффузии в равномерном состоянии» позволяет модели корректировать токены в любой позиции на основе уже уточненных данных.
  • Архитектура использует патч энкодера-денойзера на базе модели Gemma 4 и заменяет причинно-следственное внимание на двунаправленное.

Вместо последовательной генерации модель заполняет весь контекстный холст сразу. Итеративное уточнение позволяет системе видеть все предсказания одновременно и исправлять ошибки, допущенные на ранних этапах, что переводит модель из состояния ограниченности памятью в состояние ограниченности вычислительной мощностью GPU.

Практическое тестирование и производительность

  • Модель лучше всего подходит для встроенного редактирования, заполнения кода и нелинейных задач, таких как решение судоку.
  • Тестирование на GPU H100 показало скорость около 700 токенов в секунду при выполнении реальных запросов.
  • Полностью функциональная аркадная игра была создана моделью за 14 секунд.

Хотя заявленная скорость достигает 1000 токенов в секунду, практические тесты с использованием Docker-контейнера и VLLM на RunPod демонстрируют стабильные 700 токенов. Модель не заменяет стандартную Gemma 4 по качеству ответов, но предлагает значительное преимущество в скорости для итеративной разработки кода.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video