首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星火MLLib模型的轻量级执行

星火MLLib模型的轻量级执行
EN

Data Science用户
提问于 2018-12-06 16:08:58
回答 1查看 235关注 0票数 4

我有一些训练数据,我用它来建立一个星火MLLib模型,它在一个蜂巢数据库中。我使用的是简单的线性回归模型和PySpark API。

我有一个代码设置,每天训练这个模型,以获得最先进的模型。(现实世界中的用例是,我在预测车辆卸货时间,而且我的模型必须是最近训练的,因为车辆和地点的特性随时间而变化。)

但是,当我使用我的模型进行推理时,我想从现有的Java代码库中进行推理。我需要对单个数据点进行快速推理,而不是批量推理。因此,我需要一种计算推理的轻量级、低延迟的方法。

我找到的一个解决方案是将我的MLLib模型的参数导出到PMML或另一个表示中,然后在纯Java中重新实现推理代码,而不需要任何随Spark而来的样板。所以我有这样的功能:

代码语言:javascript
复制
    public static double predict(double[] parameters) {
        double prediction = bias + weights[0] * parameters[0] +  ....;
        return prediction;
    }

其中,数组权重每天都使用从经过训练的MLLib模型导出的值进行更新。

然而,这似乎效率低下,因为模型设计的逻辑现在在Java代码中被不必要地再现,并且还限制了我以这种方式表示的那种简单模型。例如,对于随机森林回归,我不能这样做。

理想情况下,我希望在Java中对MLLib进行轻量级的推理调用,而不需要任何星火会话、服务器、API、URL等的开销。

有这样一个轻量级的Spark函数,我可以使用它来推断单个实例吗?我不认为某些人需要蜂巢和并行处理的好处来进行训练,但只是快速和简单的推理和最小的管理费用,这种情况并不少见。

EN

回答 1

Data Science用户

发布于 2018-12-07 04:47:34

您可以将模型(权重+超参数)从Spark导出为通用格式,然后在另一种语言/框架中执行相同的格式。

https://docs.databricks.com/spark/latest/mllib/model-export.html

上面的链接有Python / Spark的例子,应该也适用于Java。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/42243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档