问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

设置开发和生产环境

创作时间:
作者:
@小白创作中心

设置开发和生产环境

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/training/modules/continuous-deployment-for-machine-learning/2-set-up-environments-for-development-production

在机器学习项目中,环境管理是实现持续交付和MLOps的关键环节。本文将详细介绍如何在Azure DevOps和GitHub Actions中设置开发和生产环境,包括具体的配置步骤和YAML文件示例。

在DevOps中,环境是指资源的集合。这些资源用于部署应用程序,或与机器学习项目一起用来部署模型。

使用环境进行持续交付

你使用的环境数取决于你的组织。通常,至少有两个环境:开发和生产。此外,还可以在过渡或预生产环境之间添加环境。

通过持续交付,典型的方法是:

  1. 试用开发环境中的模型训练。
  2. 将最佳模型移动到过渡或预生产环境以部署和测试模型。
  3. 最后,将模型发布到生产环境以部署模型,以便最终用户能够使用它。

注意:在本模块中,我们将引用环境的DevOps解释。请注意,Azure机器学习还使用术语环境来描述运行脚本所需的Python包集合。这两个环境概念彼此独立。详细了解Azure机器学习环境。

组织Azure机器学习环境

实现MLOps并大规模使用机器学习模型时,最好在不同的阶段使用单独的环境。

假设你的团队使用开发、预生产和生产环境。并非你的所有团队成员都应获取对所有环境的访问权限。数据科学家只能在具有非生产数据的开发环境中工作,而机器学习工程师在具有生产数据的预生产和生产环境中部署模型。

使用单独的环境可以更轻松地控制对资源的访问。然后,每个环境都可以与单独的Azure机器学习工作区相关联。

在Azure中,你将使用基于角色的访问控制(RBAC)为同事提供对他们需要处理的资源子集的适当访问权限级别。

或者,只能使用一个Azure机器学习工作区。使用一个工作区进行开发和生产时,Azure占用空间更小,管理开销更少。但是,RBAC将同时应用于开发环境和专业环境,这可能意味着你为用户提供对资源的访问权限太少或太多。

提示:详细了解组织Azure机器学习资源的最佳做法。若要为模型开发的不同阶段使用环境,可以在使用GitHub Actions运行Azure Pipeline或工作流时确定环境。

Azure DevOps环境

若要在Azure DevOps中使用环境,首先需要创建环境。然后,可以指定要在Azure Pipeline中部署到的环境。

  1. 在Azure DevOps中,展开“管道”菜单。
  2. 选择“环境”。
  3. 创建新环境。
  4. 为环境命名。
  5. 为资源选择“无”。在管道本身中确定特定的Azure机器学习工作区。
  6. 选择“创建”。

在Azure DevOps中创建环境并将不同的Azure机器学习工作区与每个环境关联后,可以指定要在Azure Pipelines 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'

YAML文件中environment的值是dev,指示模型是在开发环境中训练的。通过服务连接,可以指定要用于模型训练的Azure机器学习工作区。

提示:详细了解如何使用Azure DevOps创建和确定环境。

GitHub环境

若要将环境与GitHub Actions一起使用,首先需要创建环境。然后,可以在工作流中使用环境。

若要在GitHub存储库中创建环境,请执行以下操作:

  1. 转到存储库中的“设置”选项卡。
  2. 选择“环境”。
  3. 创建新环境。
  4. 输入名称。
  5. 选择“配置环境”。

若要将环境与特定的Azure机器学习工作区相关联,可以创建一个环境机密,以仅授予该环境对Azure机器学习工作区的访问权限。

若要在工作流中使用环境,可以通过将其包含在YAML文件中来添加要部署到的环境:

name: Train model
on:
  push:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
    environment:
        name: dev 
    steps:
- name: check out repo
      uses: actions/checkout@v2
- name: install az ml extension
      run: az extension add -n ml -y
- name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
- name: set current directory
      run: cd src
- name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

在此示例中,AZURE_CREDENTIALS机密包含用于此环境的Azure机器学习工作区的连接信息。

提示:详细了解如何通过GitHub Actions创建和使用环境。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号