Gemma 4 – это мощная мультимодальная модель ИИ, которая работает прямо на устройствах Android. На этом занятии мы проследим, как Gemma превратилась в семейство моделей, созданных для повышения эффективности, и узнаем, на что способны оптимизированные для периферийных устройств модели E2B и E4B на устройстве, от распознавания изображений и аудио до вызова функций агентов. Мы рассмотрим архитектуру, которая обеспечивает такую эффективность, включая эмбеддинги для каждого слоя (PLE), и покажем, как Gemma и Gemini Nano работают вместе через AICore. Вы узнаете, как обучение с учетом квантования (QAT) сохраняет возможности модели в пределах 1,1–3,5 ГБ ОЗУ, а прогнозирование нескольких токенов (MTP) ускоряет декодирование в 1,5–3 раза для быстрого реагирования в реальном времени.
Расшифровка
Сара Смут
Здравствуйте, добро пожаловать на беседу.
Меня зовут Сара, и я руковожу разработкой моделей Gemma.
Сегодня я хочу поговорить о наших моделях.
Я расскажу о возможностях и о том, как мы подходим к разработке для мобильных устройств.
Я расскажу о методах, которые мы используем, чтобы модели эффективно работали на мобильных устройствах.
Я расскажу, как получить к ней доступ и как мы интегрируем ее с AICore.
В конце я покажу несколько демонстраций, чтобы вы могли оценить возможности модели.
Чтобы понять, куда мы движемся, нужно знать, откуда мы пришли.
Мы запустили Gemma 1 в 2024 году.
Мы запустили модель с 2 и 7 миллиардами параметров, только для текста, очень маленьких размеров по сравнению с тем, что происходило в то время.
После Gemma 1 мы запустили Gemma 2 с дополнительными возможностями.
Мы ввели кодирование.
Мы также представили большую модель 27B, которая значительно расширила возможности серии Gemma.
Вскоре после этого была выпущена Gemma 3.
Мы добавили больше возможностей, мультимодальность, а затем и меньшую модель с 270 миллионами параметров, поскольку поняли, что у меньших моделей действительно много вариантов использования, и мы действительно пытаемся помочь реализовать как можно больше вариантов использования мобильных устройств в Интернете.
Поэтому с каждым выпуском наши возможности расширяются, и это делается намеренно.
Мы разрабатываем модели для отдельных устройств, включая телефоны, ноутбуки и графические процессоры. Наша цель – не создать более крупную модель, хотя мы и увеличили количество параметров до 12–27 миллиардов, а добавить больше возможностей в каждую итерацию, не увеличивая размер. Мы хотим, чтобы модели оставались на устройствах и работали локально.
Для этого мы повысили эффективность.
И я собираюсь поговорить о том, что мы сделали специально для Gemma 4 и как мы это сделали.
Мы запустили E2B (я объясню, что значит E), E4B, унифицированную модель 12B (я объясню, почему мы это сделали) и модель MoE.
Все это помогает повысить эффективность и дает разработчикам больше гибкости при создании приложений и других продуктов.
Давайте подробнее рассмотрим возможности, которые мы добавили за последнее время.
Я хочу обратить внимание на несколько вещей, например на длину контекста.
Мы добавили гораздо более длинный контекст, чем в предыдущих версиях Gemma.
Gemma 4 поддерживает контекст до 128 тыс. токенов.
В более крупных моделях – до 256.
Обратите внимание, что ML Kit ограничивает длину контекста, поэтому перед запуском с длиной 128 проверьте, какой у вас бюджет.
Но этого должно быть достаточно, чтобы вы могли читать длинные документы, выполнять расширенные рассуждения, вызывать функции, а также иметь достаточный бюджет для работы с мультимодальностью, использовать зрение и аудио.
Видео – это новая возможность, которую мы добавили в Gemma 3n и усовершенствовали в Gemma 4.
Теперь у нас есть поддержка нескольких языков.
Мы продолжаем обучать модель на разных языках, поэтому у вас есть как встроенная, так и предварительно обученная поддержка языков.
И все это теперь поставляется с совершенно новой лицензией Apache 2, что нас очень радует, поскольку это даст гораздо больше гибкости в том, что вы можете с ней создавать, а также просто значительно уменьшит трение.
Создавать и скачивать модели стало намного проще.
Сара Смут
Итак, зрение. Что мы делаем со зрением?
У Gemma 4 есть переменное соотношение сторон.
Это значит, что изображение не сжимается и не растягивается, чтобы поместиться в квадрат, а сохраняет исходное соотношение сторон.
Это означает, что ваш текст не искажается, объекты не искажаются.
Это значительно улучшает возможности модели.
Формы остаются правильными, а оптическое распознавание символов значительно улучшается благодаря переменному соотношению сторон.
ИИ также может читать диаграммы, таблицы и графики.
Он также может переводить с визуальных подсказок, поэтому вы можете фотографировать слова, и он сможет перевести их для вас.
Она также может рассуждать о физическом мире.
Он может посмотреть на картинку, понять, где что находится и что изображено.
Она может многое.
И ещё одна малоизвестная особенность наших моделей Gemma заключается в том, что вы можете установить бюджет визуальных токенов.
Сейчас я проверю, что есть в ML Toolkit, но у вас большой выбор.
Если вы хотите тратить больше энергии на распознавание изображений с высоким разрешением, вы можете это настроить.
Если вы не хотите использовать этот вариант, вы можете значительно сократить бюджет токенов изображений и вернуть большую часть этой мощности и вычислительных циклов модели для ваших текстовых приложений.
Аудио – относительно новый для нас формат.
Впервые он был представлен в Gemma 3n.
Теперь мы полностью перешли на него в Gemma 4.
Аудио поддерживается только в наших самых маленьких моделях: E2B, E4B и 12B.
Расшифровка будет полностью основана на аудиофайле.
Переводит речь.
Поддерживает более 35 языков.
Мы также предварительно обучили ее на более чем 140 языках, поэтому, если вы хотите иметь возможность использовать язык, который не входит в число наших 35, вы сможете выполнить точную настройку и получить действительно хорошую поддержку для языка, который не поддерживается по умолчанию.
Мы добавили рассуждения агента.
Это также новая функция Gemma 4.
Оно планирует.
Он выполняет многоэтапные задачи.
Она использует инструменты.
Она точно следует инструкциям.
Он возвращает структурированный JSON.
Она может делать все, что вы ожидаете от агентной модели.
Если вы не используете ML Toolkit, а делаете все самостоятельно, обратите внимание на шаблоны чатов.
Шаблоны чата – это сложная тема.
Обращайтесь с ними осторожно.
Если вы используете ML Toolkit, все это делается автоматически.
И наконец, Gemma по-прежнему отлично понимает текст.
Благодаря расширенному контексту мы теперь можем анализировать код, длинные документы и переводить.
Благодаря функциям программирования Android Studio теперь поддерживает Gemma 4 в офлайн-режиме.
Поэтому, если вы хотите использовать Android Studio в офлайн-режиме, для выполнения задач по программированию будет использоваться Gemma 4.
И ещё один важный момент: E2B и E4B достаточно малы, чтобы поместиться и хорошо работать на вашем телефоне.
Так что это очень много возможностей, упакованных в действительно небольшой корпус.
Это очень сложная инженерная задача, и команда Gemma гордится тем, что смогла ее решить.
Вот несколько примеров, демонстрирующих возможности.
Слева показано, что модель может найти ноутбук и вернуть координаты его местоположения.
Затем приложение может нарисовать указатель, показывающий, где находится ноутбук.
В центре модель может идентифицировать объекты, а затем рисовать ограничивающие рамки вокруг этих объектов.
У этого есть интересные применения: обнаружение объектов, уклонение от объектов.
Это очень хорошая возможность.
Справа показано, как модель может читать текст.
Это переводится как "Осторожно, кошка".
Она также понимает, что происходит на изображении, видит кота в забавной позе и может перевести и указать на кульминацию, которая заключается в том, что текст под ним гласит: "Что-то может случиться".
По-моему, это мило.
Указание, обнаружение объектов, оптическое распознавание символов и перевод – все это без специального конвейера обработки изображений.
Давайте посмотрим на результаты оценки.
Демонстрация возможностей всегда важна, но многие люди смотрят на это, и я думаю, что здесь вы можете увидеть силу моделей.
Если вы посмотрите на последние два столбца, то увидите, что E2B превосходит Gemma 3 27B, которая является гораздо более крупной моделью, в рассуждениях, кодировании и агентских задачах.
Поэтому посмотрите на LiveCodeBench.
У Gemma 4 – 44, а у Gemma 3 27B – 29.
AIME также намного выше.
Tau2, который является агентской оценкой, также намного выше, что демонстрирует большую силу.
Если мы добавим ещё несколько параметров, наша модель E4B уверенно превзойдет модель 27B по всем показателям.
Таким образом, при переходе от Gemma 3 к Gemma 4 мы добавили гораздо больше возможностей в то же количество параметров.
Сара Смут
Как это сделать?
Сделать модель более способной, не увеличивая ее размер, – сложная задача.
Если посмотреть на аппаратное обеспечение, у телефонов гораздо меньше памяти.
Я имею в виду, что мы смотрим на 12–16 ГБ по сравнению с 80, которые вы можете получить на сервере.
Пропускная способность также намного меньше: от 50 до 80 ГБ по сравнению с терабайтами, которые вы получите на сервере.
И, наконец, у нас есть серьезные ограничения по мощности.
Поэтому все это нужно учитывать при запуске модели.
И каждый метод, который я собираюсь показать вам далее, нацелен на каждое из этих ограничений и помогает сделать модель более оптимальной для работы на мобильном оборудовании.
Итак, первое, что мы делаем, – мы не используем одну архитектуру для каждого размера.
У каждого размера модели своя архитектура.
В моделях E2B и E4B есть особые элементы, о которых я буду говорить дальше. Но важно знать, что в модели 12B нет кодировщика изображений.
Поэтому в этой модели мы убрали кодировщик изображений, чтобы упростить развертывание и минимизировать количество параметров, необходимых модели.
Обычно это касается аппаратного обеспечения ноутбуков.
Наши большие модели демонстрируют самые широкие возможности.
Они доступны как в виде полносвязной модели, так и в виде смеси экспертов.
Модель Mixture of Experts также может работать на ноутбуках. Мы создали ее, чтобы снизить задержку, которая возникает при использовании архитектуры Expert.
Поэтому в оставшейся части доклада я сосредоточусь на мобильных моделях, то есть E2B и E4B, и расскажу о том, что мы сделали, чтобы они действительно хорошо работали на ваших телефонах.
Хорошо, вот откуда берется буква "E" – эмбеддинги для каждого слоя.
Это интересная инновационная техника, которую мы добавили в модели.
Если вы подумаете о том, как работают модели, то поймете, что для того, чтобы они были умнее, им нужно больше параметров.
Мы работаем над эффективностью параметров, но в целом, чтобы модель была лучше, нужно больше параметров.
И PLE говорит: "Хорошо, нам нужно больше параметров".
Но вместо того, чтобы добавлять больше параметров непосредственно в модель, у нас есть дополнительная таблица встраиваний.
И эта таблица вложений считывается для каждого слоя.
Итак, что вы можете сделать с этим, так это то, что как только у вас появятся токены, которые, как вы знаете, понадобятся модели, вы сможете извлечь встраивания для каждого слоя, которые вам нужны для данной входной последовательности, а затем вы сможете загрузить только эти встраивания в модель.
Таким образом, вы получаете эффективную модель с 2 миллиардами параметров, хотя само количество параметров немного больше.
Вот почему мы говорим, что у нее 2 миллиарда параметров, потому что только эти 2 миллиарда загружаются в вашу память.
Таблица эмбеддингов обычно сохраняется во флеш-памяти, а не в ОЗУ.
Таким образом, вы действительно ограничиваете пропускную способность, поскольку вам не нужно передавать столько параметров, но при этом вы получаете все возможности гораздо более крупной модели.
Кроме того, она занимает меньше ОЗУ на устройстве.
Следующее, что мы добавили, – это модель-черновик.
Для Gemma мы используем модель Multi-Token Prediction.
Это форма спекулятивного декодирования.
Это позволяет предсказывать больше токенов за один проход, чем при использовании обычной авторегрессионной модели.
Поэтому вместо того, чтобы давать Типичные авторегрессионные модели будут делать только один токен за раз, вам нужно пройти через всю модель каждый токен.
MTP предсказывает три или четыре токена за раз, а затем мы используем основную модель для их проверки.
Если эти токены принимаются, они используются, и тогда мы обычно можем получить, скажем, два, три, четыре токена за один проход, а не только один токен за раз.
Это распространенный метод.
Модели Drafter уже доступны.
Что мы сделали по-другому и что особенного в Gemma, так это то, что мы делимся кешем KV из базовой модели.
Поэтому для E2B мы выполняем полное предварительное заполнение, создаем кеш, а затем наша модель черновика использует этот кеш KV.
Таким образом, вы экономите около 130 миллисекунд на запросе из тысячи токенов, потому что вам не нужно заново генерировать предварительное заполнение для модели-черновика.
Наша модель-черновик примерно в 30–40 раз быстрее других подобных моделей.
Если вы посмотрите на цифры, вы увидите ускорение, когда вы используете, когда мы используем модель черновика.
Уровень принятия у нас на 40–60 % выше, чем у большинства моделей-черновиков.
Благодаря модели-черновику задержка декодирования снизилась на 40 %, а энергопотребление – на 30–40 %.
Вы получаете более быстрые ответы, более длительное время автономной работы и никаких изменений в коде.
Это довольно простой и хорошо поддерживаемый инструмент.
Сара Смут
Следующая инновация – квантование.
Квантование – тоже не новая технология, но мы уделяем особое внимание тому, чтобы квантование наших мобильных моделей хорошо работало с аппаратным обеспечением мобильных устройств.
При работе с моделями QAT мы учитываем несколько факторов.
Первый – это QAT, то есть обучение с учетом квантования.
Это означает, что при обучении мы учитываем и признаем тот факт, что будем проводить квантование.
Это помогает модели понять, что параметры будут сгруппированы, и сохранить качество.
Это также помогает сохранить качество, и обычно мы можем уменьшить модель до доли размера.
Если перейти от 16-битной модели к 4-битной и сохранить качество, мы сэкономим много памяти.
E2B поставляется в двух разных квантованиях.
У нас есть формат Q4_0.
Это квантование общего назначения.
Это значение можно изменить.
Это отлично работает с другими библиотеками квантования.
Вы можете поэкспериментировать и найти квантование, которое подойдет для вашего случая.
У нас также есть специальное квантование, которое мы называем мобильным квантованием. Оно очень агрессивное, и мы провели много исследований, чтобы сделать его оптимальным.
Он не так поддерживается в большинстве сред выполнения, и поэтому он есть в ML Kit и в Android Studio, так что вы можете его использовать.
Вы можете использовать его там.
Некоторые из инноваций, которые мы внедрили: мы используем статические кванты активации.
Поэтому, когда вы выполняете квантование, обычно модель, если вы выполняете активацию динамического диапазона, вам нужно вычислять диапазоны на лету, а затем использовать это для выполнения квантования.
Мы уже сделали это за вас, поэтому вам не нужно предварительно вычислять диапазоны.
Ещё мы сделали квантование по каналам.
Мы структурировали и сжали модель по каналам, что отлично подходит для большинства мобильных устройств.
Мы использовали 2-битное квантование.
Таким образом, двухбитное квантование, как правило, приводит к значительным потерям.
Выполнить PTQ очень сложно.
Мы провели исследования и достаточно хорошо понимаем наши модели, чтобы знать, где параметры можно сжать до 2 бит, и хорошо справились с обучением с учетом квантования.
Это позволяет сэкономить много места в хранилище, практически не теряя в качестве.
Наша специальная квантованная модель весит меньше гигабайта, что значительно меньше даже наших 4-битных квантованных моделей.
Ещё одна особенность нашего квантования – квантование эмбеддингов и кеша KV.
Существует множество методов, как сделать и то, и другое.
Мы провели исследование и выяснили, что именно такой подход лучше всего подходит для нашей модели.
И мы объединили это в эти контрольные точки.
Все это значительно снижает нагрузку на активную память.
Это позволяет значительно снизить нагрузку на сервер, поскольку вам не нужно постоянно передавать параметры.
А ещё это позволяет вам управлять и сохранять, ну, знаете, ваши длинные чаты и прочее, не беспокоясь о нехватке места.
Сара Смут
Итак, мы интегрируем через AICore.
В AICore используется модель Gemini Nano 4.
Gemini Nano 4 – это Gemma, созданная и работающая на основе AICore.
AICore выполняет для вас некоторые полезные действия.
Это самый простой путь, и на самом деле я собираюсь поговорить о другом пути очень быстро.
Другой путь – через LiteRT, который является более настраиваемым и практичным.
Если вы выберете этот вариант, модель будет поставляться вместе с приложением.
Она не будет использовать общую модель, размещенную на устройстве.
Поэтому вам нужно будет следить за памятью.
Вам придется следить за энергопотреблением.
Вам придется гораздо больше работать с ресурсами на телефоне и с тем, как вы ими управляете.
Но это дает вам полный контроль.
Вы можете использовать точную настройку с LiteRT, и тогда у вас будет больше возможностей для кастомизации.
Если вы используете AICore, то можете применять API ML Toolkit. Это самый простой способ.
И когда вы используете это, вы получаете много всех этих функций, о которых я говорил, встраивание для каждого слоя обрабатывается соответствующим образом, и мы поддерживаем среду выполнения, в которой параметры не находятся в ОЗУ, а параметры встраивания не находятся в ОЗУ.
В ней уже есть встроенный протокол MTP, поэтому он будет работать автоматически.
Также используется наша мобильная квантизация.
и работает в среде выполнения, которая предназначена для размещения и эффективной работы с этим квантованием.
Итак, она может работать и выполнять задачи с 2-битной точностью, когда это необходимо, что делает ее очень эффективной.
Если вы хотите углубиться в эту тему, есть ещё два доклада, которые уже состоялись или состоятся.
Дэвид расскажет о Gemini Nano 4 и о том, как использовать эту модель через ML Kit. А Чинтан и Фергус объяснят, как работать с LiteRT и разрабатывать приложения с помощью этого инструмента.
Вот как выглядит процесс обработки запроса для Gemma.
Есть поверхность API, которая проходит через некоторую обработку входных данных, и все это встроено для вас.
При обработке входных данных учитываются сигналы безопасности.
AICore обеспечивает встроенную безопасность.
Мы встроили в модель множество функций безопасности.
Это дополнительный уровень защиты для мобильных приложений.
Они будут проходить через конфигурацию функций, а затем через среду выполнения на устройстве.
На выходе также выполняется проверка безопасности.
Она проверяет выходные сигналы, чтобы убедиться, что выходные данные безопасны.
Это дополнительный уровень защиты, который мы добавили в модель.
Она также выполняет обновления и используется в разных приложениях.
Поэтому, если вы создаете несколько приложений или не хотите управлять встроенной моделью, это отличный вариант, и вы получите множество встроенных функций прямо из коробки.
Сара Смут
Теперь перейдем к демонстрации.
Это голосовой помощник.
Я покажу это на ноутбуке.
Обратите внимание, что все работает локально на устройстве.
Она каскадируется с помощью VAD.
Сначала она проходит через STT, затем попадает в Gemma, а затем проходит через TTS, которая является моделью преобразования текста в речь.
Это потоковая передача, и она также работает на модели E2B.
Итак, это точная копия, которая работает на ноутбуке, но это точно такая же модель, которая работает на телефоне.
Все это можно сделать на телефоне.
Эта демонстрация создана с помощью LiteRT.
Также можно использовать ML Kit.
Обратите внимание на задержку, отсутствие обмена данными с сервером туда и обратно и то, как обрабатываются прерывания.
Привет, Gemma. Расскажи немного о себе.
Я Gemma 4, большая языковая модель, разработанная Google DeepMind.
Я обрабатываю текст и изображения, чтобы предоставлять информацию и выполнять задачи.
то идем дальше.
Расскажи немного о Шекспире.
Уильям Шекспир – английский драматург и поэт, которого многие считают величайшим писателем на английском языке.
Хотя подождите.
Знаешь что?
Я хочу узнать о Солнечной системе.
Расскажите об этом.
Солнечная система состоит из Солнца и всего, что гравитационно связано с ним, включая восемь планет, карликовые планеты, луны, астероиды и кометы.
– Здорово!
Можешь объяснить, как устроена черная дыра?
Черная дыра образуется, когда массивная звезда коллапсирует под действием собственной гравитации, создавая область пространства-времени с настолько сильной гравитацией, что ничто, даже свет, не может ее покинуть.
Это так здорово!
Спасибо!
Пожалуйста.
У вас есть ещё вопросы?
Теперь
Есть аудиопомощник.
Хорошо, следующий вопрос.
Это будет локальный помощник, использующий возможности видео.
Она полностью работает офлайн, и чтобы подчеркнуть это, демонстрация проводится в кемпинге, предположительно на природе.
Обратите внимание, что это основано на модели E4B.
Он говорит естественно.
Мы покажем ему, как нужно действовать.
Он использует вызовы инструментов в фоновом режиме и может получать доступ к различным данным на телефоне.
и довольно игривый.
Gemma, у нас сейчас есть интернет?
Нет, сейчас у нас нет подключения к интернету.
Что означает это предупреждение?
Это на испанском.
Этот знак предупреждает о том, что здесь обитают пумы.
В нем говорится, что пумы – часть местной природы и при встрече с ними нужно быть осторожными.
Какова производная этой функции?
Производная функции x в квадрате плюс 7x плюс 10 равна 2x плюс 7.
Это забавно.
О, привет.
Здравствуйте, Синди!
Gemma, когда у нас сегодня групповой поход?
Групповой поход запланирован на 18:00.
Сегодня.
Это пума?
Нет, это собака.
Кто хороший мальчик?
Сара Смут
Хорошо, начинайте строить.
Вот эти ссылки вверху — это ссылки на контрольные точки.
Если вы хотите посмотреть на контрольные точки и код модели, они доступны.
Вы можете использовать машинное обучение – есть Gemma, Gemini Nano 4, ссылка на ML Kit.
Контрольные точки находятся на Hugging Face, а наш код – в базе кода Transformers.
Вы можете посмотреть, что мы сделали.
Вы также можете получить контрольные точки из Kaggle.
Ещё раз напоминаю: если вы хотите узнать больше о ML Kit, посмотрите презентацию Дэвида.
А позже у нас будет презентация LiteRT от Чинтана и Фергуса.
Если вы хотите узнать, как получить доступ к модели и использовать ее в своих приложениях через LiteRT.
Спасибо!
Мне очень интересно, что у вас получится.