部署你的模型!-Machine Learning as a Service

前言

相信對於各位沉迷調參日益消瘦的ML學習者, 看到自己訓練的模型越來越堪用, 心裏總會時不時地想: 如果模型能跑在線上並提供個界面讓人操作, 而不是黑乎乎的終端, 那該是多炫的事情. 且不論對外提供多厲害的服務, 即使作爲演示, 顯然也更高大上些. 另外, 我們還可以把一些對數據的操作封裝爲服務, 方便沉澱和積累, 利於提高平時的效率. 臉皮厚一點可以說, 要實現 Machine Learning as a Service, :-D.

然而, 各位ML學習者平時一般更專注與算法和模型開發, 很多時候是寫各種從頭跑到尾的大腳本. 要把模型部署到線上, 一開始可能覺得無從下手. 所以, 在本文, 我打算分享下一個簡單的前後端分離的 Service 框架, 並一步步演示如何搭建前端, 後端, 以及通過Restful API, WebSocket/STOMP(ML常涉及前後端實時交互, 僅無狀態的Restful API是不夠的)和xmlRPC實現其相互間交互, 希望可以給大家提供一些參考.

本文的最終產物點擊這裏: www.mlaas.xyz. 前端, 後端, DB都搭在阿里雲的一個ECS上(當然你頁可以分開部署), 購買和備案了一個域名並解析到這臺ECS. 具體使用的模塊如下:

  • 前端 Github: node.js + react.js
  • 後端 Github: sprint-boot
  • 模型 Github: 情感分析
  • 守護進程反向代理: supervisor + tengine

客觀來說, 這個框架還是很簡陋的, 模型靜態部署, 控制和數據共用一個通道. 若往後精力和時間允許, 我會再一寫一篇文章, 介紹並實現一個基於Spark和MaxCompute的支持在線訓練, 模型動態部署, 數據/控制分離的框架.

== 未完待續 ==

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章