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