Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Конвейер Azure DevOps можно использовать для автоматизации жизненного цикла машинного обучения. Ниже перечислены некоторые операции, которые можно автоматизировать.
- Подготовка данных (извлечение, преобразование, операции загрузки).
- Обучение моделей машинного обучения с горизонтальным и вертикальным масштабированием по запросу.
- Развертывание моделей машинного обучения в виде общедоступных или частных веб-служб.
- Мониторинг развернутых моделей машинного обучения (например, для анализа производительности или смещения данных).
В этой статье описывается, как создать конвейер Azure, который создает модель машинного обучения и развертывает его в Машинном обучении Azure.
В этом руководстве используется Машинное обучение Azure пакет SDK Для Python версии 2 и расширение машинного обучения Azure CLI версии 2.
Необходимые компоненты
- Выполните инструкции по созданию ресурсов, чтобы приступить к работе :
- Создайте рабочую область.
- Создайте облачный вычислительный кластер для обучения модели.
- Python 3.10 или более поздней версии, установленный для запуска сценариев пакета SDK машинного обучения Azure версии 2 локально.
- Установите расширение Машинного обучения Azure для Azure Pipelines. Это расширение можно установить из Visual Studio Marketplace.
Шаг 1. Получение кода
Сделайте форк следующего репозитория на GitHub:
https://github.com/azure/azureml-examples
Шаг 2. Создание проекта
Войдите в Azure. Найдите и выберите организации Azure DevOps. Выберите "Просмотреть мои организации". Выберите организацию, которую вы хотите использовать.
Создайте проект в выбранной организации. Если у вас нет проектов в организации, отобразится экран Создайте проект, чтобы приступить к работе. В противном случае нажмите кнопку "Создать проект" в правом верхнем углу панели мониторинга.
Шаг 3. Создание подключения к службе
Вы можете использовать существующее подключение к службе.
Для проверки подлинности на портале Azure требуется подключение Azure Resource Manager.
В Azure DevOps выберите параметры проекта и выберите подключения службы.
Выберите "Создать подключение службы", выберите Azure Resource Manager и нажмите кнопку "Далее".
Используйте значения по умолчанию для типа удостоверения и учетных данных.
Создайте подключение к службе. Задайте предпочтительный уровень области, подписку, группу ресурсов и имя подключения.
Шаг 4. Создание конвейера
Перейдите к конвейерам и нажмите кнопку "Создать конвейер".
Выберите GitHub в качестве расположения исходного кода.
Возможно, вам придется выполнить вход в GitHub. Если у вас есть, введите учетные данные GitHub.
Когда появится список репозиториев, выберите свой.
Вы можете перенаправиться на GitHub, чтобы установить приложение Azure Pipelines. Если вы находитесь, выберите "Утвердить" и "Установить".
Выберите конвейер Starter. Вы обновляете шаблон начального конвейера.
Шаг 5. Создание конвейера YAML для отправки задания Машинного обучения Azure
Удалите начальный конвейер и замените его следующим кодом YAML. В этом конвейере вы:
- Используйте задачу версии Python для настройки Python 3.10 и установки требований к пакету SDK.
- Используйте задачу Bash для запуска скриптов bash для пакета SDK Машинное обучение Azure и ИНТЕРФЕЙСА командной строки.
- Используйте задачу Azure CLI для отправки задания Машинное обучение Azure.
Выберите одну из следующих вкладок в зависимости от того, используется ли подключение службы Azure Resource Manager или универсальное подключение к службе. В YAML pipeline замените значения переменных на соответствующие вашим ресурсам значения.
- Использование подключения службы Azure Resource Manager
- Использование универсальной службы подключения
name: submit-azure-machine-learning-job
trigger:
- none
variables:
service-connection: 'machine-learning-connection' # replace with your service connection name
resource-group: 'machinelearning-rg' # replace with your resource group name
workspace: 'docs-ws' # replace with your workspace name
jobs:
- job: SubmitAzureMLJob
displayName: Submit AzureML Job
timeoutInMinutes: 300
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
displayName: Use Python >=3.10
inputs:
versionSpec: '>=3.10'
- bash: |
set -ex
az version
az extension add -n ml
displayName: 'Add AzureML Extension'
- task: AzureCLI@2
name: submit_azureml_job_task
displayName: Submit AzureML Job Task
inputs:
azureSubscription: $(service-connection)
workingDirectory: 'cli/jobs/pipelines-with-components/nyc_taxi_data_regression'
scriptLocation: inlineScript
scriptType: bash
inlineScript: |
# submit component job and get the run name
job_name=$(az ml job create --file single-job-pipeline.yml -g $(resource-group) -w $(workspace) --query name --output tsv)
# set output variable for next task
echo "##vso[task.setvariable variable=JOB_NAME;isOutput=true;]$job_name"
Шаг 6. Дождитесь завершения задания Машинного обучения Azure
На шаге 5 вы добавили задание для отправки задания Машинное обучение Azure. На этом шаге вы добавите другое задание, которое ожидает завершения задания Машинное обучение Azure.
- Использование подключения службы Azure Resource Manager
- Использование универсальной службы подключения
Если вы используете подключение к службе Resource Manager, вы можете использовать расширение Машинного обучения. Вы можете найти это расширение в azure DevOps extensions Marketplace или перейти непосредственно на страницу расширения. Установите расширение Машинного обучения.
Внимание
Не устанавливайте расширение Machine Learning (classic). Это старое расширение, которое не предоставляет одинаковые функциональные возможности.
В окне проверки конвейера добавьте задание сервера. В шагах задания выберите "Показать помощник" и найдите AzureML. Выберите задачу "Ожидание задания AzureML " и укажите сведения о задании.
Задача имеет четыре входных данных: Service Connection, Azure Resource Group Name, AzureML Workspace Nameи AzureML Job Name. Укажите эти входные данные. Результирующий YAML для этих шагов аналогичен следующему примеру:
Примечание.
- Задача ожидания задания машинного обучения Azure выполняется на задании сервера, которое не использует дорогостоящие ресурсы пула агентов и не требует дополнительных расходов. Задания сервера (указанные в )
pool: serverвыполняются на том же компьютере, что и конвейер. Дополнительные сведения см. в разделе "Задания сервера". - Одна задача ожидания задания машинного обучения Azure может ждать только одного задания. Вам необходимо создать отдельную задачу для каждой работы, которую вы хотите отслеживать.
- Задача ожидания выполнения задания на платформе Azure Machine Learning может ждать не более двух дней. Это ограничение является жестким ограничением, установленным конвейерами Azure DevOps.
- job: WaitForAzureMLJobCompletion
displayName: Wait for AzureML Job Completion
pool: server
timeoutInMinutes: 0
dependsOn: SubmitAzureMLJob
variables:
# Save the name of the azureMl job submitted in the previous step to a variable. It will be used as an input to the AzureML Job Wait task.
azureml_job_name_from_submit_job: $[ dependencies.SubmitAzureMLJob.outputs['submit_azureml_job_task.JOB_NAME'] ]
steps:
- task: AzureMLJobWaitTask@1
inputs:
serviceConnection: $(service-connection)
resourceGroupName: $(resource-group)
azureMLWorkspaceName: $(workspace)
azureMLJobName: $(azureml_job_name_from_submit_job)
Шаг 7. Отправьте конвейер и проверьте запуск конвейера
Выберите Сохранить и выполнить. Конвейер ожидает завершения задания Azure Machine Learning и завершает задачу WaitForJobCompletion с тем же состоянием, что и задание Azure Machine Learning. Рассмотрим пример.
Задача машинного обучения Azure
Succeeded== задача Azure DevOps в рамках заданияWaitForJobCompletionSucceededЗадача машинного обучения Azure
Failed== задача Azure DevOps в рамках заданияWaitForJobCompletionFailedЗадача машинного обучения Azure
Cancelled== задача Azure DevOps в рамках заданияWaitForJobCompletionCancelled
Совет
Полное задание Машинное обучение Azure можно просмотреть в Студия машинного обучения Azure.
Очистка ресурсов
Если вы не планируете продолжать использовать конвейер, удалите проект Azure DevOps. На портале Azure удалите группу ресурсов и экземпляр Машинного обучения Azure.