Машинное обучение в мобильной разработке: перспективы и децентрализация
Доброе утро, Хабр!
Нам нечего добавить в к заголовку статьи в нашем преуведомлении — поэтому все сразу приглашаются под кат. Читаем и комментируем.
Специалисты по разработке для мобильных устройств только выиграют от революционных изменений, которые уже сегодня может предложить машинное обучение на устройствах. Дело в том, насколько эта технология усиливает любые мобильные приложения, а именно, обеспечивает новый уровень удобства для пользователей и позволяет активно задействовать мощные возможности, например, предоставлять максимально точные рекомендации, опираясь на геолокацию, либо мгновенно обнаруживать болезни у растений.
Такая стремительная разработка мобильного машинного обучения — это ответ на ряд распространенных проблем, с которыми мы успели намучиться в классическом машинном обучении. На самом деле, все очевидно. В перспективе мобильные приложения потребуют ускорения обработки данных и дальнейшего сокращения задержек.
Возможно, вы уже задумывались, почему мобильные приложения, основанные на ИИ, не могут попросту запускать логический вывод в облаке. Во-первых, облачные технологии зависят от центральных узлов (представьте себе огромный датацентр, где сосредоточены как обширные хранилища данных, так и большие вычислительные мощности). При таком централизованном подходе невозможно справляться со скоростями обработки, достаточными для создания плавных мобильных взаимодействий, основанных на машинном обучении. Данные должны обрабатываться централизованно, после чего рассылаться обратно на устройства. Такой подход требует времени, денег и не гарантирует приватности самих данных.
Итак, очертив эти основные преимущества мобильного машинного обучения, давайте подробнее исследуем, почему разворачивающаяся на наших глазах революция в машинном обучении должна быть интересна лично вам как мобильному разработчику.
Сокращение задержки
Разработчики мобильных приложений знают, что повышенная задержка может стать для программы черной меткой, независимо от того, как хороши ее возможности, либо насколько респектабелен бренд. Ранее на устройствах с Android наблюдались серьезные задержки во многих видео-приложениях, из-за чего просмотр видео и аудио часто получался рассинхронизирован. Аналогично, клиент соцсети с высокой задержкой может превратить общение в настоящую пытку для пользователя.
Реализация машинного обучения на устройстве становится все важнее именно из-за таких проблем с задержками. Представьте себе, как работают фильтры изображений для социальных сетей, либо рекомендации ресторанов с привязкой к геолокации. В таких приложениях задержка должна быть минимальной, лишь в таком случае оно сможет работать на высочайшем уровне.
Как было указано выше, облачная обработка порой бывает медленной, а разработчику требуется, чтобы задержка стремилась к нулю – только в таком случае возможности машинного обучения в мобильном приложении будут работать как следует. Машинное обучение на устройствах открывает такие возможности обработки данных, что действительно позволяет свести задержку практически к нулю.
Производители смартфонов и гиганты технического рынка постепенно начинают это осознавать. Флагманом в этой отрасли долгое время оставалась Apple, разрабатывавшая все более совершенные чипы для смартфонов при помощи своей системы Bionic, в которой внедрен нейронный движок Neural Engine, помогающий гонять нейронные сети прямо на устройстве, достигая при этом невероятных скоростей.
Apple также продолжает шаг за шагом разрабатывать Core ML, свою платформу машинного обучения для мобильных приложений; в библиотеке TensorFlow Lite добавлена поддержка GPUs; Google продолжает добавлять предзагруженные фичи к своей платформе машинного обучения ML Kit. При помощи именно этих технологий можно разрабатывать приложения, позволяющие молниеносно обрабатывать данные, исключать какие-либо задержки и сокращать количество ошибок.
Такая комбинация точности и бесшовных пользовательских взаимодействий – основной показатель, который должны учитывать разработчики мобильных приложений, внедряя в них возможности машинного обучения. А чтобы гарантировать такой функционал, требуется взять на вооружение машинное обучение на устройствах.
Улучшенная безопасность и приватность
Еще одна огромная выгода граничных вычислений (edge computing), которую невозможно переоценить заключается в том, насколько они улучшают безопасность и приватность пользователей. Гарантия безопасности и приватности данных в приложении – неотъемлемая часть задач разработчика, особенно с учетом необходимости выполнения GDPR (Общему Регламенту по Защите Данных), новых европейских законов, которые, несомненно, отразятся и на практике мобильной разработки.
Поскольку данные не требуется отправлять для обработки на север или в облако, у киберпреступников меньше возможностей для использования каких-либо уязвимостей, возникавших на этапе такой передачи; поэтому неприкосновенность данных сохраняется. Так разработчикам мобильных приложений становится проще соблюдать регламентацию GDPR по безопасности данных.
Машинное обучение на устройствах также обеспечивает децентрализацию, во многом по тому же принципу, что и блокчейн. Иными словами, хакерам сложнее положить DDoS-атакой связанную сеть скрытых устройств, нежели провести такую же атаку на центральный сервер. Данная технология также может оказаться полезна при работе с дронами и для контроля за соблюдением законодательства.
Вышеупомянутые смартфонные чипы от Apple также способствуют повышению безопасности и приватности пользователя – так, они могут послужить основой Face ID. Эта возможность iPhone работает на основе нейронной сети, развернутой на устройствах и собирающей данные обо всех разнообразных представлениях пользовательского лица. Таким образом, технология служит исключительно точным и надежным методом идентификации.
Такое и более новое оборудование с поддержкой ИИ проложит путь к более безопасным взаимодействиям пользователя со смартфоном. Фактически, разработчики получают дополнительный уровень шифрования для защиты пользовательских данных.
Не требуется подключения к Интернету
Не считая проблем с задержкой, отправка данных в облако для обработки и извлечения выводов требует хорошего соединения с Интернетом. Зачастую, особенно в развитых странах, жаловаться на Интернет не приходится. Но что делать в районах, где связь похуже? Когда машинное обучение реализовано на устройствах, нейронные сети живут на телефонах сами по себе. Таким образом, разработчик может развернуть технологию на любом устройстве и в любом месте, независимо от качества соединения. Плюс, такой подход ведет к демократизации ML-возможностей.
Здравоохранение – одна из отраслей, которые могут особенно выиграть от машинного обучения на устройствах, поскольку разработчики смогут создавать инструменты, проверяющие жизненно важные показатели, либо даже обеспечивать робохирургию без какого-либо подключения к Интернету. Данная технология также пригодится студентам, желающим обратиться к лекционным материалам, не имея подключения к Интернету – например, будучи в транспортном туннеле.
В конечном итоге, машинное обучение на устройствах предоставит разработчикам инструменты для создания инструментов, которые будут полезны пользователям со всего мира, независимо от ситуации с Интернет-соединением. Учитывая, что мощность новых смартфонов будет, как минимум, не ниже, чем у нынешних, пользователи забудут о проблемах с задержками, когда будут работать с приложением в оффлайне.
Уменьшение расходов для вашего бизнеса
Машинное обучение на устройствах также призвано сберечь вам целое состояние – ведь с ним вам не придется платить внешним подрядчикам, которые бы реализовывали и поддерживали многие решения. Как уже упоминалось выше, во многих случаях вы сможете обойтись и без облака, и без Интернета.
GPU и ИИ-специфичные облачные сервисы – вот самые дорогие решения, которые можно приобрести. При запуске моделей на устройстве вам не придется оплачивать все эти кластеры, благодаря тому, что сегодня появляются все более совершенные смартфоны, оснащенные нейроморфными процессорами (NPU).
Избегая кошмарной тяжеловесной обработки данных, происходящей между устройством и облаком, вы колоссально экономите; поэтому внедрять решения с машинным обучением на устройствах очень выгодно. Вдобавок вы экономите и потому, что в вашем приложении значительно снижаются требования к ширине полосы передачи данных.
Сами инженеры также сильно экономят на процессе разработки, поскольку не приходится собирать и поддерживать дополнительную облачную инфраструктуру. Напротив, удается достичь большего силами меньшей команды. Таким образом, планирование человеческих ресурсов в командах разработчиков получается гораздо эффективнее.
Заключение
Бесспорно, в 2010-е облака стали настоящим благом, упростившим обработку данных. Но высокие технологии развиваются экспоненциально, и машинное обучение на устройствах вскоре может стать де-факто стандартом не только в области мобильной разработки, но и в сфере Интернета Вещей.
Благодаря сокращению задержки, улучшенной безопасности, оффлайновым возможностям и удешевлению в целом, неудивительно, что крупнейшие игроки мобильной разработки делают большие ставки на эту технологию. Разработчики мобильных приложений также должны к ней присмотреться, чтобы идти в ногу со временем.