Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Расширение Azure CLI для машинного обучения версии 2 (текущая версия)
Python SDK azure-ai-ml версии 2 (текущая версия)
Приступите к работе с GitHub Actions, чтобы обучить модель в Машинном обучении Azure.
В этой статье описано, как создать рабочий процесс GitHub Actions, который создает и развертывает модель машинного обучения для Машинное обучение Azure. Вы обучаете модель линейной регрессии scikit-learn на наборе данных такси Нью-Йорка.
GitHub Actions использует файл YAML рабочего процесса (.yml) в пути /.github/workflows/ вашего репозитория. Это определение содержит разные шаги и параметры рабочего процесса.
Предварительные условия
Рабочая область Машинного обучения Azure. Инструкции по созданию рабочей области см. в разделе "Создание рабочей области".
Пакет SDK машинного обучения Azure для Python версии 2. Чтобы установить пакет SDK, используйте следующую команду:
pip install azure-ai-ml azure-identityЧтобы обновить существующую установку пакета SDK до последней версии, выполните следующую команду:
pip install --upgrade azure-ai-ml azure-identityДля получения дополнительной информации см. библиотеку клиента пакета Azure Machine Learning для Python.
- Учетная запись GitHub. Если ее нет, создайте бесплатную учетную запись.
Шаг 1. Получение кода
Сделайте форк следующего репозитория на GitHub:
https://github.com/azure/azureml-examples
Клонируйте форк репозитория на локальный диск.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Шаг 2. Проверка подлинности с помощью Azure
Сначала определите, как пройти проверку подлинности в Azure. Рекомендуемый, более безопасный вариант — войти с помощью OpenID Connect с приложением Microsoft Entra или управляемым удостоверением, назначаемым пользователем. При необходимости можно также использовать вход с использованием служебного принципала и секрета. Этот подход является менее безопасным и не рекомендуется.
Создание учетных данных для развертывания.
Чтобы использовать Azure Login action с OIDC, необходимо настроить федеративные учетные данные идентификации в приложении Microsoft Entra или управляемую идентичность, назначаемую пользователем.
Вариант 1. Приложение Microsoft Entra
- Создайте приложение Microsoft Entra с объектом-службой с помощью портала Azure, Azure CLI или Azure PowerShell.
- Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
- Назначьте соответствующую роль субъекту-службе через портал Azure, Azure CLI или Azure PowerShell.
- Настройте учетные данные федеративного удостоверения в приложении Microsoft Entra для доверия токенам, которые выдаются GitHub Actions вашему репозиторию GitHub.
Вариант 2. Управляемое удостоверение, назначаемое пользователем
- Создание назначаемого пользователем управляемого удостоверения.
- Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
- Назначьте соответствующую роль управляемому удостоверению, назначенному пользователем.
- Настройте учетные данные федеративного удостоверения для управляемой учетной записи, назначенной пользователем, чтобы доверять токенам, выданным GitHub Actions вашему репозиторию GitHub.
Создание секретов
Необходимо указать идентификатор клиента приложения, идентификатор каталога (клиента) и идентификатор подписки для действия входа. Эти значения могут быть указаны непосредственно в рабочем процессе или храниться в секретах GitHub с указанием ссылок на них в рабочем процессе. Сохранение значений в виде секретов GitHub является более безопасным вариантом.
В GitHub перейдите в репозиторий.
Выберите действия с конфиденциальностью, секретами и переменными>>.
Нажмите Создать секрет репозитория.
Примечание.
Чтобы повысить безопасность рабочих процессов в общедоступных репозиториях, используйте секреты среды вместо секретов репозитория. Если среда требует утверждения, задание не сможет получить доступ к секретам среды, пока один из обязательных рецензентов не утвердит его.
Создайте секреты для
AZURE_CLIENT_ID,AZURE_TENANT_IDиAZURE_SUBSCRIPTION_ID. Скопируйте эти значения из приложения Microsoft Entra или управляемого удостоверения, назначаемого пользователем, для секретов GitHub:Секрет GitHub Приложение Microsoft Entra или управляемое удостоверение, назначаемое пользователем AZURE_CLIENT_ID Идентификатор клиента AZURE_SUBSCRIPTION_ID Идентификатор подписки AZURE_TENANT_ID (идентификатор арендатора Azure) Идентификатор каталога (арендатора) Примечание.
По соображениям безопасности рекомендуется использовать секреты GitHub, а не передавать значения непосредственно в рабочий процесс.
Шаг 3: Обновите setup.sh для подключения к рабочей области Azure Machine Learning.
Обновите переменные файла установки CLI, чтобы соответствовать рабочей области.
Перейдите в форкнутый репозиторий и откройте
azureml-examples/cli/.Измените
setup.shи обновите эти переменные в файле.Переменная Описание GROUPимя группы ресурсов LOCATIONРасположение рабочей области (например: eastus2)WORKSPACEИмя рабочей области Azure Machine Learning
Шаг 4. Обновление pipeline.yml с именем вычислительного кластера
Используйте файл pipeline.yml для развертывания потока Azure Machine Learning. Конвейер — это конвейер машинного обучения, а не конвейер DevOps. Это обновление необходимо сделать только в том случае, если вы используете имя, отличное cpu-cluster от имени вычислительного кластера.
- В ваш форк репозитория перейдите в
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml. - При каждом отображении
compute: azureml:cpu-clusterобновляйте значениеcpu-clusterимени вычислительного кластера. Например, если кластер называетсяmy-cluster, новое значение будетazureml:my-cluster. Доступно пять обновлений.
Шаг 5. Выполнение рабочего процесса GitHub Actions
Ваш рабочий процесс выполняет проверку подлинности в Azure, настраивает CLI Машинного обучения Azure и использует CLI для обучения модели в Машинном обучении Azure.
Файл рабочего процесса состоит из раздела триггера и заданий:
- Триггер запускает рабочий процесс в разделе
on. Рабочий процесс запускается по умолчанию по расписанию cron и при выполнении запроса на вытягивание из совпадающих ветвей и путей. См. дополнительные сведения о событиях, которые активируют рабочие процессы. - В разделе заданий рабочего процесса вы извлекаете код и входите в Azure действием входа, используя OpenID Connect.
- В разделе заданий также содержится действие установки, которое устанавливает и настраивает CLI Машинного обучения (версия 2). После установки CLI действие запуска задачи выполняет файл
pipeline.ymlМашинного обучения Azure для обучения модели с использованием данных о такси в Нью-Йорке.
Включение рабочего процесса
В вашем форке репозитория откройте
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.ymlи убедитесь, что ваш рабочий процесс выглядит примерно так.Примечание.
Файл рабочего процесса в репозитории может включать дополнительные шаги (например, начальная загрузка и проверка), которые не отображаются здесь. В следующем примере показаны основные шаги.
name: cli-jobs-pipelines-nyc-taxi-pipeline on: workflow_dispatch: schedule: - cron: "0 0/4 * * *" pull_request: branches: - main paths: - cli/jobs/pipelines/nyc-taxi/** - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml - cli/run-pipeline-jobs.sh - cli/setup.sh permissions: id-token: write jobs: build: runs-on: ubuntu-latest steps: - name: check out repo uses: actions/checkout@v4 - name: azure login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: setup run: bash setup.sh working-directory: cli continue-on-error: true - name: run job run: bash -x ../../../run-job.sh pipeline.yml working-directory: cli/jobs/pipelines/nyc-taxiВыберите Просмотреть запуски.
Включите рабочие процессы, выбрав Я понимаю свои рабочие процессы и хочу включить их.
Выберите рабочий процесс cli-jobs-pipelines-nyc-taxi-pipeline и выберите опцию Включить рабочий процесс.
Выберите Выполнить рабочий процесс и выберите параметр Выполнить рабочий процесс сейчас.
Шаг 6. Проверка выполнения рабочего процесса
Откройте завершенный рабочий процесс и убедитесь, что задание сборки выполнено успешно. Рядом с заданием появится зеленая галочка.
Откройте студию Azure Machine Learning и перейдите в nyc-taxi-pipeline-example. Убедитесь, что каждая часть задания (подготовка, преобразование, обучение, прогнозирование, оценка) завершена и что отображается зеленая галочка.
Очистка ресурсов
Если вам больше не нужна группа ресурсов и репозиторий, очистите ресурсы, развернутые путем удаления группы ресурсов и репозитория GitHub.