1. 程式人生 > 其它 >機器學習模型部署摘要

機器學習模型部署摘要

1、如果是實時的、小資料量的預測應用,則採用的SOA呼叫Rserve或者python-httpserve來進行應用;這種應用方式有個缺點是需要啟用服務來進行預測,也就是需要跨環境,從Java跨到R或者Python環境。對於效能,基本上我們用Rserver方式,針對一次1000條或者更少請求的預測,可以控制95%的結果在100ms內返回結果,100ms可以滿足工程上的實踐要求。更大的資料量,比如10000/次,100000/次的預測,我們目前評估下來滿足不了100ms的要求,建議分批進行呼叫或者採用多執行緒請求的方式來實現。

2、如果是實時、大資料量的預測應用,則會採用SOA,訓練好的模型轉換成PMML(關於如何轉換,我在下面會詳細描述),然後把模型封裝成一個類,用Java呼叫這個類來預測。用這種方式的好處是SOA不依賴於任何環境,任何計算和開銷都是在Java內部裡面消耗掉了,所以這種工程級別應用速度很快、很穩定。用此種方法也是要提供兩個東西,

模型檔案和預測主類;

3、如果是Offline(離線)預測的,D+1天的預測,則可以不用考慮第1、2中方式,可以簡單的使用Rscript x.R或者python x.py的方式來進行預測。使用這種方式需要一個排程工具,如果公司沒有統一的排程工具,你用shell的crontab做定時呼叫就可以了。

by:【1】

部署方式:

  • http Restful

  • runtime 呼叫

  • pmml, onnx

  • docker

  • spark 整合

【1】機器學習演算法線上部署方法. https://zhuanlan.zhihu.com/p/24902234

使用docker+fastapi部署機器學習可參考:

Dcoker官方文件

https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script

fastapi+docker

https://fastapi.tiangolo.com/zh/deployment/docker/#build-a-docker-image-for-fastapi