Как выбрать подходящее решение на основе ИИ/МО для приложения

Это руководство поможет вам интегрировать в свои приложения решения Google на основе генеративного искусственного интеллекта и машинного обучения (ИИ/МО). В нем рассказывается о различных решениях на основе искусственного интеллекта и машинного обучения, а также о том, как выбрать подходящее. Цель этого документа – помочь вам выбрать подходящий инструмент, исходя из ваших потребностей и вариантов использования.

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

Это руководство поможет вам выбрать подходящее решение на основе ИИ для вашего приложения. Учитывайте следующие факторы: тип данных (текст, изображения, аудио, видео), сложность задачи (от простого обобщения до сложных задач, требующих специальных знаний) и размер данных (короткие входные данные или большие документы). Это поможет вам решить, использовать ли Gemini Nano на устройстве или облачный ИИ Firebase (Gemini Flash или Gemini Pro).

Блок-схема для принятия решений об использовании генеративного ИИ. Критерии включают тип данных (текст, изображение, аудио, видео, сгенерированное изображение), сложность (пересказ, перефразирование, знания предметной области) и контекстное окно (короткий ввод/вывод, обширные документы/медиафайлы). В результате выбирается либо генеративный ИИ на устройстве (Gemini Nano), либо логика ИИ Firebase (Gemini Flash, Pro).
Изображение 1. На этой иллюстрации представлено общее руководство по решениям, которое поможет вам найти подходящее решение на основе ИИ или ML для вашего приложения для Android. Более подробную информацию о вариантах использования ИИ и ML можно найти в руководстве по решениям, которое приведено далее в этом документе.

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

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

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

Gemini Nano позволяет выполнять логический вывод непосредственно на устройстве Android. Если вы работаете с текстом, изображениями или аудио, начните с API GenAI из ML Kit, чтобы получить готовые решения. API генеративного ИИ ML Kit работают на базе Gemini Nano, используя AICore в качестве базовой системной службы, и оптимизированы для выполнения определенных задач на устройстве. API GenAI из ML Kit – это идеальный вариант для добавления в приложения функций на основе генеративного ИИ, поскольку они имеют более высокий уровень интерфейса и масштабируемость. Эти API позволяют отправлять запросы на естественном языке с текстовыми и графическими входными данными, что позволяет решать различные задачи, например распознавать изображения, выполнять краткие переводы, составлять краткие пересказы и т. д.

Для традиционных задач машинного обучения вы можете реализовать собственные модели. Мы предлагаем надежные инструменты, такие как ML Kit, MediaPipe, LiteRT и функции доставки Google Play, которые помогут вам оптимизировать процесс разработки.

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

Как интегрировать продвинутые модели Gemini

Разработчики Android-приложений могут интегрировать в них передовые возможности на основе генеративного ИИ от Google, в том числе мощные модели Gemini Pro и Gemini Flash, с помощью Firebase AI Logic SDK. Этот SDK предназначен для работы с большими объемами данных и предоставляет расширенные возможности и адаптивность за счет доступа к высокоэффективным мультимодальным ИИ-моделям.

С помощью Firebase AI Logic SDK разработчики могут с минимальными усилиями выполнять клиентские вызовы к ИИ-моделям от Google. Эти модели, например Gemini Pro и Gemini Flash, выполняют инференс в облаке и позволяют приложениям Android обрабатывать различные входные данные, включая изображения, аудио, видео и текст. Gemini Pro отлично подходит для решения сложных задач и анализа больших объемов данных, а модели Gemini Flash отличаются высокой скоростью и окном контекста, достаточно большим для большинства задач.

Гибридный вывод

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

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

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

Подробнее о гибридных решениях…

Когда использовать традиционное машинное обучение

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

Традиционные фреймворки машинного обучения предлагают надежные, оптимизированные и часто более практичные решения для приложений, которые анализируют входные данные, определяют признаки или делают прогнозы на основе изученных закономерностей, а не генерируют совершенно новые выходные данные. Такие инструменты, как ML Kit, LiteRT и MediaPipe от Google, предоставляют мощные возможности, специально разработанные для этих негенеративных вариантов использования, особенно в мобильных и периферийных вычислительных средах.

