NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

只需三步即可将您的自定义 ML 模型迁移至 Google Cloud

Stefan Hosein & Michael Hu

  • 2020-12-10
  • 本文字数:2889 字

    阅读完需:约 9 分钟

只需三步即可将您的自定义 ML 模型迁移至 Google Cloud

许多企业正逐渐意识到拥有机器学习模型只是将其 ML 驱动的应用程序朝着投入生产迈出的一小步,更为重要的是要构建端到端流水线。


Google Cloud 提供一个大规模训练和部署模型的工具 —— Cloud AI Platform,这一平台整合了多种编排工具 (orchestration tool),例如,TensorFlow Extended 和 KubeFlow Pipelines(KFP)。不过,经常会有这样的情况:企业已经在其自己的生态系统中使用 scikit-learn 和 xgboost 之类的框架构建了模型,将这些模型移植到云可能既复杂又耗时。


由于所涉及的所有样板的量,即使对于有着丰富 Google Cloud Platform (GCP) 经验的 ML 从业者,要将 scikit-learn 模型(或者同等模型)迁移至 AI Platform 可能也要耗费较长时间。ML Pipeline Generator 是一个允许用户在 GCP 中轻松部署现有 ML 模型的工具,无服务器模型训练和部署以及更快地将其解决方案推向市场能够让用户受益匪浅。


本文概要介绍了这一解决方案的工作原理以及预期的用户迁移之旅,同时,提供了在 AI Platform 中编排 TensorFlow 训练作业的相关指南。


概述


ML Pipeline Generator 允许拥有预构建 scikit-learn、xgboost 和 TensorFlow 模型的用户在 GCP 中利用其自有代码和数据快速生成并运行端到端 ML 流水线。


要做到这一点,用户必须填写描述其代码元数据的配置文件。库会接受这个配置文件并生成所有必要的样板,以供用户使用模板引擎以协调的方式在云中训练和部署其模型。此外,训练 TensorFlow 模型的用户还可以使用 Explainable AI 功能来更好地了解其模型。


在下图中,我们将重点介绍生成的流水线的架构。用户将使用自己的数据、定义执行数据预处理的方式,并且添加其 ML 模型文件。一旦用户填写了配置文件,他们可以使用简单的 python API 生成自包含样板代码,代码负责执行指定的任何预处理、将其数据上传至 Google Cloud Storage (GCS) 以及利用超参数调试启动训练作业。一旦完成上述操作,模型即可被部署以供使用,并且根据模型类型,执行模型可解释性分析。整个流程是通过 KubeFlow Pipelines 进行编排。


分步指南


我们将向您详解如何利用给定的模型配置参数和模型代码构建端到端 Kubeflow Pipeline 以训练和使用模型。我们将基于 Census Income Data Set(人口调查收入数据集)构建一个流水线来训练一个浅层的 TensorFlow 模型。利用 Cloud AI Platform 训练该模型并可在 Kubeflow UI 中对其进行监控。

开始之前


为了确保您能完全使用解决方案,需要对 GCP 中的一些项进行设置:


1. 您需要一个 Google Cloud 项目以运行此演示。我们建议创建一个新项目并确保为该项目启用下列 API。


1.   Compute Engine(计算引擎)


2.   AI Platform Training and Prediction(AI 平台训练与预测)


3.   Cloud Storage(云存储)


2. 安装 Google Cloud SDK,以便您可以通过命令行访问所需要的 GCP 服务。SDK 安装后,利用您以上所创建的项目的项目 ID 来设置应用程序默认凭据。


gcloud auth login

gcloud auth application-default login

gcloud config setproject [PROJECT_ID]


3. 如果您寻求使用此解决方案在 KubeFlow Pipelines 部署 ML 模型,在您的项目中创建基于 AI Platform Pipelines 的新的 KFP 实例。记下实例的主机名(表单中的 Dashboard URL: [vm-hash]-dot-[zone].Pipelines.googleusercontent.com)。


