Как специалисты по обработке данных, мы привыкли разрабатывать и обучать модели машинного обучения в нашей любимой записной книжке Python или в интегрированной среде разработки (IDE), такой как Visual Studio Code (VSCode). Затем мы передаем полученную модель разработчику приложения, который интегрирует ее в более крупное приложение и развертывает. Часто любые ошибки или проблемы с производительностью остаются незамеченными до тех пор, пока приложение не будет развернуто. Возникающие в результате трения между разработчиками приложений и специалистами по обработке данных по выявлению и устранению первопричины могут оказаться медленным, разочаровывающим и дорогостоящим процессом.

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

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

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

Жизненный цикл науки о данных или внутренний цикл для (пере) обучения вашей модели, включая прием данных, подготовку и эксперименты с машинным обучением, можно автоматизировать с помощью конвейера Машинное обучение Azure. Аналогичным образом, жизненный цикл приложения или внешний цикл, включая модульное и интеграционное тестирование модели и более крупного бизнес-приложения, также можно автоматизировать с помощью конвейера Azure DevOps. Короче говоря, процесс анализа данных теперь является частью конвейера непрерывной интеграции (CI) и непрерывной доставки (CD) корпоративного приложения. Больше не нужно указывать пальцем, когда возникают неожиданные задержки в развертывании приложений или когда ошибки обнаруживаются после того, как приложение было развернуто в производственной среде.

Azure DevOps и Машинное обучение Azure

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

Исходное предположение состоит в том, что и специалисты по обработке данных, и разработчики приложений на вашем предприятии используют Git в качестве репозитория кода. Как специалист по анализу данных, любые изменения, которые вы вносите в обучающий код, запускают конвейер CI / CD Azure DevOps для согласования и выполнения нескольких шагов, включая модульные тесты, обучение, интеграционные тесты и принудительное развертывание кода.

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

При таком подходе вы, как специалист по данным, сохраняете полный контроль над обучением модели. Вы можете продолжать писать и тренировать модели в своей любимой среде Python. Вы сами решаете, когда выполнять новый прогон ETL / ELT, чтобы обновить данные для повторного обучения вашей модели. Точно так же вы по-прежнему владеете определением конвейера Машинное обучение Azure, включая особенности каждого этапа обработки данных, извлечения функций и экспериментов, таких как цель вычислений, структура и алгоритм. В то же время ваш партнер-разработчик приложения может спокойно спать, зная, что любые изменения, которые вы фиксируете, будут проходить через требуемые этапы модуля, интеграционного тестирования и утверждения человеком для всего приложения.

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

Учить больше

Чтобы узнать больше, посетите веб-сайт службы Машинное обучение Azure и начните работу с бесплатной пробной версией службы машинного обучения Azure.

Первоначально опубликовано на https://azure.microsoft.com Вольфгангом Паули, разработчиком искусственного интеллекта, Microsoft.