一般情況下,模型訓練是在離線環境下做實驗,將其釋出到生產環境時,一般可以:
A. 構建模型預測的微服務,將預測請求以RPC呼叫的方式傳送給微服務,微服務計算完後返回結果。
B. 在原有服務里加載模型,呼叫預測函式。
從另外一個角度來看,又可以分為:
C. 使用別人寫好的框架
D. 自己寫模型預測程式碼
一般比較成熟的機器學習框架不僅支援模型訓練,也支援將模型釋出到線上,提供模型預測服務。TensorFlow有對應的TensorFlow Serving:https://github.com/tensorflow/serving
。這個方案屬於上面所述的"AC"的組合,訓練和預測過程都使用TensorFlow框架,在生產環境啟動一個TensorFlow的微服務,微服務載入訓練好的模型,提供線上預測服務。
也可以在原來的服務中載入模型,例如,使用sklearn訓練好的模型,使用
joblib.dump
儲存,生產環境呼叫時,使用
joblib.load
載入,再繼續使用predict函式預測。這屬於上面所述的“BC”組合。
一般情況下,模型訓練是在離線環境下做實驗,將其釋出到生產環境時,一般可以:
A. 構建模型預測的微服務,將預測請求以RPC呼叫的方式傳送給微服務,微服務計算完後返回結果。
B. 在原有服務里加載模型,呼叫預測函式。
從另外一個角度來看,又可以分為:
C. 使用別人寫好的框架
D. 自己寫模型預測程式碼
一般比較成熟的機器學習框架不僅支援模型訓練,也支援將模型釋出到線上,提供模型預測服務。TensorFlow有對應的TensorFlow Serving:https://github.com/tensorflow/serving
。這個方案屬於上面所述的"AC"的組合,訓練和預測過程都使用TensorFlow框架,在生產環境啟動一個TensorFlow的微服務,微服務載入訓練好的模型,提供線上預測服務。
也可以在原來的服務中載入模型,例如,使用sklearn訓練好的模型,使用
joblib.dump
儲存,生產環境呼叫時,使用
joblib.load
載入,再繼續使用predict函式預測。這屬於上面所述的“BC”組合。