Будущее
Friflex

Как интегрировать ИИ в мобильное приложение

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

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

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

Сегодня практически для всех основных фреймворков машинного обучения есть свои инструменты для развертывания обученных моделей на мобильных телефонах. Это и TFLite для TensorFlow от Google и Pytorch Mobile для Pytorch от Facebook. Появились решения от Microsoft и Alibaba, CoreML от Apple. Для Android безусловным лидером остается Google с его экосистемой. Можно обучить модель на одном фреймворке, например на Pytorch, и конвертировать её в формат другого фреймворка, как TFLite, для развертывания на мобильном устройстве.

Кроме библиотеки TFLite для запуска нейронных сетей, Alphabet Inc. разрабатывает несколько фреймворков. Используя консоль Firebase, с помощью MLKit даже начинающий разработчик может интегрировать ML в приложения для Android или iOs.

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

4 этапа в процессе разработки

  • Сбор и разметка данных – один из главных компонентов машинного обучения. От размера обучающей выборки и качества её разметки зависит то, что выучат наши модели.

    При разметке данных можно использовать такие инструменты, как Яндекс.Толока. На ресурсе можно поручить разметку сторонним людям. Это актуально при работе с данными, где для разметки не требуется знаний в узкой предметной области.

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

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

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

    Для записи на телефон речи / видео / изображения и их распознавания на сервере можно использовать готовые решения от производителей фреймворков TensorFlow Serving, TorchServe, и производителей видеокарт Nvidia-Triton.
  • Разработка алгоритмов обработки предсказаний моделей. Для таких задач, как трекинг объектов / распознавание жестов, кроме самих моделей необходимо реализовать алгоритмы для постобработки данных. Алгоритмы необходимо самостоятельно реализовывать на одном из языков программирования (желательно чтобы это был кроссплатформенный язык как C++ или kotlin) или же можно взять готовое решение из MLKit или MediaPipe.
  • Отслеживание работы моделей и создание обратной связи с пользователем. Для того, чтобы понять, насколько хорошо ваши модели справляются с задачами, кроме изучения аналитики приложения необходимо дать пользователю возможность указывать на ошибки срабатывания моделей (неправильно понятая фраза, некорректно распознанное изображение и т.д.). И на основе собранных ошибок заново запустить процесс обучения.

ИИ в действии

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

С помощью алгоритмов анализа больших данных (Big Data) специалисты используют статистику для дальнейшего прогнозирования. Amazon Pinpoint – сервис многоканальных маркетинговых коммуникаций и мобильной аналитики работает на алгоритмах Big Data. Он помогает определить ЦА, проанализировать поведение пользователей, выбрать ключевые сообщения и отследить результаты кампании.

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

Технологии играют важную роль в процессе персонализации. Наиболее яркий пример приложения, обеспечивающего индивидуальный подход к пользователю с помощью ИИ – My Starbucks. Пользователи могут заказать напиток на ходу. Чат-бот составляет рекомендации на основе предпочтений клиента. Пользователь может делать заказы голосом через Amazon Alexa или через приложение MyBarista, а потом получать их в выбранной кофейне поблизости.

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

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

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

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

0
5 комментариев
Аполлон Степанов

Лайкнул только за тему. В сущности, какие-то рекомендаций в статье нет. Бессмысленные общие фразы, как и в предыдущей статье.

Если пишет специалист по ML, то мог бы качественно написать статью с разных сторон.

Разработчика, бизнеса, руководителя проектов и так далее. Но написана общая бесполезная чушь.

Да и вообще, в чём цель статьи?? Рассказать о том, что можно применять нейронные сети для решения задач на телефонах?? И всё?? Ну да, можно. На этом собственно и можно закончить.

Ответить
Развернуть ветку
Friflex
Автор

Аполлон, спасибо за обратную связь!
В следующий раз мы обязательно учтем ваш комментарий и подготовим более развернутый материал про ML 🦾
Чтобы не пропустить его в ленте, ставьте колокольчик и следите за нашими обновлениями) мы будем с нетерпением ждать вашей следующей оценки 😉

Ответить
Развернуть ветку
Аполлон Степанов

Если честно, обычно я даю людям шанс три раза. Это вторая ваша статья, которую я увидел.

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

Лично для меня очевидно, что люди, которые сидят на портале находятся не в детском саду. И очень странно видеть статьи подобного качества во всех смыслах этого слова.

Пустые и ничего не дающие статьи.

Можно было одной фразой написать, что да, нейронные сети можно применять в мобильной разработке
И что??

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

Ответить
Развернуть ветку
Vladislav R

Вы жесткий)

Ответить
Развернуть ветку
Аполлон Степанов

Зато честный)

Ответить
Развернуть ветку
Читать все 5 комментариев
null