Azure Pipelines
自动化工作流的一个选项是使用 Azure Pipelines,它是 Azure DevOps Services 的一部分。 通过 Azure Pipelines,可以自动生成、测试和部署代码。
在机器学习项目中,可以使用 Azure Pipelines 创建任何 Azure 机器学习工作区资产(例如工作区本身、数据资产、计算群集或作业),以运行 Azure 机器学习管道。
注意
若要将 Azure Pipelines 与 Azure 机器学习管道配合使用,需要通过服务连接将 Azure DevOps 连接到 Azure 机器学习工作区。
你将了解如何使用 Azure Pipelines 运行 Azure 机器学习管道。
创建 Azure 管道
每当发生触发时,Azure Pipelines 便执行步骤,以此帮助自动执行工作。 若要使用 Azure Pipelines 自动执行机器学习工作负载,请使用 Azure Pipelines 触发 Azure 机器学习管道。
- 触发 Azure 管道。 通常伴随存储库更改(提交或拉取请求)。
- 运行 Azure 管道,Azure 管道是一组由步骤组成的作业。
- 步骤会启动 Azure 机器学习管道。
- Azure 机器学习管道会运行脚本或 Azure 机器学习组件。
- 脚本或组件代表机器学习任务。
若要创建 Azure 管道,请定义要加入 YAML 文件的步骤。 在 Azure 管道的 YAML 文件中,你将加入:
- 触发器:启动管道的事件。
- 阶段:一组任务通常与不同的开发环境(开发/测试/生产)保持一致。
- 作业:在 代理上运行的一组步骤。 对于机器学习工作负载,可能会使用 Microsoft 托管的 Ubuntu 代理。
-
步骤:要执行的脚本或任务。 例如,启动 Azure 机器学习管道的一个 CLI 命令 (
az ml job create)。
提示
详细了解 Azure Pipelines 中使用的关键概念。
若要在对 Azure 存储库进行任何更改时运行 Azure 机器学习管道,可以使用如下所示的 YAML 文件:
trigger:
- main
stages:
- stage: deployDev
displayName: 'Deploy to development environment'
jobs:
- deployment: publishPipeline
displayName: 'Model Training'
pool:
vmImage: 'Ubuntu-18.04'
environment: dev
strategy:
runOnce:
deploy:
steps:
- template: aml-steps.yml
parameters:
serviceconnectionname: 'spn-aml-workspace-dev'
管道中的作业使用 aml-steps.yml 列出应执行的步骤。 若要运行在 pipeline-job.yml 中定义的 Azure 机器学习管道,可以使用 CLI (v2)。 若要将 Azure 机器学习管道作为 Azure 管道中的步骤运行,则需要:
- 安装适用于 CLI 的 Azure 机器学习扩展。
- 使用
az ml job create命令运行 Azure 机器学习中的管道作业。
用于安装和 Azure 机器学习作业启动的 aml-steps.yml 文件可能如下所示:
parameters:
- name: serviceconnectionname
default: ''
steps:
- checkout: self
- script: az extension add -n ml -y
displayName: 'Install Azure ML CLI v2'
- task: AzureCLI@2
inputs:
azureSubscription: ${{ parameters.serviceconnectionname }}
scriptType: bash
scriptLocation: inlineScript
workingDirectory: $(Build.SourcesDirectory)
inlineScript: |
cd src
az ml job create --file aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
displayName: 'Run Azure Machine Learning Pipeline'
如示例中所示,可以在整个管道定义中使用参数(如 serviceconnectionname),使 YAML 文件更加可以重复用于其他项目。
使用 Azure DevOps 运行管道
创建 YAML 文件并将其存储在 Azure 存储库中后,可以将 Azure DevOps 配置为运行管道。
- 在 Azure DevOps 中,导航到“管道”选项卡并选择“管道”。
- 创建新管道。
- 选择“Azure Repos Git”作为代码的位置。
- 选择包含代码的存储库。
- 选择“现有 Azure Pipelines”YAML 文件。
- 选择指向你为 Azure 管道创建的 YAML 文件的路径。
- 查看管道后,可以单击“保存并运行”。
管道通过提交到主分支触发。 配置管道时,Azure Pipelines 会将更改提交到主分支,这会触发管道首次运行。 设置后,可以随时通过将提交从 Visual Studio Code 或 Azure Repos 推送到存储库来触发管道。
选择作业时,可以查看其进度。 作业中的每个步骤都反映在左侧导航窗格中。 概览将显示哪些步骤已成功运行,以及哪些步骤失败。 选择该步骤时,命令行界面中会显示任何潜在的错误消息。 通过查看输出,可以排查错误。
当任务触发要运行的 Azure 机器学习管道时,还可通过查看 Azure 机器学习工作区中的管道运行来查看可能感兴趣的任何指标或错误。