只需三步即可將您的自定義 ML 模型遷移至 Google Cloud

來(lái)源: Google Cloud
作者:Google Cloud
時(shí)間:2021-03-01
17466
許多企業(yè)正逐漸意識(shí)到擁有機(jī)器學(xué)習(xí)模型只是將其 ML 驅(qū)動(dòng)的應(yīng)用程序朝著投入生產(chǎn)邁出的一小步,更為重要的是要構(gòu)建端到端流水線。

許多企業(yè)正逐漸意識(shí)到擁有機(jī)器學(xué)習(xí)模型只是將其 ML 驅(qū)動(dòng)的應(yīng)用程序朝著投入生產(chǎn)邁出的一小步,更為重要的是要構(gòu)建端到端流水線。

Google Cloud 提供一個(gè)大規(guī)模訓(xùn)練和部署模型的工具 —— Cloud AI Platform,這一平臺(tái)整合了多種編排工具 (orchestration tool),例如,TensorFlow Extended 和 KubeFlow Pipelines(KFP)。不過(guò),經(jīng)常會(huì)有這樣的情況:企業(yè)已經(jīng)在其自己的生態(tài)系統(tǒng)中使用 scikit-learn 和 xgboost 之類(lèi)的框架構(gòu)建了模型,將這些模型移植到云可能既復(fù)雜又耗時(shí)。

由于所涉及的所有樣板的量,即使對(duì)于有著豐富 Google Cloud Platform (GCP) 經(jīng)驗(yàn)的 ML 從業(yè)者,要將scikit-learn 模型(或者同等模型)遷移至 AI Platform 可能也要耗費(fèi)較長(zhǎng)時(shí)間。ML Pipeline Generator 是一個(gè)允許用戶在 GCP 中輕松部署現(xiàn)有 ML 模型的工具,無(wú)服務(wù)器模型訓(xùn)練和部署以及更快地將其解決方案推向市場(chǎng)能夠讓用戶受益匪淺。

本文概要介紹了這一解決方案的工作原理以及預(yù)期的用戶遷移之旅,同時(shí),提供了在 AI Platform 中編排TensorFlow 訓(xùn)練作業(yè)的相關(guān)指南。

概述

ML Pipeline Generator 允許擁有預(yù)構(gòu)建 scikit-learn、xgboost 和TensorFlow 模型的用戶在 GCP 中利用其自有代碼和數(shù)據(jù)快速生成并運(yùn)行端到端 ML 流水線。

要做到這一點(diǎn),用戶必須填寫(xiě)描述其代碼元數(shù)據(jù)的配置文件。庫(kù)會(huì)接受這個(gè)配置文件并生成所有必要的樣板,以供用戶使用模板引擎以協(xié)調(diào)的方式在云中訓(xùn)練和部署其模型。此外,訓(xùn)練TensorFlow 模型的用戶還可以使用Explainable AI 功能來(lái)更好地了解其模型。

在下圖中,我們將重點(diǎn)介紹生成的流水線的架構(gòu)。用戶將使用自己的數(shù)據(jù)、定義執(zhí)行數(shù)據(jù)預(yù)處理的方式,并且添加其 ML 模型文件。一旦用戶填寫(xiě)了配置文件,他們可以使用簡(jiǎn)單的python API 生成自包含樣板代碼,代碼負(fù)責(zé)執(zhí)行指定的任何預(yù)處理、將其數(shù)據(jù)上傳至 Google Cloud Storage (GCS) 以及利用超參數(shù)調(diào)試啟動(dòng)訓(xùn)練作業(yè)。一旦完成上述操作,模型即可被部署以供使用,并且根據(jù)模型類(lèi)型,執(zhí)行模型可解釋性分析。整個(gè)流程是通過(guò)KubeFlow Pipelines 進(jìn)行編排。

b4a880820d7880585a51203c35eb21d7.png

分步指南

我們將向您詳解如何利用給定的模型配置參數(shù)和模型代碼構(gòu)建端到端Kubeflow Pipeline 以訓(xùn)練和使用模型。我們將基于Census Income Data Set(人口調(diào)查收入數(shù)據(jù)集)構(gòu)建一個(gè)流水線來(lái)訓(xùn)練一個(gè)淺層的TensorFlow 模型。利用 Cloud AI Platform 訓(xùn)練該模型并可在 Kubeflow UI 中對(duì)其進(jìn)行監(jiān)控。

