Как найти подходящее решение на основе ИИ или машинного обучения для вашей функции

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

В целом, выбирая инструменты и модели для реализации функции ИИ/ML, вы должны использовать самую простую модель, которая соответствует вашим потребностям. Чтобы определить оптимальное решение, вам нужно продумать следующее:

  • Должна ли функция генерировать новый контент (генеративный ИИ) или прогнозировать/классифицировать детерминированным образом (традиционное машинное обучение)?
  • Область применения функции. Можно ли выполнить задачу полностью в вашем приложении (интеллектуальные функции в приложении) или для этого требуется несколько приложений (интеллектуальные функции на уровне системы)?
  • Расположение модели. Можно ли выполнить задачу офлайн (модель на устройстве) или требуется взаимодействие с сервером (облачная модель)?
  • Версия набора инструментов или модели. Насколько сложна задача? Это может быть как простая задача с одним выводом, так и мультиагентная оркестрация.

На следующей блок-схеме показан процесс принятия решений на высоком уровне:

Да Нет Да Нет Да Нет Да Не все Да Нет Функция Нужно ли вам генерировать новый контент (а не прогнозировать или классифицировать данные)? Генеративный искусственный интеллект Задача выполняется в нескольких приложениях? Традиционное машинное обучение Системный ИИ Используйте AppFunctions ИИ в приложении Может ли функция работать офлайн или у вас есть ограничения по стоимости? Поддерживают ли целевые устройства встроенные модели? Должна ли функция продолжать работать (сохранять состояние), когда приложение закрыто, или требуется ли доступ к частной базе данных? Модель на устройстве Используйте Gemini Nano через ML Kit или LiteRT Гибридный подход Используйте модели на устройстве, но в качестве резервных выбирайте облачные модели Облачная модель Используйте собственный сервер Облачная модель Используйте управляемый сервер через Firebase AI Logic
Рисунок 1. Общий процесс принятия решений при выборе решения на основе ИИ или машинного обучения.

Чтобы принять решение на каждом этапе, обратитесь к разделам в оставшейся части этого документа.

Генеративный ИИ и традиционное машинное обучение

Модели генеративного ИИ создают новый контент, тогда как традиционные модели машинного обучения прогнозируют результаты или классифицируют данные полностью детерминированным образом. Если ваша функция не предполагает генерацию нового контента, то традиционных решений ML может быть достаточно. В таблице ниже приведены некоторые традиционные решения на основе машинного обучения.

Инструменты и решения Тип Основной пример использования Примеры
ML Kit SDK Только с устройства Готовые задачи для обработки изображений и естественного языка
  • Сканер чеков с оптическим распознаванием символов
  • Быстрая регистрация на мероприятия по QR-коду
  • Перевод меню офлайн
LiteRT Только с устройства Среды выполнения пользовательских моделей
  • Классификация медицинских изображений
  • Умная клавиатура с подсказками слов для узкоспециализированных тем
MediaPipe Только с устройства Задачи по распознаванию видео- или аудиопотока в реальном времени.
  • Подсказки по позам во время тренировок в реальном времени
  • Фильтры и эффекты для лица
  • Распознавание жестов рукой
Google Cloud API, включая Cloud Vision API и Cloud Natural Language API. Облачные Готовые задачи для обработки изображений и естественного языка
  • Автоматические субтитры к видео
  • Контроль качества изображений и соответствие требованиям
Платформа агента Облачные Обучение и развертывание пользовательской модели
  • Специализированное распознавание изображений в больших масштабах
  • Поиск снимков из фотобанков

Остальная часть этого документа посвящена решениям на основе генеративного ИИ.

ИИ в приложении и на уровне системы

Чтобы выбрать оптимальное решение на основе генеративного искусственного интеллекта, определите, работает ли ваша ИИ-функция полностью в приложении или ей требуется взаимодействовать с другими приложениями или ОС Android. Если функция запускается системой, а не приложением, она считается ИИ-функцией на уровне системы. В таблице ниже приведены различия между функциями искусственного интеллекта в приложениях и на уровне системы.

Умные функции в приложении Системные ИИ-функции
Область действия задачи Приложения В разных приложениях (или запущенные системой, вне приложений)
Инструменты ML Kit SDK, LiteRT, Firebase AI Logic или собственный сервер AppFunctions
Примеры использования
  • Как обобщить, проверить или расшифровать текст
  • Описание изображений
  • Создайте чат-бота для приложения
  • Создать изображения
  • Составить список покупок в приложении доставки на основе того, что вы написали в заметках.
  • Закажите поездку до офиса и отправьте коллеге сообщение с расчетным временем прибытия.
  • Найдите в почте рекомендацию ресторана и забронируйте столик.

Умные функции в приложении

Функции искусственного интеллекта в приложении не должны взаимодействовать с другими приложениями или системой. Если вы решили, что ИИ-функция будет работать только в приложении, определите, будет ли она выполняться полностью на устройстве, использовать облачную модель или сочетать оба подхода.

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

