Найдите подходящее решение AI/ML для вашего приложения

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

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

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

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

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

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

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

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

Чтобы выйти за рамки основных сценариев использования, предоставляемых API GenAI ML Kit, рассмотрите экспериментальный доступ к Gemini Nano . Экспериментальный доступ к Gemini Nano предоставляет вам более прямой доступ к настраиваемым подсказкам в Gemini Nano.

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

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

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

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

Интегрируйте передовые модели Gemini.

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

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

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

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

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

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

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

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

Начните работу с нашими подробными руководствами и документацией на сайте разработчиков ML Kit .

Пользовательское развертывание машинного обучения с использованием LiteRT

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

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

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

Внедрите в свои приложения обработку данных в реальном времени с помощью MediaPipe.

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

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

Изучите доступные решения и начните создавать приложения с помощью MediaPipe .

Выберите подход: на устройстве или в облаке.

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

Принимая решение, учитывайте следующие факторы:

  • Возможности подключения и работы в автономном режиме : если вашему приложению необходимо надежно работать без подключения к интернету, решения, устанавливаемые непосредственно на устройство, такие как Gemini Nano, идеально подойдут. Облачная обработка по своей природе требует доступа к сети.
  • Конфиденциальность данных : В случаях, когда данные пользователя должны оставаться на устройстве по соображениям конфиденциальности, обработка данных на устройстве предоставляет явное преимущество, поскольку позволяет хранить конфиденциальную информацию локально.
  • Возможности моделей и сложность задач : облачные модели часто значительно больше, мощнее и обновляются чаще, что делает их подходящими для решения сложных задач ИИ или при обработке больших объемов входных данных, где первостепенное значение имеют высокое качество выходных данных и широкие возможности. Более простые задачи могут быть успешно решены моделями, работающими непосредственно на устройстве.
  • Вопросы стоимости : Облачные API обычно предусматривают ценообразование на основе использования, то есть затраты могут масштабироваться в зависимости от количества запросов или объема обрабатываемых данных. Выполнение запросов на устройстве, хотя и обычно бесплатно и не требует прямой оплаты за использование, влечет за собой затраты на разработку и может влиять на ресурсы устройства, такие как время автономной работы и общая производительность.
  • Ресурсы устройства : Встроенные в устройство функции занимают место в памяти устройства пользователя. Также важно учитывать совместимость конкретных встроенных функций, таких как Gemini Nano, чтобы гарантировать, что ваша целевая аудитория сможет использовать эти функции.
  • Тонкая настройка и персонализация : Если вам необходима возможность тонкой настройки моделей под конкретные задачи, облачные решения, как правило, предлагают большую гибкость и более широкие возможности для персонализации.
  • Кроссплатформенная согласованность : Если для вас критически важны согласованные функции ИИ на разных платформах, включая iOS, имейте в виду, что некоторые решения для устройств, такие как Gemini Nano, могут быть еще недоступны на всех операционных системах.

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


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

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

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

  • A) Создание нового контента (текст, описания изображений) или выполнение простой обработки текста (суммирование, корректура или переписывание текста)? → Перейти к разделу «Генеративный ИИ»
  • B) Анализ существующих данных/входных данных для прогнозирования, классификации, обнаружения, понимания закономерностей или обработки потоков в реальном времени (например, видео/аудио)? → Перейти к разделу «Традиционное машинное обучение и восприятие»

