1. Google Cloud ML Engine是什么?
Google Cloud Machine Learning (ML) Engine 是一項托管式服務(wù),使開發(fā)者和數(shù)據(jù)科學(xué)家能夠構(gòu)建卓越的機(jī)器學(xué)習(xí)模型并將其運用到生產(chǎn)環(huán)境中。Cloud ML Engine 提供訓(xùn)練和預(yù)測服務(wù),這些服務(wù)可以一起使用也可以單獨使用。Cloud ML Engine 是經(jīng)過實證的服務(wù),被眾多企業(yè)用來解決各種問題,包括識別衛(wèi)星圖像中的云、確保食品安全,以及快速回復(fù)客戶電子郵件(回復(fù)速度可提升到原來的四倍)。
可以提供模型訓(xùn)練、預(yù)測(在線預(yù)測、批量預(yù)測)、部署多個框架(TF、sklearn、XGBoost、Keras)
參考文檔:https://cloud.google.com/ml-engine/
2. 模型訓(xùn)練、預(yù)測流程
python代碼形式;
數(shù)據(jù)和模型都存儲在Cloud Storage bucket中;
sklearn示例代碼
XGBoost示例代碼
生成py文件
導(dǎo)入依賴庫;
從Cloud Storage中下載數(shù)據(jù);
導(dǎo)入數(shù)據(jù);
模型訓(xùn)練并保存;
導(dǎo)出模型至Cloud Storage;
模型格式:
sklearn模型格式j(luò)oblib和pkl(pickle),xgboost模型格式j(luò)oblib、bst和pkl(pickle)
參考文檔:https://cloud.google.com/ml-engine/docs/scikit/getting-started-training#create-model-training-code
打包模型
按照規(guī)定生成文件夾,并將上一步中生成的模型訓(xùn)練py代碼放入文件夾中;
使用gcloud命令本地調(diào)試代碼;
使用gcloud命令上傳模型,需要配置相關(guān)參數(shù)(如:Cloud Storage、訓(xùn)練代碼py文件名、python版本等);
在Cloud ML Engine上運行訓(xùn)練代碼;
參考文檔:https://cloud.google.com/ml-engine/docs/scikit/getting-started-training
模型在線預(yù)測(又稱HTTP Prediction)
需要指定模型名稱、輸入文件、使用框架名稱(運行某個模型并獲取結(jié)果時可能需要定制化開發(fā));
使用gcloud命令獲取預(yù)測結(jié)果;
相當(dāng)于需要進(jìn)行預(yù)測時,就發(fā)一條請求;
請求中的輸入文件為一個json(官網(wǎng)上為本地文件,不知道可否使用Cloud Storage中);
響應(yīng)中為預(yù)測結(jié)果;
參考文檔:https://cloud.google.com/ml-engine/docs/scikit/quickstart
模型批量預(yù)測
與模型預(yù)測類似
需要指定輸入輸出文件位置(輸入文件需存儲在Cloud Storage)、模型名稱、使用的計算節(jié)點數(shù)(看起來可以使用分布式計算)等;
實時性低,不像在線預(yù)測那樣,一個請求對應(yīng)一個返回;
似乎沒有看到什么定時器之類的功能,看起來Cloud ML Engine的batch prediction只是一次性的;
參考文檔:https://cloud.google.com/ml-engine/docs/tensorflow/batch-predict
3. notebook中的思考
如果想在notebook中做這件事(自學(xué)習(xí)、批量預(yù)估),有幾個點值得思考;
數(shù)據(jù)從哪拿?直連hdfs拿、從pdms拿
任務(wù)的監(jiān)控?
任務(wù)在哪里跑?直接在當(dāng)前pod、另啟一個新的
結(jié)果的輸出?輸出在ipynb文件中、直接輸出到hdfs、輸出在pdms