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

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

Разработка схемы

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

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

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

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

  • Включите настройку хранилищ данных и целевых объектов вычислений в эти шаблоны, такие как вычислительные экземпляры, вычислительные кластеры и 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