Начните интеграцию машинного обучения с помощью ML Kit

ML Kit предлагает готовые к использованию и оптимизированные для мобильных устройств решения для распространенных задач машинного обучения, не требующие предварительного опыта в этой области. Этот простой в использовании мобильный SDK позволяет добавить в приложения для Android и iOS функции машинного обучения от Google. Благодаря этому вы сможете сосредоточиться на разработке функций, а не на обучении и оптимизации моделей. ML Kit предоставляет готовые API и модели для таких функций, как сканирование штрихкодов, распознавание текста (OCR), распознавание лиц, распознавание объектов и их отслеживание, идентификация языка и быстрые ответы.

Обычно такие модели оптимизированы для выполнения на устройстве, что обеспечивает низкую задержку, возможность работы в офлайн-режиме и повышенную конфиденциальность пользователя, поскольку данные часто остаются на устройстве. Используйте ML Kit, чтобы быстро добавить в мобильное приложение проверенные функции машинного обучения без необходимости обучать модели или генерировать выходные данные. Она идеально подходит для эффективного добавления в приложения "умных" функций с помощью оптимизированных моделей Google или пользовательских моделей TensorFlow Lite.

Начните работу с помощью подробных руководств и документации на сайте для разработчиков ML Kit.

Развертывание специальных моделей машинного обучения с помощью LiteRT

Чтобы получить больше контроля или развернуть собственные модели машинного обучения, используйте специальный стек машинного обучения, созданный на основе LiteRT и сервисов Google Play. Этот стек содержит все необходимое для развертывания высокопроизводительных функций ML. LiteRT – это набор инструментов, оптимизированный для эффективного запуска моделей TensorFlow на мобильных, встроенных и пограничных устройствах с ограниченными ресурсами. Он позволяет запускать значительно меньшие и более быстрые модели, которые потребляют меньше памяти, энергии и места на диске. Среда выполнения LiteRT оптимизирована для различных аппаратных ускорителей (GPU, DSP, NPU) на периферийных устройствах, что позволяет выполнять вывод с низкой задержкой.

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

Подробнее о развертывании ML с помощью LiteRT…

Как добавить в приложения функции восприятия в реальном времени с помощью MediaPipe

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

Основанные на графах конвейеры MediaPipe можно настраивать, адаптируя решения для приложений Android, iOS, веб-приложений, приложений для ПК и серверных приложений. Выбирайте MediaPipe, если вашему приложению нужно мгновенно понимать и реагировать на данные датчиков в реальном времени, особенно видеопотоки, для таких задач, как распознавание жестов, эффекты дополненной реальности, отслеживание физической активности или управление аватаром. Все эти задачи связаны с анализом и интерпретацией входных данных.

Изучите решения и начните разработку с помощью MediaPipe.

Как интегрировать приложение с помощником на устройстве

Если раньше интеграция ИИ была направлена на то, чтобы добавить ИИ в приложение, то теперь можно сделать наоборот. Добавив функции своего приложения в системные ИИ-функции, вы разрешите системным помощникам (например, Gemini) находить и вызывать возможности вашего приложения агентным способом. AppFunctions – основной способ интеграции, позволяющий приложению стать частью экосистемы ИИ Android. Если же ваше приложение содержит встроенных агентов, которым нужно возвращать пользователям интерактивный интерфейс, используйте Jetpack Compose A2UI Renderer, чтобы показывать интерфейсы, управляемые агентами, в нативном виде.

Как выбрать подход

Чтобы улучшить приложение для Android с помощью ИИ, можно использовать три основных подхода: выполнять обработку на устройстве, использовать облачные модели или добавить функции приложения в ИИ на уровне системы. Такие инструменты, как ML Kit, Gemini Nano и LiteRT, позволяют использовать возможности устройства, а облачные API Gemini с Firebase AI Logic обеспечивают мощную обработку в облаке. AppFunctions – это третий способ интегрировать приложение с ИИ. Он позволяет сделать функции приложения доступными для системы в виде агентов.

При выборе подхода учитывайте следующие факторы:

