部署你的模型!-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的支持在线训练, 模型动态部署, 数据/控制分离的框架.

== 未完待续 ==

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容