服务与培训的星火ML模型实时预测[复制]

问题描述 投票:6回答:1

这个问题已经在这里有一个答案:

我们目前正在测试基于Python中的星火的实现LDA的预测引擎:https://spark.apache.org/docs/2.2.0/ml-clustering.html#latent-dirichlet-allocation-lda https://spark.apache.org/docs/2.2.0/api/python/pyspark.ml.html#pyspark.ml.clustering.LDA(我们使用的是pyspark.ml包,不pyspark.mllib)

我们能够成功地培养出星火集群上的模型(使用谷歌云Dataproc)。现在,我们正试图使用​​模型来服务的实时预测作为一个API(例如烧瓶应用程序)。

什么是实现所以最好的方法?

我们的主要痛点是,它似乎我们需要带回整个星火环境在以装载训练的模型并进行变换。到目前为止,我们已经试过运行Spark在本地模式下为每个接收到的请求,但这种做法给了我们:

  1. 可怜的表演(时间起旋的SparkSession,加载模式,运行变换...)
  2. 可扩展性差(无法处理的并发请求)

整个方法似乎颇重,会有一个简单的替代,甚至是一个将不需要暗示火花呢?

波纹管被简化的培养和预测步骤的代码。

Training code

def train(input_dataset):   
    conf = pyspark.SparkConf().setAppName("lda-train")
    spark = SparkSession.builder.config(conf=conf).getOrCreate()

    # Generate count vectors
    count_vectorizer = CountVectorizer(...)
    vectorizer_model = count_vectorizer.fit(input_dataset)
    vectorized_dataset = vectorizer_model.transform(input_dataset)

    # Instantiate LDA model
    lda = LDA(k=100, maxIter=100, optimizer="em", ...)

    # Train LDA model
    lda_model = lda.fit(vectorized_dataset)

    # Save models to external storage
    vectorizer_model.write().overwrite().save("gs://...")
    lda_model.write().overwrite().save("gs://...")

Prediction code

def predict(input_query):
    conf = pyspark.SparkConf().setAppName("lda-predict").setMaster("local")
    spark = SparkSession.builder.config(conf=conf).getOrCreate()

    # Load models from external storage
    vectorizer_model = CountVectorizerModel.load("gs://...")
    lda_model = DistributedLDAModel.load("gs://...")

    # Run prediction on the input data using the loaded models
    vectorized_query = vectorizer_model.transform(input_query)
    transformed_query = lda_model.transform(vectorized_query)

    ...

    spark.stop()

    return transformed_query
apache-spark pyspark apache-spark-ml
1个回答
2
投票

如果你已经有火花训练的机器学习模型,您可以使用Hydroshpere雾服务使用rest api模型(测试或预测),而无需创建一个Spark Context。这将节省您从重建火花环境,只有在web services的预测依赖

参考:

© www.soinside.com 2019 - 2024. All rights reserved.