Традиционное машинное обучение и восприятие

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

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

  • A) Необходима быстрая интеграция готовых, распространенных функций мобильного машинного обучения? (например, сканирование штрих-кодов, распознавание текста (OCR), распознавание лиц, маркировка изображений, обнаружение и отслеживание объектов, определение языка, базовый интеллектуальный ответ)
    • → Использование: ML Kit (традиционные API)
    • Почему : Простейшая интеграция для решения устоявшихся задач машинного обучения на мобильных устройствах, часто оптимизированная для использования на устройстве (низкая задержка, работа в автономном режиме, конфиденциальность).
  • B) Необходимо ли обрабатывать потоковые данные в реальном времени (например, видео или аудио) для задач распознавания образов? (например, отслеживание рук, оценка позы, создание лицевой сетки, обнаружение и сегментация объектов в видео в реальном времени)
    • → Использовать: MediaPipe
    • Почему : Специализированная платформа для высокопроизводительных конвейеров обработки данных в реальном времени на различных платформах.
  • C) Необходимо эффективно запускать на устройстве собственную обученную модель машинного обучения (например, для классификации, регрессии, обнаружения), уделяя приоритет производительности и низкому потреблению ресурсов?
    • → Используйте: LiteRT (TensorFlow Lite Runtime)
    • Почему : Оптимизированная среда выполнения для эффективного развертывания пользовательских моделей на мобильных и периферийных устройствах (небольшой размер, быстрая обработка результатов, аппаратное ускорение).
  • D) Вам нужно обучить собственную модель машинного обучения для решения конкретной задачи?
    • → Использование: LiteRT (TensorFlow Lite Runtime) + обучение пользовательской модели
    • Почему : Предоставляет инструменты для обучения и развертывания пользовательских моделей, оптимизированных для мобильных и периферийных устройств.
  • E) Требуется расширенная классификация контента, анализ настроений или перевод на множество языков со сложной структурой?
    • Рассмотрите, подходят ли традиционные модели машинного обучения (возможно, развернутые с использованием LiteRT или облачных технологий), или же для решения сложных задач обработки естественного языка требуются генеративные модели (вернитесь к началу, выберите A). Для классификации, анализа настроений или перевода на основе облачных технологий:
    • → Применение: Облачные решения (например, Google Cloud Natural Language API , Google Cloud Translation API , возможно, с использованием собственной серверной части или Vertex AI ) . (Приоритет ниже, чем варианты на устройстве, если важен автономный режим или конфиденциальность).
    • Почему : Облачные решения предлагают мощные модели и обширную языковую поддержку, но требуют подключения к сети и могут повлечь за собой дополнительные расходы.

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

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

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

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

Генеративный ИИ непосредственно на устройстве (с использованием Gemini Nano)

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

Соответствует ли ваш сценарий использования задачам, которые можно упростить с помощью API GenAI в ML Kit? (суммирование текста, проверка орфографии, переписывание текста, генерация описаний изображений или распознавание речи) И достаточно ли лимитов токенов?

  • А) Да :
    • → Использование: API GenAI из ML Kit (на базе Gemini Nano)
    • Почему : Самый простой способ интегрировать конкретные, распространенные задачи генерации на устройство, решение с наивысшим приоритетом для работы на устройстве.
  • B) Нет (Вам необходимы более гибкие запросы или задачи, выходящие за рамки конкретных API GenAI ML Kit, но при этом вы хотите, чтобы они выполнялись на устройстве в рамках возможностей Nano):
    • → Использование: Экспериментальный доступ Gemini Nano
    • Почему : Предоставляет возможности открытого ввода подсказок на устройстве для сценариев использования, выходящих за рамки структурированных API GenAI ML Kit, с учетом ограничений Nano.

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

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

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

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

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

  • A) Вам нужен баланс между производительностью и стоимостью, подходящий для общего создания текста, его суммирования или чатов, где важна скорость?
    • → Использование: Firebase AI Logic SDK с Gemini Flash
    • Почему : Оптимизировано для скорости и эффективности в среде управления Vertex AI.
  • B) Требуется более высокое качество и возможности для генерации сложного текста, логического мышления, расширенной обработки естественного языка или выполнения инструкций?
    • → Использование: Firebase AI Logic SDK с Gemini Pro
    • Почему : Более мощная текстовая модель для сложных задач, доступная через Firebase.
  • C) Требуется сложная генерация изображений или расширенное понимание и обработка изображений на основе текстовых подсказок?
    • → Использование: Firebase AI Logic SDK с Imagen 3
    • Почему : Современная модель генерации изображений, доступ к которой осуществляется через управляемую среду Firebase.