От Gemma 3 270M к FunctionGemma: как Google AI создал компактного специалиста по вызову функций для периферийных рабочих нагрузок

Google выпустила FunctionGemma — специализированную версию модели Gemma 3 270M, обученную для вызова функций и предназначенную для работы в качестве периферийного агента, который сопоставляет естественный язык с исполняемыми действиями API.

Что такое FunctionGemma?

FunctionGemma — это трансформер с 270 миллионами параметров, основанный на Gemma 3 270M. Он использует ту же архитектуру, что и Gemma 3, и выпущен как открытая модель под лицензией Gemma. Однако цель обучения и формат чата ориентированы на вызов функций, а не на диалог в свободной форме.

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

С точки зрения интерфейса, FunctionGemma представлена как стандартная казуальная языковая модель. Входные и выходные данные — это текстовые последовательности с входным контекстом в 32 тыс. токенов и бюджетом выходных данных до 32 тыс. токенов на запрос, общим с длиной ввода.

Архитектура и обучающие данные

Модель использует архитектуру трансформера Gemma 3 и тот же масштаб в 270 миллионов параметров, что и Gemma 3 270M. В стеке обучения и выполнения используются исследования и инфраструктура, применявшиеся для Gemini, включая JAX и ML Pathways на больших кластерах TPU.

FunctionGemma использует словарь Gemma объёмом 256 тыс. слов, который оптимизирован для структур JSON и многоязычного текста. Это повышает эффективность использования токенов для схем функций и ответов инструментов и сокращает длину последовательности для периферийных развёртываний, где важны задержка и память.

Модель обучена на 6 триллионах токенов с отсечкой знаний в августе 2024 года. Набор данных сосредоточен на двух основных категориях:
* определения общедоступных инструментов и API;
* взаимодействие с инструментами, включающее запросы, вызовы функций, ответы функций и последующие сообщения на естественном языке, которые суммируют выходные данные или запрашивают уточнение.

Этот обучающий сигнал учит как синтаксису (какая функция должна быть вызвана и как форматировать аргументы), так и намерениям (когда вызывать функцию и когда запрашивать дополнительную информацию).

Формат беседы и управляющие токены

FunctionGemma не использует формат чата в свободной форме. Она ожидает строгого шаблона беседы, который разделяет роли и регионы, связанные с инструментами. Повороты беседы заключаются в маркеры `ofturn>role … ofturn>`, где ролями обычно являются разработчик, пользователь или модель.

Внутри этих ходов FunctionGemma опирается на фиксированный набор пар управляющих токенов:
* `functiondeclaration>` и `functiondeclaration>` для определений инструментов;
* `functioncall>` и `functioncall>` для вызовов инструментов моделью;
* `functionresponse>` и `functionresponse>` для сериализованных выходных данных инструментов.

Эти маркеры позволяют модели различать естественный язык, схемы функций и результаты выполнения. API Hugging Face `applychattemplate` и официальные шаблоны Gemma автоматически генерируют эту структуру для сообщений и списков инструментов.

Тонкая настройка и производительность мобильных действий

FunctionGemma уже обучена для общего использования инструментов, но в официальном руководстве по мобильным действиям и на карточке модели подчёркивается, что небольшие модели достигают уровня надёжности, пригодного для промышленного использования, только после тонкой настройки под конкретные задачи.

Демонстрация мобильных действий использует набор данных, где каждый пример предоставляет небольшой набор инструментов для операций с Android-системой, например, создание контакта, установка события в календаре, управление фонариком и просмотр карты. FunctionGemma учится сопоставлять такие высказывания, как «Создать событие в календаре на обед завтра» или «Включить фонарик», с этими инструментами со структурированными аргументами.

На этапе оценки мобильных действий базовая модель FunctionGemma достигает 58% точности на отдельном тестовом наборе. После тонкой настройки с использованием общедоступного рецепта точность увеличивается до 85%.

Периферийные агенты и эталонные демонстрации

