Комбинация машинного обучения и интеллектуальных устройств обеспечивает новую волну автоматизации. Устройства с поддержкой машинного обучения окажут огромное влияние на нашу повседневную жизнь — от умных холодильников до касс без кассы и беспилотных автомобилей. С ростом сложности вариантов использования и количества устройств нам придется принять новые стратегии для развертывания этих возможностей машинного обучения для пользователей и управления ими.

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

Понимание ключевых понятий

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

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

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

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

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

Общий обзор

По мере того как все больше организаций внедряют ML, потребность в управлении моделями и операциях резко возросла, что привело к появлению MLOPs. На стороне этого — всплеск интернета вещей. По данным Statista, к 2023 году глобальные расходы на интернет вещей достигнут 1,1 трлн долларов США. Кроме того, к 2025 году прогнозируется, что количество активных устройств, подключенных к IoT, достигнет 30,9 млрд.

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

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

Например, как вы выполняете машинное обучение на периферийных устройствах в масштабе для управления и мониторинга моделей машинного обучения? Как включить CI/CD? Как вы защищаете устройства и связь между ними? Как гарантировать работоспособность системы?

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

Преимущества машинного обучения на периферии

Большая часть литературы и решений по MLOps ориентирована на интерактивный вывод. Другими словами, запуск модели в облаке и взаимодействие приложений конечных пользователей с моделью через API. Однако во многих случаях очень полезно приблизить алгоритм к фактическому конечному пользователю, и поэтому не следует упускать из виду граничный вывод.

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

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

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

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

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

Проблемы периферийного машинного обучения и как MLOps могут помочь

Существует логическая причина, по которой большая часть литературы по MLOps фокусируется на онлайн-логическом выводе. Все просто — с точки зрения управления. Вы поддерживаете модель, которая преобразуется в единую конечную точку API, которую можно обновлять и отслеживать.

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

  • Тестировать сложно. Пограничные устройства бывают разных форм и размеров. Возьмем, к примеру, экосистему Android: вычислительная мощность этих устройств сильно различается, и будет сложно проверить, достаточно ли эффективна ваша модель для всех устройств. Однако надежный конвейер машинного обучения может включать различные тесты для проверки производительности модели.
  • Развертывание сложное. Обновление одной конечной точки — тривиальная задача. Обновить тысячи устройств гораздо сложнее. В большинстве случаев вам потребуется интегрировать конвейер машинного обучения и хранилище моделей с другими инструментами, которые отвечают за обновление пограничных устройств. Например, ваше приложение CI/CD загрузит последнюю модель из вашего магазина моделей.
  • Контролировать сложно. При онлайн-выводе вы собираете метрики с этой единственной конечной точки, но при использовании пограничного машинного обучения вместо этого вам потребуется получать отчеты с каждого устройства, и вы по-прежнему можете не иметь полного представления о среде модели. Вы хотите спроектировать свою систему мониторинга таким образом, чтобы она могла получать данные из многих источников, и, возможно, эти источники сообщают только время от времени.
  • Сбор данных затруднен. За конфиденциальность приходится платить, поскольку, в отличие от онлайн-логического вывода, у вас фактически нет прямого доступа к «реальным» данным. Создание непрерывных циклов для сбора данных с периферийных устройств может оказаться сложной задачей проектирования. Вы захотите рассмотреть механизмы, которые позволят вам собирать данные, когда ваша модель дает сбой (например, пользователь может выбрать отправку изображения, когда модель распознавания объектов не работает). Затем их можно пометить и добавить в набор обучающих данных в конвейере машинного обучения.

Основная цель MLOps для IoT и периферийных устройств — решить эти проблемы. Непрерывные циклы сложнее настроить в области вывода краев. В обычной настройке ваша модель обучается в облаке, затем подбирается системой CI/CD и развертывается на устройстве как часть приложения. Приложение выполнит вывод на устройстве и отправит метрики и данные пакетами обратно в облако, где вы сможете замкнуть цикл, переобучить и улучшить свою модель.

Ваше решение

Как упоминалось ранее, каждый случай периферийного машинного обучения по-прежнему уникален, и нет единого шаблона, который работал бы для всех. Скорее всего, ваше конечное решение будет содержать ваш собственный код и готовые продукты. Приоритет должен отдаваться отображению всех различных компонентов, необходимых для формирования непрерывного цикла, и выяснению того, как все различные компоненты взаимодействуют друг с другом. Мы являемся ярыми сторонниками открытых API, и платформа Valohai MLOps построена на основе API, поэтому доступ ко всем функциям можно получить через код, а инструменты можно легко интегрировать.

Для нас MLOps — это не просто что-то для онлайн-использования. Мы считаем, что те же самые передовые методы построения непрерывных циклов и их максимальная автоматизация должны де-факто применяться и для периферийных устройств.

Первоначально опубликовано на https://valohai.com.