Предписывающий шаблон проектирования для безопасного развертывания и эксплуатации машинного обучения Azure в масштабе предприятия.

Обзор

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

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

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

Проблема

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

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

Для решения этих проблем организация обычно приступает к реализации проекта, который:

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

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

Логический дизайн

Машинное обучение Azure (AML) — это облачная служба для ускорения и управления жизненным циклом проекта машинного обучения в Azure. Специалисты по машинному обучению, специалисты по данным и инженеры могут использовать его в своих повседневных рабочих процессах для обучения, развертывания, мониторинга и управления моделями.

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

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

Ниже показан взвешенный логический дизайн платформы машинного обучения с использованием машинного обучения Azure, связанных основных ресурсов Azure и GitHub (обратите внимание, что можно использовать другие службы, такие как альтернативы, такие как Azure DevOps).

Рабочая среда

Центром Машинного обучения Azure является рабочая область — ресурс верхнего уровня для действий по машинному обучению, который предоставляет централизованное место для просмотра и управления артефактами, созданными в Машинном обучении Azure. Рабочая область состоит из следующих важных компонентов (они охватывают как вышеупомянутые ресурсы, так и активы):

  • Вычисления: управляемые вычислительные службы для обучения и развертывания моделей машинного обучения. К ним относятся: (1) вычислительные экземпляры для отдельных специальных разработок (отключение после периода бездействия); (2) вычислительные кластеры, которые могут совместно использоваться командами для выполнения длительных задач (динамически масштабируются между минимальным и максимальным количеством указанных узлов); и (3) онлайн-управляемые конечные точки для размещения конечных точек HTTPS/REST (постоянно работающих).
  • Отслеживание экспериментов: репозиторий для хранения и отображения метаданных и журналов, связанных с заданиями.
  • Реестр моделей: репозиторий для хранения и версии артефактов модели и добавления метаданных.
  • Разработка моделей: инструменты для построения моделей с использованием кода и без него. Он состоит из (1) ноутбуков, которые облегчают разработку кода; (2) Конструктор для облегчения разработки модели методом перетаскивания; и (3) AutoML для облегчения автоматизированной разработки моделей.
  • Среды: указывает среду выполнения, пакеты Python, переменные среды и параметры программного обеспечения для заданий.
  • Конечные точки: конечные точки HTTPS для клиентов, с которыми можно взаимодействовать при оценке модели.
  • Компоненты: автономный фрагмент кода, выполняющий один шаг в конвейере машинного обучения.
  • Данные: список настроенных хранилищ данных вместе со ссылками на базовые наборы данных и связанные метаданные.

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

Зависимости рабочей области

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

  • Учетная запись хранилища Azure: используется как хранилище данных по умолчанию для рабочей области. Записные книжки, которые используются с вычислительными экземплярами Машинного обучения Azure, также хранятся здесь (с помощью файлов Azure).
  • Реестр контейнеров Azure: используется для регистрации контейнеров докеров, которые используются для сред машинного обучения Azure при обучении и развертывании моделей, AutoML при развертывании моделей и профилировании данных. Чтобы свести к минимуму затраты, ACR лениво загружается до тех пор, пока не потребуются изображения.
  • Azure Application Insights: хранит данные мониторинга и диагностики. Дополнительные сведения см. в разделе Контроль онлайн-конечных точек.
  • Azure Key Vault: хранит секреты, используемые целевыми объектами вычислений, и другую конфиденциальную информацию, необходимую для рабочей области.

Данные

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

  • Хранилища данных: определите конфигурацию, позволяющую пользователям подключаться к базовым службам хранения данных в Azure. Эти соединители обычно включают Azure Data Lake Gen 2 (для озера данных) или базу данных SQL (для хранилища данных или системы баз данных), но существуют и другие. Эти соединения определяют, как пользователи рабочей области подключаются и аутентифицируются в базовом хранилище данных.
  • Активы данных: создает ссылку на определенные наборы данных в базовом источнике данных вместе с копией его метаданных. Поскольку данные остаются в своем существующем расположении, вы не несете дополнительных затрат на хранение и дублирование данных.

Вспомогательные ресурсы

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

  • Azure Monitor: комплексное решение для сбора, анализа и обработки данных телеметрии ваших рабочих нагрузок.
  • Рабочая область Log Analytics: среда для запроса и анализа данных журнала из Azure Monitor и других служб Azure.
  • GitHub (или Azure DevOps): платформа, поддерживающая принципы и методы DevOps для облегчения совместной работы и автоматизации конвейеров разработки и развертывания рабочих нагрузок.

Планирование и строительство

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

Технический дизайн

Машинное обучение Azure имеет полезные функции, которые позволяют администраторам и членам команды создавать безопасную среду, соответствующую более широким политикам, применяемым в организации. Некоторые из них могут включать:

  • Ограничение доступа к ресурсам и операциям по учетной записи пользователя или группе.
  • Ограничение входящей и исходящей сетевой связи.
  • Шифрование данных в пути и в состоянии покоя.
  • Сканирование на наличие уязвимостей.
  • Применение и аудит политик конфигурации.

Разработка и внедрение безопасных рабочих нагрузок в Azure — сложная тема, требующая множества соображений и компромиссов. Шаблон технического проектирования, описанный в этой статье, был разработан с учетом следующих соображений:

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

Дополнительные сведения о защите рабочих нагрузок Azure см. в документации Руководство по архитектуре безопасности Azure. Чтобы ознакомиться с рекомендациями по машинному обучению Azure, см. Руководство по Azure Cloud Adoption Framework.

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

На приведенном выше рисунке не обсуждались несколько заслуживающих внимания ресурсов Azure. К ним относятся:

  • Виртуальные сети и подсети: частная сеть, которую можно использовать для изоляции ресурсов Azure от прямого доступа в Интернет.
  • Группы безопасности сети: управляют входящим и исходящим трафиком из подсетей.
  • Брандмауэр: фильтрует входящий и исходящий трафик из вашей среды Azure.
  • Частные конечные точки: обеспечивает частное подключение между приложениями, развернутыми в виртуальных сетях, и службами Azure PaaS с использованием сети Microsoft.
  • Область частной ссылки Azure Monitor: подключает частную конечную точку к набору ресурсов Azure Monitor для определения границ вашей сети мониторинга.

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

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

Один или несколько из этих шаблонов должны быть приняты для каждой среды разработки (например, промежуточной, рабочей и т. д.). Cloud Adoption Framework предоставляет больше руководств по настройке рабочих областей и сред машинного обучения Azure.

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

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

Зона приземления

Целевая зона — это среда для размещения облачных рабочих нагрузок внутри организации. Он включает политики и рекомендации по управлению, соответствию требованиям, идентификации и безопасности, чтобы гарантировать, что все новые рабочие нагрузки, развернутые в среде Azure, соответствуют безопасной и соответствующей требованиям основе. В Azure это часто включает службы Azure, такие как Брандмауэр Azure, Виртуальная сеть Azure, Azure ExpressRoute и Центр безопасности Azure, среди прочих. По мере того как организации разрабатывают новые рабочие нагрузки, они будут развертываться в целевой зоне и использовать общие службы, такие как брандмауэр Azure и Azure Monitor.

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

Для интеграции с выбранной организацией службой DevOps (например, GitHub или Azure DevOps) необходимо установить подключение между целевой зоной Azure и службой. Кроме того, от организации может потребоваться выполнение любых автоматизированных рабочих процессов на локальном агенте или исполнителе. Для этого потребуется отдельная виртуальная машина, имеющая возможность подключения к необходимым средам машинного обучения Azure, развернутым в этой целевой зоне. Этот компонент выходит за рамки данной статьи.

Конфигурация роли

Управление доступом на основе ролей Azure (RBAC) используется для управления доступом (авторизацией) к рабочей области машинного обучения Azure или другим ресурсам Azure. Группам (состоящим из пользователей) в арендаторе Azure Active Directory (Azure AD) назначаются определенные роли, которые предоставляют доступ к ресурсам. Машинное обучение Azure предоставляет как встроенные роли, так и возможность создавать собственные роли, что позволяет настраивать политики разрешений ролей в соответствии с вашими конкретными рекомендациями и требованиями безопасности.

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

  • Специалист по данным
  • Инженер по машинному обучению
  • Инженер данных
  • Руководитель группы
  • Администратор платформы

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

Ключевые рабочие процессы

Операции машинного обучения (MLOps) — это применение принципов DevOps к рабочим нагрузкам машинного обучения. Для реализации операций машинного обучения в организации должны быть определенные навыки, процессы и технологии. Цель состоит в том, чтобы предоставлять решения для машинного обучения, которые являются надежными, масштабируемыми, надежными и автоматизированными.

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

Эксперименты и развитие​

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

  • Могут ли данные или машинное обучение решить эту проблему?
  • Какие данные необходимы? Это доступно?
  • Какие существуют источники данных? Есть ли доступ к команде?
  • Дают ли данные представление о проблеме?
  • Создает ли модель ценность для бизнеса?
  • Как можно развернуть и поддерживать модель?

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

Затем группа специалистов по обработке и анализу данных может разработать записные книжки в поисках ответов на вышеупомянутые вопросы и исходный код для конвейеров машинного обучения, чтобы помочь в эксплуатации модели. Исходный код можно хранить и управлять версиями в системе управления версиями, в то время как разные члены команды сотрудничают. Команда специалистов по обработке и анализу данных будет иметь доступ к подходам к разработке с использованием кода или без кода в рабочей области машинного обучения Azure, таким как Notebooks, Auto ML и Designer. Задания могут выполняться на предварительно настроенных вычислительных ресурсах, исключая использование персонального ноутбука (и некоторые связанные с этим риски). Специальные задания могут выполняться на вычислительном экземпляре, а длительные задания могут выполняться на вычислительном кластере. ​

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

Конвейеры непрерывной интеграции (CI) могут выполняться для выполнения различных действий, включая выполнение модульных тестов, анализ кода и сканирование безопасности, чтобы автоматизировать интеграцию изменений кода, внесенных различными членами группы обработки данных.

Этот процесс кратко показан на диаграмме ниже:

Построить и выпустить​

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

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

Исходный код, разработанный группами специалистов по обработке и анализу данных, можно хранить и управлять версиями в системе управления версиями. Рабочие процессы непрерывной интеграции (CI) могут выполняться для выполнения различных действий, включая выполнение модульных тестов, анализ кода и сканирование безопасности для автоматизации интеграции изменений кода. Для сценариев машинного обучения вы можете выбрать повторное обучение модели в последующей среде (например, в промежуточной среде), свободной от вмешательства человека с доступом к производственным данным. Эту модель можно зарегистрировать и продвигать в других нижестоящих средах (например, в рабочей среде).

После того как модель сохранена в реестре моделей, ее можно развернуть как управляемую конечную точку, которая может поддерживать сценарии интерактивного вывода или сценарии пакетного вывода. Конечная точка — это конечная точка HTTPS, которую клиенты могут вызывать для получения результатов логического вывода (оценки) обученной модели. Это обеспечивает:

  • Аутентификация с использованием ключа и токена».
  • SSL терминация.
  • URI со стабильной оценкой.

Затем необходимо создать развертывание для конечной точки. Развертывание — это набор ресурсов, необходимых для размещения модели, которая делает фактический вывод. Обратите внимание, что одна конечная точка может содержать несколько развертываний. После того, как развертывание было создано, можно выполнить автоматизированные тесты для управляемой конечной точки, чтобы убедиться, что она будет функционировать в рабочей среде должным образом. Группа по обработке и анализу данных может распределять трафик между конечными точками, чтобы упростить различные стратегии развертывания, такие как развертывание Canary и Blue- Зеленые развертывания.

Этот процесс кратко показан на диаграмме ниже:

Мониторинг и дрейф данных​

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

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

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

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

Дрейф данных можно обнаружить по статистическим показателям, полученным путем сравнения статистических распределений из наборов данных для обучения и логического вывода. Эти два набора данных можно сравнить как часть задания конвейера машинного обучения Azure, запускаемого по расписанию для создания метрик смещения данных. Эту телеметрию можно отправить в Azure Monitor через Application Insights для анализа и оповещения (например, по электронной почте, веб-перехватчикам).

Этот процесс кратко показан на диаграмме ниже:

Переобучение модели​

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

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

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

Этот процесс кратко показан на диаграмме ниже:

Рекомендации

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

MLOps​

Примеры​