Только с устройства Cloud
Инструменты ML Kit SDK или LiteRT Firebase AI Logic или собственный сервер
Тип исходных материалов
  • Текст
  • Изображение
  • Аудио
  • Текст
  • Изображение
  • Аудио
  • Видео
Тип выходных данных
  • Текст
  • Текст
  • Изображение
  • Аудио
Конфиденциальность пользовательских данных Более высокое Низкий
Модели
  • Гемма
  • Gemini Nano
  • Gemini Flash
  • Gemini Flash Lite
  • Gemini Pro
Примеры использования
  • Обработка короткого контента, например краткий пересказ, проверка правописания или переписывание короткого сообщения в чате или электронного письма.
  • Описание изображений
  • Персонализация результатов для пользователей на основе их интересов
  • Обработка конфиденциальных пользовательских данных
  • Расшифруйте короткую аудиозапись
  • Создать чат-бота
  • Создать изображения
  • Переводите разговоры в реальном времени
  • Редактирование фото в приложении
  • Задачи для нескольких агентов

Модели на устройстве

Модели на устройстве предпочтительны, если:

  • Ограничения по расходам
  • Функция должна работать в офлайн-режиме
  • Требования конфиденциальности
  • Задача относительно проста и не требует координации нескольких агентов.

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

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

Сложность задачи Характеристики функции Пример Набор инструментов/решение
Низкий
  • Один вывод
  • Только генерация
Кратко пересказать текст
  • ML Kit SDK
  • LiteRT для оптимизированных моделей (узкие домены).
Средний
  • Дополненная LLM
  • Вызов функций
  • История чата
Запрос и ответ
Высокий
  • Цикл с одним агентом, который повторяется до выполнения задачи
Отзывы клиентов или сортировка ошибок

Используйте ML Kit Prompt API для простой одно- или многоэтапной генерации текста. Если для работы функции требуется автономное многоэтапное выполнение на устройстве, используйте ML Kit GenAI Agent API. Agent API поддерживает циклы рассуждений на устройстве, которые могут планировать, вызывать типизированные инструменты с помощью аннотаций @Tool, сохранять контекст сеанса между взаимодействиями и применять ограничения на количество ходов с помощью maxTurns.

Облачные модели

Если функция не может работать полностью на устройстве, вам нужно использовать облачную модель. Есть два основных варианта использования облачной модели:

  • Управляемый бэкенд с помощью Firebase AI Logic. Если вы уже используете Firebase или хотите быстро создать прототип, Firebase AI Logic может стать лучшим решением.

  • Собственный сервер. Если вы хотите использовать модели, отличные от Gemini, у вас строгие требования к конфиденциальности или вам нужно выполнить очень сложную задачу, вам, вероятно, потребуется использовать собственный бэкэнд. Для настройки собственного бэкенда мы также рекомендуем следующие инструменты:

    • Запустите на своем сервере фреймворк для агентов, например Agent Development Kit.
    • Подключите интерфейс приложения к серверному коду агента с помощью AG-UI.
    • Разрешите агентам генерировать интерактивные интерфейсы с помощью A2UI.

В таблице ниже указано, когда следует использовать Firebase AI Logic, а когда – собственный сервер для облачных инструментов генеративного ИИ в приложении.

Сложность задачи Характеристики функции Пример Набор инструментов/решение
Низкий
  • Один вывод
  • Только генерация
Кратко пересказать текст
  • Firebase AI Logic
  • Собственный бэкенд
Средний
  • Дополненная LLM
  • Вызов функций
  • История чата
Запрос и ответ
  • Firebase AI Logic
  • Собственный бэкенд
Высокий
  • Цикл с одним агентом, который повторяется до выполнения задачи
Отзывы клиентов или сортировка ошибок
  • Собственный бэкенд
Очень много
  • Оркестрация нескольких агентов
Создайте команду агентов для управления разными аспектами поездки
  • Собственный бэкенд

Гибридный подход

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

Системные ИИ-функции

ИИ на уровне системы позволяет платформе Android выступать в качестве оркестратора задач. ИИ на уровне системы позволяет системным агентам, таким как Gemini, выполнять запросы пользователей в нескольких приложениях и веб-сервисах.

Чтобы подключить приложение к системе Android Intelligence, выберите метод интеграции в зависимости от того, хотите ли вы использовать программное управление или автоматические действия на основе пользовательского интерфейса:

Вариант интеграции Пример использования
AppFunctions Предоставьте агентам доступ к определенным функциям приложения, чтобы они могли находить и выполнять их на устройстве.
Удаленный MCP-сервер Предоставьте доступ к определенным функциям приложения, чтобы интегрировать их напрямую с бэкендом агента. Подходит для кросс-платформенной разработки.
Управление компьютером Позволяет предустановленному помощнику автоматизировать задачи, напрямую взаимодействуя с интерфейсом приложения.

Дополнительную информацию о системных инструментах ИИ можно найти в статье Как подключить приложение к системе ИИ Android.