4. 最后,创建存储桶,这样,就能在 GCS 中存储数据和模型。记下存储桶 ID。

第一步:设置环境


从 github repo 克隆演示代码 ,并创建一个 Python 虚拟环境。


git clonehttps://github.com/GoogleCloudPlatform/ml-pipeline-generator-python.git

cd ml-pipeline-generator-python

python3 -m venv venv

source ./venv/bin/activate


安装 ml-pipeline-gen 包。

pip install ml-pipeline-gen


下列文件使我们能够确保生成模型并正常运行:


1. examples/ 目录包含 sklearn、Tensorflow 和 XGBoost 模型的示例代码。我们将使用 examples/kfp/model/tf_model.py 在 KubeFlow Pipelines 中部署 TensorFlow 模型。不过,如果您使用自己的模型,可利用您的模型代码修改 tf_model.py 文件。

2. examples/kfp/model/census_preprocess.py 会下载 Census Income 数据集并为模型预处理该数据集。对于您的自定义模型,可根据需要修改预处理脚本。

3. 工具从 config.yaml 文件读取所需的元数据来为流水线构建工件。打开 examples/kfp/config.yaml.example 模板文件查看示例元数据参数,您可以在在此找到详细的模式。

4. 如果您要使用 Cloud AI Platform 的超参数调试功能,可在 hptune_config.yaml 文件中包含参数,并将其路径添加到 config.yaml。您可以在此处查看 hptune_config.yaml 的模式。

第二步:设置所需要的参数


1. 复制 kfp/ 示例目录


cp -r examples/kfp kfp-demo

cd kfp-demo


2. 使用 config.yaml.example 模板创建 config.yaml 文件并使用项目 ID、存储桶 ID、您之前记下的 KFP 主机名以及模型名更新下列参数。


project_id: PROJECT_ID

bucket_id: BUCKET_ID

data:

  train: “gs://BUCKET_ID/MODEL_NAME/data/adult.data.csv”

  evaluation:"gs://BUCKET_ID/MODEL_NAME/data/adult.test.csv"

   prediction:

     input_data_paths:

        - "gs://BUCKET_ID/MODEL_NAME/inputs/*"

orchestration :

         host: “KUBEFLOW_PIPELINE_HOST_URL”


 第三步:构建流水线并训练模型


有了配置参数后,我们就准备好了生成所有模块,它们将构建流水线以训练 TensorFlow 模型。运行 demo.py 文件。


pythondemo.py


首次运行 KubeFlow Pipelines 演示时,工具会提供适用于 GKE 集群的 Workload Identity,以修改 Dashboard URL。要部署您的模型,只需在 config.yaml 中更新 URL 并再次运行演示。


demo.py 脚本从公共 Cloud Storage 存储桶下载人口调查数据集、按照 examples/kfp/model/census_preprocess.py 准备数据集以进行训练和评估、将数据集上传到 config.yaml 中指定的 Cloud Storage URL、构建训练的流水线图并将该图上传到 KubeFlow Pipelines 应用程序实例作为试验。


一旦提交该图以供运行,可在 KubeFlowPipelines UI 中对运行进度进行监控。打开 Cloud AI Platform Pipelines 页并且打开您的 KubeFlow Pipelines 集群的 Dashboard。


注意:


如果您要使用 Scikit-learn 或者 XGBoost 示例,可遵循如上所述的相同步骤,但要利用上述类似的变更来修改 examples/sklearn/config.yaml,无需额外步骤来创建 KubeFlowPipelines 实例。要了解详细信息,请参考 public repo 中的指南或者遵循我们使用 Jupyter notebook 撰写的详尽教程。

结论


在本文中,我们为您介绍了如何通过三个轻松步骤将您的自定义 ML 模型迁移至 Google Cloud 以进行训练和部署。大部分繁琐工作都由解决方案完成,用户只需提供自己的数据和模型定义,并且说明希望如何处理训练和服务。


