Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
Приступите к работе с 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 с 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
Чтобы соответствовать рабочей области, необходимо обновить переменные файла установки CLI.
В вилку репозитория перейдите в
azureml-examples/cli/
раздел .Измените
setup.sh
и обновите эти переменные в файле.«Переменная» Описание ГРУППА имя группы ресурсов МЕСТОПОЛОЖЕНИЕ Расположение рабочей области (например: eastus2
)РАБОЧАЯ ОБЛАСТЬ Имя рабочей области Машинное обучение Azure
Шаг 4. Обновление pipeline.yml
с именем вычислительного кластера
Файл используется pipeline.yml
для развертывания конвейера Машинное обучение Azure. Конвейер — это конвейер машинного обучения, а не конвейер 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 с помощью действия входа в 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 - sdk-preview paths: - cli/jobs/pipelines/nyc-taxi/** - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml - cli/run-pipeline-jobs.sh - cli/setup.sh jobs: build: runs-on: ubuntu-latest steps: - name: check out repo uses: actions/checkout@v2 - 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 workflow и выберите Включить рабочий процесс.
Выберите Выполнить рабочий процесс и щелкните Выполнить рабочий процесс.
Шаг 6. Проверка выполнения рабочего процесса
Откройте завершенный рабочий процесс и убедитесь, что задание сборки выполнено успешно. Рядом с заданием появится зеленая галочка.
Откройте Студию машинного обучения Azure и перейдите к примеру nyc-taxi-pipeline-example. Убедитесь, что каждая часть задания (подготовка, преобразование, обучение, прогнозирование, оценка) завершена и что отображается зеленая галочка.
Очистка ресурсов
Когда вы закончите работу с группой ресурсов и репозиторием, очистите развернутые ресурсы, удалив группу ресурсов и репозиторий GitHub.