開(kāi)始之前

為了確保您能完全使用解決方案,需要對(duì) GCP 中的一些項(xiàng)進(jìn)行設(shè)置:

1. 您需要一個(gè) Google Cloud 項(xiàng)目以運(yùn)行此演示。我們建議創(chuàng)建一個(gè)新項(xiàng)目并確保為該項(xiàng)目啟用下列 API。

1.   Compute Engine(計(jì)算引擎) 

2.   AI Platform Training and Prediction(AI 平臺(tái)訓(xùn)練與預(yù)測(cè))

3.   Cloud Storage(云存儲(chǔ))

2. 安裝Google Cloud SDK,以便您可以通過(guò)命令行訪問(wèn)所需要的 GCP 服務(wù)。SDK安裝后,利用您以上所創(chuàng)建的項(xiàng)目的項(xiàng)目 ID 來(lái)設(shè)置應(yīng)用程序默認(rèn)憑據(jù)。

gcloud auth login

gcloud auth application-default login

gcloud config setproject [PROJECT_ID]

3. 如果您尋求使用此解決方案在KubeFlow Pipelines 部署 ML 模型,在您的項(xiàng)目中創(chuàng)建基于AI Platform Pipelines 的新的 KFP 實(shí)例。記下實(shí)例的主機(jī)名(表單中的 Dashboard URL: [vm-hash]-dot-[zone].Pipelines.googleusercontent.com)。

4. 最后,創(chuàng)建存儲(chǔ)桶,這樣,就能在 GCS 中存儲(chǔ)數(shù)據(jù)和模型。記下存儲(chǔ)桶 ID。

第一步:設(shè)置環(huán)境

從github repo克隆演示代碼 ,并創(chuàng)建一個(gè) Python 虛擬環(huán)境。

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

下列文件使我們能夠確保生成模型并正常運(yùn)行:

1. examples/ 目錄包含 sklearn、Tensorflow 和 XGBoost 模型的示例代碼。我們將使用examples/kfp/model/tf_model.py 在 KubeFlow Pipelines 中部署 TensorFlow 模型。不過(guò),如果您使用自己的模型,可利用您的模型代碼修改tf_model.py 文件。

2. examples/kfp/model/census_preprocess.py 會(huì)下載 Census Income 數(shù)據(jù)集并為模型預(yù)處理該數(shù)據(jù)集。對(duì)于您的自定義模型,可根據(jù)需要修改預(yù)處理腳本。

3. 工具從 config.yaml 文件讀取所需的元數(shù)據(jù)來(lái)為流水線構(gòu)建工件。打開(kāi) examples/kfp/config.yaml.example 模板文件查看示例元數(shù)據(jù)參數(shù),您可以在在此找到詳細(xì)的模式。

4. 如果您要使用 Cloud AI Platform 的超參數(shù)調(diào)試功能,可在hptune_config.yaml 文件中包含參數(shù),并將其路徑添加到 config.yaml。您可以在此處查看 hptune_config.yaml 的模式。

第二步:設(shè)置所需要的參數(shù)

1. 復(fù)制 kfp/ 示例目錄

cp -r examples/kfp kfp-demo

cd kfp-demo

2. 使用 config.yaml.example 模板創(chuàng)建 config.yaml 文件并使用項(xiàng)目 ID、存儲(chǔ)桶 ID、您之前記下的 KFP 主機(jī)名以及模型名更新下列參數(shù)。

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”

第三步:構(gòu)建流水線并訓(xùn)練模型

有了配置參數(shù)后,我們就準(zhǔn)備好了生成所有模塊,它們將構(gòu)建流水線以訓(xùn)練TensorFlow 模型。運(yùn)行 demo.py 文件。

pythondemo.py

首次運(yùn)行 KubeFlow Pipelines 演示時(shí),工具會(huì)提供適用于GKE 集群的 Workload Identity,以修改 Dashboard URL。要部署您的模型,只需在 config.yaml 中更新 URL 并再次運(yùn)行演示。

demo.py 腳本從公共 Cloud Storage 存儲(chǔ)桶下載人口調(diào)查數(shù)據(jù)集、按照examples/kfp/model/census_preprocess.py 準(zhǔn)備數(shù)據(jù)集以進(jìn)行訓(xùn)練和評(píng)估、將數(shù)據(jù)集上傳到 config.yaml中指定的Cloud Storage URL、構(gòu)建訓(xùn)練的流水線圖并將該圖上傳到 KubeFlow Pipelines 應(yīng)用程序?qū)嵗鳛樵囼?yàn)。

