【问题标题】:Machine learning with spark, data preparation performance problem, MLeap使用 Spark 进行机器学习,数据准备性能问题,MLeap
【发布时间】:2019-11-14 06:14:06
【问题描述】:

我发现很多关于 Mleap 的好评 - 一个允许快速评分的库。它基于模型工作,转换为 MLeap 包。

但是评分前的数据准备阶段呢?

是否有一些有效的方法可以将“spark ML 数据准备管道”(在训练期间工作,但在 spark 框架中)转换为稳健、性能有效、优化的字节码?

【问题讨论】:

    标签: performance apache-spark machine-learning apache-spark-mllib scoring


    【解决方案1】:

    您可以使用 MLeap 轻松序列化整个 PipelineModel(包含特征工程和模型训练)。

    注意:以下代码有点旧,您现在可能可以访问更简洁的 API..

    // Mleap PipelineModel Serialization into a single .zip file
    val sparkBundleContext = SparkBundleContext().withDataset(pipelineModel.transform(trainData))
    for(bundleFile <- managed(BundleFile(s"jar:file:${mleapSerializedPipelineModel}"))) {
      pipelineModel.writeBundle.save(bundleFile)(sparkBundleContext).get
    }
    
    // Mleap code: Deserialize model from local filesystem (without any Spark dependency)
    val mleapPipeline = (for(bf <- managed(BundleFile(s"jar:file:${modelPath}"))) yield {
      bf.loadMleapBundle().get.root
    }).tried.get
    

    请注意,如果您在 Spark 中定义自己的 Estimators/Transformers,则需要注意的是,它们也需要相应的 MLeap 版本。

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 2021-09-21
      • 2019-03-05
      • 2015-06-07
      • 2017-12-15
      • 2012-11-16
      相关资源
      最近更新 更多