Разложение на множители Решения на устройстве Облачные решения
Подключение и функции офлайн Идеально подходит для использования в офлайн-режиме, поскольку работает без подключения к сети. Для связи с удаленными серверами требуется подключение к сети.
Конфиденциальность данных Обрабатывает и хранит конфиденциальные данные локально на устройстве. Данные передаются в облако, поэтому необходимо доверять поставщику услуг.
Оптимизация для поиска и охват Прямая интеграция с ОС (AppFunctions) позволяет помощникам обнаруживать функции. Обычно это можно сделать только в интерфейсе приложения или с помощью определенных интеграций API.
Возможности модели Оптимизировано для задач, требующих низкой задержки и невысокой вычислительной мощности. Мощные модели, способные обрабатывать сложные запросы и большие объемы данных.
Сведения о расходах Нет прямых платежей за использование. Используется существующее оборудование устройства. Обычно включает оплату в зависимости от использования или постоянную абонентскую плату.
Ресурсы устройств Использует локальное хранилище, ОЗУ и заряд батареи. Минимальное влияние на локальные ресурсы, поскольку основная нагрузка приходится на сервер.
Точная настройка Ограниченная гибкость, обусловленная возможностями локального оборудования. Более гибкие возможности для расширенной настройки и масштабной оптимизации.
Межплатформенная согласованность Доступность зависит от ОС и поддержки оборудования. Единообразный интерфейс на любой платформе с доступом к интернету.

Тщательно изучив требования к вашему варианту использования и доступные варианты, вы сможете найти идеальное решение на основе ИИ/ML, которое поможет вам улучшить приложение для Android и сделать его более интеллектуальным и персонализированным для пользователей.


Руководство по решениям на основе ИИ и машинного обучения

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

Какова основная цель ИИ-функции?


Классическое машинное обучение и восприятие

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

Какую задачу вы выполняете?

  • А) Вам нужно быстро интегрировать готовые распространенные функции ML для мобильных устройств? (например, сканирование штрихкодов, распознавание текста (OCR), распознавание лиц, распознавание изображений, обнаружение объектов и их отслеживание, определение языка, базовые быстрые ответы).
    • → Использовать: ML Kit (традиционные API)
    • Причина выбора. Это самый простой способ интеграции для решения стандартных задач ML на мобильных устройствах. Кроме того, он часто оптимизирован для использования на устройстве (низкая задержка, офлайн-режим, конфиденциальность).
  • Б) Вам нужно обрабатывать данные потоковой передачи в реальном времени (например, видео или аудио) для задач восприятия? (например, отслеживание рук, оценка позы, сетка лица, обнаружение и сегментация объектов в видео в реальном времени)
    • → Используйте: MediaPipe
    • Причина изменений. Фреймворк, предназначенный для высокопроизводительных конвейеров восприятия в реальном времени на различных платформах.
  • В) Вам нужно эффективно запускать на устройстве собственную модель машинного обучения (например, для классификации, регрессии или обнаружения), уделяя особое внимание производительности и низкому потреблению ресурсов?
    • → Используйте LiteRT (TensorFlow Lite Runtime).
    • Причина изменений. Оптимизированная среда выполнения для эффективного развертывания специальных моделей на мобильных и пограничных устройствах (небольшой размер, быстрый инференс, аппаратное ускорение).
  • Г) Вам нужно обучить собственную модель машинного обучения для определенной задачи?
    • → Использование: LiteRT (TensorFlow Lite Runtime) + обучение собственной модели
    • Причина изменений. Предоставляет инструменты для обучения и развертывания собственных моделей, оптимизированных для мобильных и периферийных устройств.
  • Д) Вам нужна расширенная классификация контента, анализ тональности текста или перевод на множество языков с учетом нюансов?
    • Подумайте, подойдут ли традиционные модели ML (возможно, развернутые с помощью LiteRT или облака), или для расширенного NLU требуются генеративные модели (вернитесь к началу и выберите вариант А). Для облачной классификации, анализа тональности или перевода:
    • → Использование: облачные решения (например, Google Cloud Natural Language API, Google Cloud Translation API, потенциально доступные через специальный серверный код или Gemini Enterprise Agent Platform). (более низкий приоритет, чем у вариантов на устройстве, если нет подключения к интернету или важна конфиденциальность).
    • Причина изменений. Облачные решения предлагают мощные модели и поддержку множества языков, но требуют подключения к интернету и могут быть платными.

