Поделиться через


Пакеты ресурсов Databricks для стеков MLOps

Вы можете использовать пакеты ресурсов Databricks, интерфейс командной строки Databricks и репозиторий Databricks MLOps Stack на сайте GitHub для создания MLOps Stacks. MLOps Stack — это проект MLOps в Azure Databricks, который соответствует отраслевым лучшим практикам по умолчанию. См. раздел "Что такое пакеты ресурсов Databricks?".

Чтобы создать, развернуть и запустить проект MLOps Stacks, выполните следующие действия:

Требования

  • Убедитесь, что в целевой удаленной рабочей области включены файлы рабочей области. См. раздел " Что такое файлы рабочей области?".
  • На компьютере разработки убедитесь, что интерфейс командной строки Databricks версии 0.212.2 или выше установлен. Чтобы узнать установленную версию Databricks CLI, выполните команду databricks -v. Чтобы обновить версию интерфейса командной строки Databricks, см. статью "Установка или обновление интерфейса командной строки Databricks". (Пакеты не работают с Databricks CLI версий 0.18 и ниже.)

Шаг 1. Настройка аутентификации

Настройте интерфейс командной строки Databricks для проверки подлинности.

В этой статье предполагается, что вы хотите использовать проверку подлинности пользователь-к-машине (U2M) с использованием OAuth и соответствующего профиля конфигурации Azure Databricks с именем DEFAULT для проверки подлинности.

Примечание.

Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать аутентификацию OAuth машина-для-машины (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".

  1. Используйте Databricks CLI для начала управления токенами OAuth на локальном уровне, выполнив следующую команду для каждой целевой рабочей области.

    В следующей команде замените <workspace-url> на URL-адрес Azure Databricks для рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите, Enter чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.

    Чтобы получить список существующих профилей в отдельном терминале или командной строке, используйте интерфейс командной строки Databricks для выполнения команды databricks auth profiles. Чтобы просмотреть существующие параметры конкретного профиля, выполните команду databricks auth env --profile <profile-name>.

  3. В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.

  4. Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Если у вас есть несколько профилей с одинаковым значением --host, может потребоваться указать параметры --host и -p вместе, чтобы помочь Databricks CLI найти правильную информацию о соответствующем токене OAuth.

Шаг 2. Создание проекта пакета

  1. Используйте шаблоны пакета ресурсов Databricks для создания начальных файлов проекта MLOps Stacks. Для этого выполните следующую команду:

    databricks bundle init mlops-stacks
    
  2. Ответьте на запросы на экране. Рекомендации по ответу на эти запросы см. в статье "Запуск нового проекта" в репозитории Databricks MLOps Stacks на сайте GitHub.

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

    • CICD_and_Project (по умолчанию) — настройте код машинного обучения и компоненты CI/CD.
    • Project_Only — настройте только компоненты кода машинного обучения. Этот вариант предназначен для специалистов по обработке и анализу данных, чтобы начать работу.
    • CICD_Only — настройте только компоненты CI/CD. Этот параметр предназначен для инженеров машинного обучения для настройки инфраструктуры.

    После ответа на все запросы на экране шаблон создает начальные файлы проекта MLOps Stacks и добавляет их в текущий рабочий каталог.

  3. Настройте начальные файлы проекта MLOps Stacks по мере необходимости. Для этого следуйте инструкциям в следующих файлах в новом проекте:

    Роль Цель Документация
    Пользователи этого репозитория в первый раз Общие сведения о конвейере машинного обучения и структуре кода в этом репозитории README.md
    Специалист по обработке и анализу данных Начало написания кода машинного обучения для нового проекта <project-name>/README.md
    Специалист по обработке и анализу данных Обновление рабочего кода машинного обучения (например, логики обучения модели) для существующего проекта docs/ml-pull-request.md
    Специалист по обработке и анализу данных Изменение ресурсов машинного обучения продуктовой модели (например, задач обучения или вывода модели) <project-name>/resources/README.md
    MLOps / DevOps Настройка CI/CD для текущего проекта машинного обучения docs/mlops-setup.md
    • Для настройки экспериментов отображения в декларации эксперимента соответствуют запросу полезной нагрузки операции создания эксперимента, как определено в POST /api/2.0/mlflow/experiments/create в справочнике по REST API, выраженному в формате YAML.

    • Для настройки заданий сопоставления в объявлении задания соответствуют телу запроса операции создания задания, как определено в POST /api/2.1/jobs/create в справочнике по REST API, выраженное в формате YAML.

      Совет

      Вы можете определить, объединить и переопределить параметры для новых кластеров заданий в пакетах с помощью методов, описанных в разделе "Переопределение параметров кластера" в пакетах ресурсов Databricks.

    • Для настройки моделей сопоставления в описании модели соответствуют полезной нагрузке запроса операции создания модели в каталоге Unity, как определено в POST /api/2.1/unity-catalog/models в справочнике по REST API, выраженном в формате YAML.

    • Для настройки конвейеров сопоставления в объявлении конвейера соответствуют полезной нагрузке запроса операции создания конвейера, как определено в POST /api/2.0/pipelines в справочнике REST API, выраженной в формате YAML.

Шаг 3. Проверка проекта пакета

Проверьте, действительна ли конфигурация пакета. Для этого запустите интерфейс командной строки Databricks из корневого каталога проекта, где находится databricks.yml.

databricks bundle validate

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

Шаг 4. Развертывание пакета

Разверните ресурсы и артефакты проекта в нужной удаленной рабочей области. Для этого запустите CLI Databricks из корневого каталога проекта, где находится databricks.yml.

databricks bundle deploy -t <target-name>

Замените <target-name> имя требуемого целевого объекта в databricks.yml файле, например dev, teststagingили prod.

Шаг 5. Запуск развернутого пакета

Развернутые задания Azure Databricks автоматически выполняются в предварительно определенных расписаниях проекта. Чтобы немедленно запустить развернутое задание, выполните команду интерфейса командной строки Databricks из корневого каталога проекта, в котором находится databricks.yml, как показано ниже.

databricks bundle run -t <target-name> <job-name>
  • Замените <target-name> имя требуемого целевого объекта в databricks.yml файле, где было развернуто задание, например dev, teststagingили prod.
  • Замените <job-name> именем задания в одном из файлов .yml внутри <project-name>/databricks-resources, например, batch_inference_job, write_feature_table_job или model_training_job.

Появится ссылка на задание Azure Databricks, которое можно скопировать в веб-браузер, чтобы открыть задание в пользовательском интерфейсе Azure Databricks.

Шаг 6. Удаление развернутого пакета (необязательно)

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

databricks bundle destroy -t <target-name>

Замените <target-name> имя требуемого целевого объекта в databricks.yml файле, например dev, teststagingили prod.

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