我们详解了一个示例,公共代码库包含针对其他支持框架的示例。我们邀请您使用该工具并且开始能够为您的机器学习工作负载带来云的诸多优势之一。




鸣谢


没有以下人员的辛勤工作(按姓氏字母顺序排列),本文不可能完成:ChanchalChatterjee、Stefan Hosein、Michael Hu、Ashok Patel 和 Vaibhav Singh。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-12-10 00:061386

评论

发布
暂无评论
发现更多内容

Glyphs 2 for Mac(字体设计编辑软件) v2.6.6(1350)永久激活版

mac

windows 苹果mac 字体设计软件 Glyphs 2

前三!前三!!前三!!!

天翼云开发者社区

云计算 公有云 云服务

万千企业,数智世界,一触即达

脑极体

数智化

Paste for Mac(剪切板管理工具) v4.1.2免激活版

iMac小白

Paste for Mac Paste下载 Paste中文版

As Const:一个被低估的 TypeScript 特性

树上有只程序猿

typescript as const

DaVinci Resolve Studio 18 达芬奇调色软件mac/win

影影绰绰一往直前

达芬奇18破解版 达芬奇18

九凌网络分享外贸快车实现迅速出口的目标

九凌网络

HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

新消费日报

面对瓶颈期,中国ToB SaaS如何实现全面突围?

ToB行业头条

基于深度学习的情感语音识别模型优化策略

来自四九城儿

恭喜我同事的论文被IEEE HPCC收录!

天翼云开发者社区

数据库 云计算 高性能计算

开发一条公链多少钱

西安链酷科技

区块链 去中心化 节点 公链

迈向全球,从选择海外高防服务器开始,为您的业务提供坚实保障

一只扑棱蛾子

海外高防服务器

基于Amazon Bedrock的运维效率提升

Hanson

Spring 缓存注解这样用,太香了!

越长大越悲伤

Java redis spring 缓存 springboot

mac防火墙 Radio Silence v3.2激活版

iMac小白

Radio Silence下载 Radio Silence破解版

Final Cut Pro for Mac(fcpx视频剪辑) v10.6.10中文版

iMac小白

Final Cut Pro下载 Final Cut Pro中文版 Final Cut Pro破解版

当DNS遭受攻击时,阁下当如何应对?

腾讯云混沌演练平台

混沌工程 DNS故障

Capture One 23 Enterprise for Mac中文激活版

iMac小白

Capture One 23Enterprise Capture One 23

10款市场分析工具大盘点:哪款是你的首选?

彭宏豪95

效率工具 科技 在线白板 竞品分析 市场分析

Path Finder for Mac中文破解版

iMac小白

Path Finder Path Finder破解 Path Finder下载

Sublime text for Mac注册破解激活 兼容M

影影绰绰一往直前

Sublime Text 4 破解版 Sublime Text 4下载 Sublime Text 4注册版

WebGL+H5智慧海上风场可视化远程运维平台

2D3D前端可视化开发

物联网 数字孪生 三维可视化 智慧海上风电

AI 赋能脑科学,和鲸科技与灵脑科技达成战略合作

ModelWhale

人工智能 数据科学 脑科学 类脑计算 交叉学科

langchain中的chat models介绍和使用

程序那些事

程序那些事 大模型 GPT

软件测试/测试开发丨明确的编码规范,避免冗余和混乱

测试人

软件测试

Astute Graphics for Mac破解版

影影绰绰一往直前

Astute Graphics下载 Astute Graphics破解版

外贸企业新手指南:谷歌SEO多久能带来流量增长?

九凌网络

植物补光灯,哪种效果好?

电子信息发烧客

Kontakt 7 for Mac(音频采样器) v7.7.0激活版

iMac小白

Kontakt 7激活版 Kontakt 7 mac下载

Magnet for mac(macOS窗口管理软件)v2.13.0激活直装版

mac

窗口管理软件 苹果mac Windows软件 Magnet

只需三步即可将您的自定义 ML 模型迁移至 Google Cloud_架构_Michael Hunger_InfoQ精选文章