Генеративный ИИ

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

Требуется ли, чтобы ИИ работал офлайн, нужна ли максимальная конфиденциальность данных (чтобы пользовательские данные хранились на устройстве) или вы хотите избежать расходов на облачный инференс?

  • А) Да, офлайн-доступ, максимальная конфиденциальность или отсутствие расходов на облако имеют решающее значение.
  • Б) Нет. Подключение доступно и приемлемо, облачные возможности и масштабируемость важнее, или для определенных функций требуется облако.

Генеративный искусственный интеллект на устройстве (Gemini Nano)

Ограничения. Требуются совместимые устройства Android, ограниченная поддержка iOS, модели менее мощные, чем облачные аналоги.

С помощью API Prompt из ML Kit можно отправлять запросы на естественном языке, используя только текст или текст и изображение. Это позволяет решать различные задачи, например распознавать изображения, выполнять краткие переводы и создавать краткие пересказы. Если ваши задачи можно решить с учетом этих ограничений на количество токенов, то API генеративного ИИ ML Kit – лучший вариант для использования генеративного ИИ на устройстве. Кроме того, ML Kit предлагает оптимизированные API для выполнения распространенных задач, таких как создание кратких пересказов и быстрых ответов.

  • → Использование: ML Kit GenAI API (на основе Gemini Nano)
  • Причина изменений. Это самый простой способ интегрировать задачи генеративного ИИ на устройстве с помощью запросов на естественном языке. Это решение для устройства имеет наивысший приоритет.

Генеративный искусственный интеллект в облаке

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

Что для вас важнее: простота интеграции с Firebase или максимальная гибкость и контроль?

  • А) Вы предпочитаете более простую интеграцию и управляемый API и, вероятно, уже используете Firebase?
    • → Использовать: Firebase AI Logic SDK → Перейти к Firebase AI Logic
  • Б) Вам нужна максимальная гибкость, доступ к широкому спектру моделей (включая сторонние и собственные), расширенные возможности тонкой настройки и вы готовы управлять собственной интеграцией с внутренними системами (более сложной)?
    • → Использование: Gemini API с настраиваемым облачным сервером (на платформе Google Cloud)
    • Преимущества. Этот вариант дает наибольший контроль, доступ к широкому спектру моделей и возможность настраивать обучение, но требует значительных усилий по разработке. Подходит для сложных, масштабных или узкоспециализированных задач.

(Вы выбрали Firebase AI Logic SDK.) Какая задача генерации и профиль производительности вам нужны?

  • А) Вам нужно сбалансировать производительность и стоимость, чтобы создавать тексты, краткие пересказы или чат-ботов, где важна скорость?
    • → Используйте: Firebase AI Logic SDK с Gemini Flash
    • Причина изменений. Оптимизация для скорости и эффективности в управляемой среде Google Cloud.
  • Б) Вам нужно более высокое качество и возможности для создания сложных текстов, рассуждений, расширенного понимания естественного языка или следования инструкциям?
    • → Используйте: Firebase AI Logic SDK с Gemini Pro
    • Причина изменений. Более мощная текстовая модель для сложных задач, доступная через Firebase.

AppFunctions

Чтобы интегрировать приложение с функциями ИИ, вам нужно расширить его возможности.

  • → Использовать: AppFunctions
  • Причина: Позволяет системным ИИ-функциям, например Ассистенту, обнаруживать и использовать возможности вашего приложения.

Как использовать агентов для создания интерфейса с помощью Jetpack Compose и Material 3

Вам нужно отрисовывать интерактивный интерфейс, созданный или запрошенный ИИ-агентами, в своем приложении.

  • → Используйте: средство отрисовки A2UI Jetpack Compose
  • Причина изменений. Агенты могут "говорить на языке интерфейса", используя протокол A2UI (от агента к интерфейсу). Это позволяет преобразовывать динамические ответы агентов в нативные компоненты Jetpack Compose и Material 3 с полной обработкой состояний и событий.