Как интегрировать модели машинного обучения в ваше приложение?

Глубокое обучение (DL) — это постоянно растущая популярная часть более широкого семейства методов машинного обучения. В наши дни спрос на интеллектуальные мобильные приложения, использующие глубокое обучение, очень высок. Как мобильный разработчик, искать библиотеки, которые помогают интегрировать глубокое обучение в мои приложения, было легко и в то же время запутанным. Существует бесчисленное множество SDK, предоставляющих мощные инструменты и библиотеки для разработки и развертывания приложений глубокого обучения. Ниже вы найдете список лучших библиотек и фреймворков с открытым исходным кодом для глубокого обучения, разделенных на 2 группы: одна для разработчиков, плохо знакомых с глубоким обучением, а другая — для разработчиков DL, обладающих знаниями в области нейронных сетей или оптимизации моделей.

Во-первых: для новичков в глубоком обучении:

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

ML Kit

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

  • API на устройстве

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

  • Google Cloud Platform

Google Cloud предлагает два продукта для компьютерного зрения, которые используют машинное обучение для обнаружения и классификации нескольких объектов или текста на изображении. Первый продукт Vision API — это предварительно обученные модели машинного обучения. второй — AutoML Vision witch — это простой в использовании графический интерфейс для обучения пользовательским моделям машинного обучения. Одним из самых больших преимуществ использования Vision API является то, что они постоянно обновляются, поэтому вам не нужно беспокоиться о модели и справляться со всеми головными болями, которые возникнут при повторном обучении вашей модели. Кроме того, это дает результат с более высоким уровнем точности. Например, сервис Google для маркировки изображений на устройствах предлагает около 400 этикеток, а его облачная версия — более 10 000. В отличие от API на устройстве, Vision API — это платная услуга, примерно 1 доллар за 1000 запросов. Так как вам нужно отправить HTTPS-запрос веб-службе с необходимыми данными и дождаться ответа, он не будет работать без быстрого подключения к сети.

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

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

Core ML

Core ML — это попытка Apple превратить некоторые сложные задачи машинного обучения в товар. Core ML предоставляет 4 способа интеграции машинного обучения в ваше приложение:

Create ML — это удобное приложение, которое позволяет создавать, тренировать модели Apple с вашими пользовательскими данными и развертывать их без необходимости в машинном обучении. Модели, обученные с помощью Create ML, имеют формат модели Core ML и готовы к использованию в вашем приложении.

  • доменные фреймворки

Core ML поддерживает четыре предметно-ориентированных фреймворка для выполнения множества задач. Это Vision для анализа изображений, Natural Language для обработки текста, Speech для преобразования звука в текст и SoundAnalysis для определения звуков в аудио.

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

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

Однако возможности Core ML ограничены. Core ML может помочь вам только интегрировать предварительно обученные модели машинного обучения в ваше приложение. Это означает, что вы можете делать только прогнозы, обучение модели невозможно. Core ML не предоставляет облачные сервисы, но Apple заявляет, что Core ML оптимизирует производительность на устройстве за счет использования ЦП, графического процессора и Neural Engine при минимизации объема памяти и энергопотребления. в остальном Core ML — отличный инструмент, чрезвычайно простой в использовании.

См. также:  Разница между this.setState и React Hooks

Во-вторых: для разработчиков глубокого обучения

Первый шаг: построение модели глубокого обучения

Ниже приведены наиболее популярные библиотеки с открытым исходным кодом, которые помогут вам создавать, обучать и тестировать собственные модели в мобильных приложениях:

TensorFlow

Tensorflow основан на Theano и разработан Google. Высокоуровневые API TensorFlow основаны на стандарте Keras API для определения и обучения нейронных сетей. Keras обеспечивает быстрое прототипирование, современные исследования и производство — и все это с помощью удобных API. Модели Tensor Flow можно запускать на мобильных устройствах или устройствах Интернета вещей с помощью конвертера TensorFlow Lite. TensorFlow Lite обеспечивает логический вывод машинного обучения на устройстве с малой задержкой и небольшим двоичным размером. Наконец, за Tensorflow стоит огромное сообщество, а это значит, что вы можете легко найти ресурсы для его изучения.

PyTorch

PyTorch основан на Torch и был разработан Facebook. В отличие от статических графов, которые используются в таких фреймворках, как Tensorflow, PyTorch полагается на динамические вычислительные графы. Это означает, что графики создаются на лету (что может потребоваться, если входные данные имеют неодинаковую длину или размеры), и эти динамические графики упрощают отладку, как отладку в Python. Это особенно полезно при использовании входов переменной длины в RNN.

Второй шаг: развертывание модели глубокого обучения

когда у вас большой набор данных, вы не можете обучить свою модель на собственном компьютере, это требует гораздо больше энергии, вам нужна огромная машина с несколькими графическими процессорами. Обеспечение высокопроизводительных машин для выполнения такой работы обычно очень дорогое и недоступно для большинства разработчиков. По этой причине было бы разумнее просто арендовать услуги облачной платформы для размещения конвейеров машинного обучения для подготовки данных, обучения моделей, управления версиями моделей и использования моделей для прогнозирования. Крупнейшие облачные платформы машинного обучения сегодня — это Amazon SageMaker, Google ML Engine и Microsoft Azure AI.

Amazon’s SageMaker

Amazon Web Services (AWS) SageMaker — облачный сервис Amazon, который призван упростить работу, предоставляя инструменты для быстрого построения и развертывания моделей. Например, он предоставляет Jupyter, записную книжку для разработки, чтобы упростить исследование и анализ данных без проблем с управлением сервером. Amazon также имеет встроенные алгоритмы дискретной классификации или количественного анализа с использованием линейного учащегося или XGBoost, рекомендации элементов с использованием машины факторизации, группировку на основе атрибутов с использованием K-средних, алгоритм классификации изображений и многие другие алгоритмы. Если вы не хотите их использовать, вы можете добавлять свои собственные методы и запускать модели через SageMaker, используя его функции развертывания и мониторинга.

См. также:  PyTorch - одна из переменных, необходимых для вычисления градиента, была изменена операцией на месте.

Google ML Engine

Облачная платформа (GCP) ML Engine, предоставленная Google. Он предназначен для опытных разработчиков и очень похож на SageMaker. ML Engine не имеет Jupyter Notebooks для исследования и обработки данных, для этого в облачной платформе Google (GCP) вы должны использовать Datalab.

Основное различие между ними (MLEngine и SageMaker) заключается в том, как они обрабатывают прогнозы. При использовании SageMaker прогнозов вы должны оставить ресурсы работающими, чтобы предоставлять прогнозы. Это позволяет уменьшить задержку при предоставлении прогнозов за счет стоимости оплаты запущенных простаивающих служб…

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

Udacity

Microsoft Azure AI

Реестр продуктов машинного обучения Microsoft аналогичен двум предыдущим сервисам, но Azure более гибкий с точки зрения готовых алгоритмов. Azure AI предлагает множество открытых и всеобъемлющих платформ, которые включают программные платформы AI. их можно разделить на две основные категории: Azure Machine Learning Studio и Bot Service. в Azure ML Studio каждый шаг рабочего процесса должен выполняться с использованием графического интерфейса перетаскивания.

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

Следующий шаг

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

Ресурсы:

Чтобы узнать больше:

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: