Рекомендации по проектам обработки и анализа данных с помощью облачной аналитики в Azure

Мы рекомендуем использовать облачную аналитику в Microsoft Azure для эксплуатации проектов обработки и анализа данных.

Разработка шаблона

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

Рекомендации по использованию шаблонов обработки и анализа данных

Разработайте шаблон обработки и анализа данных для организации с помощью следующих рекомендаций:

  • Разработка набора шаблонов инфраструктуры как кода (IaC) для развертывания рабочей области Машинное обучение Azure. Включите такие ресурсы, как хранилище ключей, учетная запись хранения, реестр контейнеров и Аналитика приложений.

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

Рекомендации по развертыванию

Реальное время

  • Включите развертывание Фабрики данных Azure или Azure Synapse в шаблоны и Azure Cognitive Services.
  • Шаблоны должны предоставлять все необходимые средства для выполнения этапа исследования обработки и анализа данных, а также первоначального ввода модели в эксплуатацию.

Рекомендации по начальной настройке

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

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

Процесс настройки

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

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

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

Сценарий потоковой передачи данных

Для вариантов использования в режиме реального времени и потоковой передачи развертывание должно быть проверено на пониженной Служба Azure Kubernetes (AKS). Перед развертыванием в рабочей AKS или в Службе приложений Azure для контейнеров тестирование для целей экономии можно проводить в среде разработки. Чтобы убедиться, что службы отвечают должным образом, следует выполнить простые входные и выходные тесты.

Затем можно развернуть модели в нужной службе. Данный целевой объект вычислений развертывания является единственным объектом, доступным и рекомендованным для рабочих нагрузок в кластере AKS. Такой этап особенно необходим, если требуется поддержка графических процессоров (GPU) или программируемых логических интегральных схем. Другие собственные параметры развертывания, поддерживающие данные требования к оборудованию, в настоящее время в Машинном обучении Azure недоступны.

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

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

Сценарий пакетной службы

Не все варианты использования требуют развертывания кластера AKS. В случае использования не требуется развертывание кластера AKS, если большие объемы данных требуют регулярной оценки или основаны на событии. Например, большие объемы данных могут быть основаны на том, когда данные попадают в определенную учетную запись хранения. В сценариях такого типа для развертывания следует использовать конвейеры Машинного обучения Azure и вычислительные кластеры Машинного обучения Azure. Такие конвейеры должны согласовываться и выполняться в Фабрике данных Azure.

Выявление правильных вычислительных ресурсов

Перед развертыванием модели в Машинном обучении Azure к AKS пользователю необходимо указать такие ресурсы, как ЦП, ОЗУ и GPU, которые должны быть выделены для соответствующей модели. Процесс определения данных параметров может быть сложным и утомительным. Чтобы определить хороший набор параметров, необходимо выполнить стресс-тесты с различными конфигурациями. Этот процесс можно упростить с помощью функции профилирования модели в Машинное обучение Azure, которая является длительным заданием, которое проверяет различные сочетания выделения ресурсов и использует определяемую задержку и время кругового пути (RTT), чтобы рекомендовать оптимальное сочетание. Эти сведения могут помочь в фактическом развертывании модели на AKS.

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

Рекомендации и рабочий процесс для MLOps (операции машинного обучения)

Включите пример кода в репозитории обработки и анализа данных

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

Такие артефакты должны включать:

  • Примеры записных книжек, в которых показано, как:

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

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

Для ввода конвейеров в эксплуатацию необходимо использовать грамотно спроектированные артефакты

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

Совет

Примеры конвейеров Машинного обучения Azure должны создаваться с помощью пакета разработчика программного обеспечения (SDK) Python или на основе языка YAML. Новый опыт применения YAML будет более инновационным, поскольку команда разработчиков Машинного обучения Azure в настоящее время работает над новым SDK и интерфейсом командной строки (CLI). Команда разработчиков Машинное обучение Azure уверена, что YAML будет служить языком определения для всех артефактов в Машинное обучение Azure.

Примеры конвейеров не работают из поля для каждого проекта, но их можно использовать в качестве базового плана. Вы можете настроить примеры конвейеров для проектов. Конвейер должен включать самые релевантные аспекты каждого проекта. Например, конвейер может ссылаться на целевой объект вычислений, эталонные продукты данных, определять параметры, определять входные данные и определять шаги выполнения. Для Azure Pipelines необходимо выполнить тот же процесс. Конвейеры Azure Pipelines также должны использовать SDK или CLI Машинного обучения Azure.

Они должны продемонстрировать, как:

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

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

Структурирование репозитория MLOps

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

Примечание.

Понятия, упоминаемые в настоящем разделе, можно использовать в локальных средах Amazon Web Services, Palantir и Azure.

Предлагаемая структура папок верхнего уровня для репозитория MLOps (операции машинного обучения) показана на следующей схеме:

Схема структуры репозитория для MLOps.

Следующие цели применяются к каждой папке в репозитории:

Папка Характер использования
.cloud Сохраните код и артефакты, относящиеся к облаку, в этой папке. Артефакты включают файлы конфигурации для рабочей области Машинного обучения Azure, включая определения целевых объектов вычислений, задания, зарегистрированные модели и конечные точки.
.ado/.github Храните артефакты Azure DevOps или GitHub, такие как конвейеры YAML или владелец кода в этой папке.
code Включите фактический код, разработанный в рамках проекта в этой папке. Папка может содержать пакеты Python и некоторые сценарии, которые используются для выполнения соответствующих этапов конвейера машинного обучения. Мы рекомендуем разделять отдельные этапы, которые необходимо выполнить в данной папке. Основными этапами являются предварительная обработка, обучение моделии регистрация модели. Определите зависимости, такие как зависимости Conda, образы Docker или другие для каждой папки.
docs Используйте эту папку в целях документации. В данной папке хранятся файлы и изображения Markdown для описания проекта.
pipelines Храните определения конвейеров Машинное обучение Azure в YAML или Python в этой папке.
tests Написание модульных и интеграционных тестов, которые необходимо выполнить для обнаружения ошибок и проблем в начале проекта в этой папке.
notebooks Разделите записные книжки Jupyter из фактического проекта Python с этой папкой. Внутри папки каждый пользователь должен завести вложенную папку для возврата своих записных книжек и предотвращения конфликтов слияния Git.

Следующий шаг

Продукты данных аналитики в облаке в Azure