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

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

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

В этом сценарии доступ к данным вашего клиента контролируется через четко определенные конечные точки API, защищенные аутентификацией (OAuth) и / или шифрованием (SSL). Примером этого может быть создание сайта электронной коммерции с в основном общедоступными данными с eBay или Alibaba.

Обычный путь для специалистов по данным в этом сценарии - создать внутренний пакет Python, который может использоваться приложением и его моделями. Затем в рамках CI / CD разверните код на производственных серверах.

Случай 2. Корпоративное приложение с общедоступными API, которые интегрируются с существующими приложениями

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

Случай 3. Корпоративное приложение с частными API, которые интегрируются с локальными или облачными приложениями

В некоторых случаях ваше предприятие имеет доступ к данным через существующие API-интерфейсы, но получить данные для обучения и тестирования сложно. В этих сценариях люди, не занимающиеся наукой о данных (например, инженеры, менеджеры по продукту), часто имеют разные представления о том, как следует реализовать модель, чем сами специалисты по данным! Мы рекомендуем проводить регулярные встречи между всеми участвующими сторонами, поскольку модели могут потребовать времени и ресурсов для правильного обучения - отсюда важность согласования с ключевыми заинтересованными сторонами на ранних этапах процесса. Обычный путь для специалистов по данным, работающих в этом сценарии, почти идентичен случаю 1, поскольку им, вероятно, не потребуется прямой доступ к производственным системам или живым данным обучения пользователей.

Случай 4: Корпоративное приложение с локальной инфраструктурой машинного обучения и доступом через API к данным клиентов

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

Еще одна вещь, на которую следует обратить внимание в этом сценарии, - это чрезмерная установка. Например, предположим, что ваши производственные данные зашумлены и / или разрежены, поэтому вы выбираете метод моделирования, который работает в этих сценариях (например, усиленные деревья решений). Однако на производстве шум уходит, и теперь ваша модель тоже не работает! Вот почему так важно иметь системы для мониторинга ваших моделей и получения предупреждений, когда они перестают работать или начинают сообщать странные результаты.

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

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

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

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

Случай 6. Корпоративное приложение с исходными данными обучения

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

Первоначально опубликовано на https://protonautoml.com 14 июня 2021 г.