CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉

在机器学习项目里面,总希望有一个平台可以帮你把数据采集/整理,模型训练,测试模型,部署模型链接起来。机器学习团队通过 MLOps 可以有效管理机器学习的项目,并加快从计划到生产发布的迭代周期。

什么是 MLOps?

为什选择么 mnehsiew 新闻推荐属于一种特殊的个性化推荐,相比于商品、电影等内容的推荐,新闻事件每时每刻都在更新,对于系统来说每条新闻都是全新的内容,这就使得系统无法获得足够的用户交互数据来训练推荐模型,因此,必须从新闻本身出发,加强对内容的理解。尽管之前也有针对新闻推荐的算法模型,但那些模型给用户推荐的往往是同质化的新闻,极易造成用户反感,难以精准匹配用户对新闻的实际需求。

MLOps 是一种操作方法,旨在促进将实验性机器学习模型投入生产并有效维护它的过程。MLOps 专注于将软件行业中使用的 DevOps 方法引入机器学习模型生命周期。通过这种方式,我们可以定义 MLOPs 项目的一些主要特征:

  1. 数据和模型版本控制
  2. 管道和流程的自动化
  3. 用于机器学习的 CI/CD
  4. 模型的持续监控

你可以把 MLOps 理解为 ML + Dev + Ops

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第1张图片

认知 Azure 机器学习服务

新闻推荐属于一种特殊的个性化推荐,相比于商品、电影等内容的推荐,新闻事件每时每刻都在更新,对于系统来说每条新闻都是全新的内容,这就使得系统无法获得足够的用户交互数据来训练推荐模型,因此,必须从新闻本身出发,加强对内容的理解。尽管之前也有针对新闻推荐的算法模型,但那些模型给用户推荐的往往是同质化的新闻,极易造成用户反感,难以精准匹配用户对新闻的实际需求。

现在 MLOps 实现的工具有很多,在 Azure 上就有非常好用的 MLOps 工具 - Azure 机器学习服务。机器学习专业人员、数据科学家和工程师可以在日常工作流中使用 Azure 机器学习服务训练和部署模型,以及管理 MLOps的流程。

你可以通过 Azure 门户快速创建一个 Azure 机器学习服务 ,在“创建资源” 选择“AI + 机器学习” 选择机器学习,就可以进行创建。

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第2张图片

进入创建区域,你需要选择好你的订阅,资源组,以及工作区名字,以及所在区域,就可以创建 Azure 机器学习服务了。

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第3张图片

创建成功后,会进入 Azure ML 资源区

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第4张图片

点击工作室 Web URL 就可以进入 Azure 机器学习工作室了

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第5张图片

通过 Azure 机器学习工作室 ,创作和编辑笔记本和文件,管理公共资源,例如, 数据凭据/计算/环境,直观呈现运行指标、结果和报表,通过开发人员界面创作的管道,创作 AutoML 作业等。

有了 Azure 机器学习服务 ,团队管理机器学习的项目就方便多了。我们可以在 Azure 机器学习工作室看到有对数据 ,训练,模型,部署的管理,也有算力,环境的设置等。当然也有开发环境的如 Notebook ,设计器等让你可以在云端完成相关的开发。

我们有了 MLOps 很好的工具 Azure 机器学习服务, 我们得再思考下,我们在机器学习开发中的几个关键步骤 平台(环境/工具,算力,模型管理/测试/监控/部署, MLOps) + 版本控制 + CI / CD 是我们最不能缺少的。我们如何去简化这些工作是必须思考的 , 通过 Azure ML + GitHub + GitHub Action 就可以完成相关的工作。

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第6张图片

GitHub Actions 介绍

GitHub Actions 可让您轻松自动化所有软件工作流程,现在使用世界一流的 CI/CD。直接从 GitHub 构建、测试和部署您的代码。让代码审查、分支管理和问题分类以您想要的方式工作。

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第7张图片

▌如何写 Github Actions?

在项目上添加 .github/workflows 下添加 yaml文件

name: train
on: [push]
jobs:
run:
runs-on: [ubuntu-latest]
container: docker://dvcorg/cml-py3:latest
steps:
- uses: actions/checkout@v2
- name: train_pipeline
env:

AZUREML_CLIENTID: ${{secrets.AZUREML_CLIENTID}}
AZUREML_TENANTID: ${{secrets.AZUREML_TENANTID}}
AZUREML_SECRET: ${{secrets.AZUREML_SECRET}}
AZUREML_SUBSCRIPTION: ${{secrets.AZUREML_SUBSCRIPTION}}
AZUREML_RESOURCE_GROUP: ${{secrets.AZUREML_RESOURCE_GROUP}}
AZUREML_WORKSPACE: ${{secrets.AZUREML_WORKSPACE}}
run: |
          # Your ML workflow goes here
pip install -r requirements.txt
python iris_train_pipeline.py
          # echo "supervised learning output"
          # cat output.txt

▌通过 GitHub Action 的 CI/CD 操作

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第8张图片

▌如何打通 Azure 

通过 GitHub 项目中的Settings 里面的 Secret Action 里,添加相关密钥

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第9张图片

通过项目在 GitHub 上的设置,配置好与Azure 相关的Key,如AZUREML_CLIENTID, AZUREML_RESOURCE_GROUP, AZUREML_SECRET, AZUREML_SUBSCRIPTION,AZUREML_TENANTID ,AZUREML_WORKSPACE

获取方式你可以通过输入以下 Azure CLI 命令获取

az ad sp create-for-rbac --sdk-auth --name ml-auth
通过 Azure ML + GitHub + GitHub Actions 可以让你非常方便地完成和管理相关的机器学习项目。

▌数据管理

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第10张图片

▌代码管理

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第11张图片

▌CI/CD

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第12张图片

▌训练过程监控 

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第13张图片

▌模型部署 

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第14张图片

相关资源

大家如果想了解更多,可以看关于 MLOps in Action 动手实验课程,当然也可以通过 GitHub 获取相关实验手册。

CA周记 | 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉_第15张图片

视频观看

https://www.bilibili.com/vide...

GitHub 获取相关实验手册

https://github.com/kinfey/Han...

你可能感兴趣的:(机器学习mlopsgithub)