基于 PredictionIO 搭建全栈式机器学习平台

场景

怎么从零构建自己的机器学习平台(以下简称平台)?

分析

我们不妨从 平台的终端用户 -App开发人员 与 平台自身的开发人员 入手,分析一下,机器学习平台应该具备哪些能力。

对于使用者而言,平台需要简单易接入、能实时提供服务

怎么在app中植入机器学习相关算法,让app变得智能? 对于App开发者而言,我们当然希望植入机器学习算法像调用普通 api 一样简单。事实上,目前成熟的AI类产品正是这么做的,这里参考一下百度AI开放平台:
这里写图片描述
以上,机器学习类产品需求具备这样的能力:
1)提供 各类 SDK 方便接入用户的请求。
2)能以 json 等格式实时返回相关的数据(即服务,推荐的新闻列表)。

对于自身开发人员来说,平台要可扩展,能接入各类机器学习算法库;机器学习常用的算法应该模板化,算法人员写小量代码甚至不写代码,调整一下相关参数即可完成算法的开发。

方案

发现 PredictionIO这款开源产品比较满足我们的需求。这里以官方自带的 推荐类场景,介绍 基于PredictionIO 如何构建机器学习平台 - 先看整体效果:
注: predictionIO搭建过程文档
[ 官方文档已经够详细了,按照操作一步步来,可能存在的问题主要是 sbt 相关包的下载 ]

推荐类场景

这里写图片描述

通过 rest API 获取推荐服务
import com.google.common.collect.ImmutableMap;
import com.google.gson.JsonObject;
import org.apache.predictionio.EngineClient;
// create client object
EngineClient engineClient = new EngineClient(<ENGINE DEPLOY URL>);
// query
JsonObject response = engineClient.sendQuery(ImmutableMap.<String, Object>of(
        "user", "1",
        "num",  4
    ));
通过 java SDK 获取推荐服务
返回结果与 restAPI 结果一致。我们可以通过自带的UI界面,看看模型跑的具体算法,以及算法相关的参数: ![这里写图片描述](https://img-blog.csdn.net/20180614160911546?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BFTkdZVUNIRU5HMzIxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
架构解读

这里写图片描述
PIO有三种类型的数据:
1) event data : 用户的行为数据。eg、

{
"eventId":"AWP4XGs3BWDRTgrl7tbG","event":"buy","entityType":"user",
"entityId":"u1","targetEntityType":"item",
"targetEntityId":"i2","properties":{},
"eventTime":"2014-11-11T04:34:56.123+08:00",
"creationTime":"2018-06-13T16:56:36.394+08:00"
} 

2) model data : 训练好的模型 。
3) meta data : pio build 、pio train 、pio deploy 。

环境搭建

存储: 选用 Elasticsearch 与 HDFS 。其中 ES 存放 meta data 与 event data ; HDFS 保存模型 。
计算: Spark 组件。支持的算法库 Spark MLLib 、OpenNLP …
具体安装过程文档,待补充

算法定制

这里写图片描述
这里写图片描述

这里写图片描述

问题

1) 模型保存到 HDFS 上如何配置?目前是保存到本地上,按照 官网文档中的说明配置,实际运行的时候有问题。
2) 目前,内置的算法模板都是基于 java、scala开发的。用python开发的算法能不能部署到 PIO 上跑?怎么部署。
3) 周期性更新模型的 crontab 模板待开发。

参考

1】PredictionIO 官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值