一旦提交該圖以供運(yùn)行,可在 KubeFlowPipelines UI 中對(duì)運(yùn)行進(jìn)度進(jìn)行監(jiān)控。打開(kāi) Cloud AI Platform Pipelines 頁(yè)并且打開(kāi)您的 KubeFlow Pipelines 集群的 Dashboard。

注意:

如果您要使用 Scikit-learn 或者XGBoost 示例,可遵循如上所述的相同步驟,但要利用上述類(lèi)似的變更來(lái)修改 examples/sklearn/config.yaml,無(wú)需額外步驟來(lái)創(chuàng)建 KubeFlowPipelines 實(shí)例。要了解詳細(xì)信息,請(qǐng)參考 public repo 中的指南或者遵循我們使用 Jupyter notebook 撰寫(xiě)的詳盡教程。

結(jié)論

在本文中,我們?yōu)槟榻B了如何通過(guò)三個(gè)輕松步驟將您的自定義ML 模型遷移至 Google Cloud 以進(jìn)行訓(xùn)練和部署。大部分繁瑣工作都由解決方案完成,用戶只需提供自己的數(shù)據(jù)和模型定義,并且說(shuō)明希望如何處理訓(xùn)練和服務(wù)。

我們?cè)斀饬艘粋€(gè)示例,公共代碼庫(kù)包含針對(duì)其他支持框架的示例。我們邀請(qǐng)您使用該工具并且開(kāi)始能夠?yàn)槟臋C(jī)器學(xué)習(xí)工作負(fù)載帶來(lái)云的諸多優(yōu)勢(shì)之一。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于Google Cloud,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
新版GKE可管理最多6.5萬(wàn)集群節(jié)點(diǎn),超越AWS、Azure 10倍
新版GKE可管理最多6.5萬(wàn)集群節(jié)點(diǎn),超越AWS、Azure 10倍
Google Cloud公布最新Google Kubernetes Engine版本,號(hào)稱可支持最高達(dá)65,000個(gè)節(jié)點(diǎn)的服務(wù)器集群,以執(zhí)行超大型AI模型。
Google Cloud
云服務(wù)
云計(jì)算
2024-11-152024-11-15
Google Cloud細(xì)說(shuō)AI變現(xiàn)途徑:用戶一年暴增10倍
Google Cloud細(xì)說(shuō)AI變現(xiàn)途徑:用戶一年暴增10倍
Google云計(jì)算平臺(tái)(Google Cloud)首席執(zhí)行官Thomas Kurian在高盛舉行的會(huì)議上,說(shuō)明了該公司究竟是通過(guò)哪些途徑將AI變現(xiàn)。
Google Cloud
谷歌云
云計(jì)算
2024-09-132024-09-13
云計(jì)算平臺(tái)GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問(wèn)敏感數(shù)據(jù)
云計(jì)算平臺(tái)GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問(wèn)敏感數(shù)據(jù)
7月24日安全企業(yè)Tenable披露影響Google Cloud Platform(GCP)的權(quán)限提升漏洞ConfusedFunction,這項(xiàng)弱點(diǎn)發(fā)生在名為Cloud Functions的無(wú)服務(wù)器運(yùn)算服務(wù),以及稱作Cloud Build的CICD渠道服務(wù)。
Google Cloud
谷歌云
云計(jì)算
2024-07-272024-07-27
Gemini為核心,Google云計(jì)算AI戰(zhàn)略聚焦云服務(wù)和生產(chǎn)力GAI
Gemini為核心,Google云計(jì)算AI戰(zhàn)略聚焦云服務(wù)和生產(chǎn)力GAI
過(guò)去一年,企業(yè)GAI應(yīng)用的風(fēng)潮席卷全球,成了三大公有云積極搶攻的新戰(zhàn)場(chǎng),微軟靠著OpenAI助攻,去年在這場(chǎng)云計(jì)算GAI大戰(zhàn)中取得先機(jī),而Google后來(lái)居上,靠著自家PaLM模型和GAI生產(chǎn)力工具來(lái)迎戰(zhàn),AWS則是到去年底年會(huì)上,對(duì)于企業(yè)GAI應(yīng)用布局才有比較完整的布局與披露。
Google Cloud
谷歌云
云計(jì)算
2024-05-042024-05-04
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家