От создания программных приложений к созданию приложений машинного обучения

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

Что такое приложения с поддержкой машинного обучения?

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

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

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

Итерация приложения с поддержкой машинного обучения

Когда кто-то строит автономные модели ML, в большинстве случаев он начинается с вопроса: «Можно ли сделать такой прогноз с помощью этих данных?». Но когда кто-то начинает создавать приложения ML, он должен начать с вопроса: «Какие данные должны быть сгенерированы, чтобы сделать этот прогноз?». В жизненном цикле разработки приложений ML можно было бы не только повторять модели ML, но и всю экосистему, начиная с генерации данных и заканчивая обслуживанием ML. Поэтому важно правильно планировать итерации. На приведенной ниже диаграмме показаны различные варианты поэтапного создания программного приложения. Первый вариант описывает подход методологии водопада, и мы хорошо знаем о его подводных камнях. Второй вариант изображает один из подходов, используемых в методологии Agile. Несмотря на то, что это допустимый подход для традиционных программных приложений, он плохо подходит для программных приложений с поддержкой машинного обучения. Например, если вы планируете создать IDE, уместно начать с минималистического текстового редактора. Но если кто-то планирует создать систему автоматизации зданий с поддержкой ML, нет смысла сначала создавать более простую систему домашней автоматизации. Данные, собранные из среды домашней автоматизации, не подходят для разработки систем автоматизации зданий. Для приложений с поддержкой машинного обучения очень важно создать исходную версию, аналогичную конечному продукту; следовательно, третий подход, изображенный на диаграмме, имеет больше смысла. Приложения с поддержкой машинного обучения должны обслуживать целевой домен с самого начала.

Широкий охват

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

Доступность данных

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

Заключение

Чтобы перейти к созданию приложений с поддержкой машинного обучения, следует сместить акцент на интеграцию DataOps, MLOps и DevOps в качестве единой целостной интегрированной системы, в отличие от текущего состояния, когда эти инструменты и процессы разрознены и работают как независимые объекты. Зрелость AutoML также будет способствовать развитию приложений с поддержкой машинного обучения. Первоначально AutoML рассматривался как замена команде Data Science, но все больше и больше людей начинают понимать, что люди необходимы для AI/ML, и в настоящее время AutoML рассматривается как средство снижения когнитивной нагрузки, чтобы люди могли сосредоточиться на более высоком уровне. такие вещи, как знание предметной области, интуитивность и переосмысление совершенно нового мира, как никогда раньше.

Авторское право © A5G Networks, Inc.