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

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

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

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

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

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

概述

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

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

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

b4a880820d7880585a51203c35eb21d7.png

分步指南

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

開始之前

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

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

1.   Compute Engine(計算引擎) 

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

3.   Cloud Storage(云存儲)

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

gcloud auth login

gcloud auth application-default login

gcloud config setproject [PROJECT_ID]

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

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

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

從github repo克隆演示代碼 ,并創(chuàng)建一個 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 模型。不過,如果您使用自己的模型,可利用您的模型代碼修改tf_model.py 文件。

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

3. 工具從 config.yaml 文件讀取所需的元數(shù)據(jù)來為流水線構(gòu)建工件。打開 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 文件并使用項目 ID、存儲桶 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 演示時,工具會提供適用于GKE 集群的 Workload Identity,以修改 Dashboard URL。要部署您的模型,只需在 config.yaml 中更新 URL 并再次運(yùn)行演示。

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

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

注意:

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

結(jié)論

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

我們詳解了一個示例,公共代碼庫包含針對其他支持框架的示例。我們邀請您使用該工具并且開始能夠為您的機(jī)器學(xué)習(xí)工作負(fù)載帶來云的諸多優(yōu)勢之一。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Google Cloud,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家