Основная цель развёртывания FunctionGemma — периферийные агенты, которые запускаются локально на телефонах, ноутбуках и небольших ускорителях, таких как NVIDIA Jetson Nano. Небольшой объём параметров (0,3 миллиарда) и поддержка квантования позволяют выполнять вычисления с низкой памятью и задержкой на потребительском оборудовании.

Google предоставляет несколько эталонных примеров через Google AI Edge Gallery:
* Мобильные действия демонстрируют полностью автономного агента в автономном стиле для управления устройствами с использованием FunctionGemma, настроенного на наборе данных мобильных действий и развёрнутого на устройстве.
* Tiny Garden — это игра с голосовым управлением, где модель разлагает команды, такие как «Высадить подсолнухи в верхнем ряду и полить их», на конкретные функции предметной области, такие как `plantseed` и `waterplots`, с явными координатами сетки.
* FunctionGemma Physics Playground работает полностью в браузере с использованием `Transformers.js` и позволяет пользователям решать физические головоломки с помощью инструкций на естественном языке, которые модель преобразует в действия моделирования.

Эти демонстрации подтверждают, что FunctionGemma с 270 миллионами параметров может поддерживать многошаговую логику на устройстве без обращений к серверу при соответствующей тонкой настройке и интерфейсах инструментов.

Ключевые выводы

* FunctionGemma — это вариант Gemma 3 с 270 миллионами параметров, предназначенный только для текста, обученный специально для вызова функций, а не для открытого чата, и выпущенный как открытая модель в соответствии с условиями использования Gemma.
* Модель сохраняет архитектуру трансформера Gemma 3 и словарь токенов объёмом 256 тыс., поддерживает 32 тыс. токенов на запрос, совместно используемых между вводом и выводом, и обучена на 6 триллионах токенов.
* FunctionGemma использует строгий шаблон чата с `ofturn>role … ofturn>` и выделенными управляющими токенами для объявлений функций, вызовов функций и ответов функций, что необходимо для надёжного использования инструментов в производственных системах.
* На бенчмарке мобильных действий точность повышается с 58% для базовой модели до 85% после тонкой настройки под конкретную задачу, показывая, что небольшим системам вызова функций нужны данные предметной области больше, чем разработка запросов.
* Масштаб в 270 миллионов и поддержка квантования позволяют FunctionGemma работать на телефонах, ноутбуках и устройствах класса Jetson, а модель уже интегрирована в такие экосистемы, как Hugging Face, Vertex AI, LM Studio и периферийные демонстрации, такие как Mobile Actions, Tiny Garden и Physics Playground.

1. Какова основная цель разработки FunctionGemma?

Основная цель разработки FunctionGemma — переводить инструкции пользователя и определения инструментов в структурированные вызовы функций, а затем, при необходимости, суммировать ответы инструментов для пользователя.

2. Какие параметры и архитектура используются в FunctionGemma?

FunctionGemma — это трансформер с 270 миллионами параметров, основанный на Gemma 3 270M. Модель использует архитектуру трансформера Gemma 3 и тот же масштаб в 270 миллионов параметров, что и Gemma 3 270M.

3. Какие данные использовались для обучения FunctionGemma?

FunctionGemma обучена на 6 триллионах токенов с отсечкой знаний в августе 2024 года. Набор данных сосредоточен на двух основных категориях: определения общедоступных инструментов и API; взаимодействие с инструментами, включающее запросы, вызовы функций, ответы функций и последующие сообщения на естественном языке.

4. Как FunctionGemma обеспечивает точность при выполнении мобильных действий?

На этапе оценки мобильных действий базовая модель FunctionGemma достигает 58% точности на отдельном тестовом наборе. После тонкой настройки с использованием общедоступного рецепта точность увеличивается до 85%.

5. Для каких устройств и систем предназначена FunctionGemma?

FunctionGemma предназначена для периферийных агентов, которые запускаются локально на телефонах, ноутбуках и небольших ускорителях, таких как NVIDIA Jetson Nano. Небольшой объём параметров (0,3 миллиарда) и поддержка квантования позволяют выполнять вычисления с низкой памятью и задержкой на потребительском оборудовании.

Источник