一方面,以Spark构建的机器学习模型无法以传统方式为您在Azure ML或Amazon ML中提供服务。
Databricks声称能够使用它的笔记本来部署模型,但是我实际上还没有尝试过。
另一方面,您可以通过三种方式使用模型:
- 在应用程序内部进行即时培训,然后应用预测。这可以在spark应用程序或笔记本中完成。
- 训练模型并保存它(如果它实现了
MLWriter
然后加载到应用程序或笔记本中并针对您的数据运行它。 - 使用Spark训练模型,并使用jpmml-spark将其导出为PMML格式。 PMML允许不同的统计和数据挖掘工具使用相同的语言。这样,预测解决方案可以轻松地在工具和应用程序之间移动,而无需自定义编码。例如从Spark ML到R。
这是三种可能的方式。
当然,您可以考虑一个具有RESTful服务的体系结构,您可以在该体系结构后使用每个示例使用spark-jobserver进行构建以训练和部署,但需要进行一些开发。这不是开箱即用的解决方案。
您可能还使用Oryx 2之类的项目来创建完整的lambda架构,以训练,部署和提供模型。
不幸的是,对上述每个解决方案的描述都非常广泛,并且不适合SO的范围。
0
我正在评估基于生产ML的应用程序的工具,我们的选择之一是Spark MLlib,但是我对如何在模型训练后如何提供服务有一些疑问?
例如,在Azure ML中,一旦受过训练,该模型就会作为可从任何应用程序使用的Web服务公开,这与Amazon ML相似。
您如何在Apache Spark中提供服务/部署ML模型?