Новая ИИ-модель от Google генерирует более 1000 токенов в секунду (DiffusionGemma)
BBetter Stack
컴퓨터/소프트웨어게임/e스포츠
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, и увидимся в следующих видео.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video