[ 
https://issues.apache.org/jira/browse/SPARK-26247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786924#comment-16786924
 ] 

Anne Holler commented on SPARK-26247:
-------------------------------------

Hi, Sean, Thanks for your comments!


>There are two issues here – load time of the model, and scoring outside Spark?


Yes.



>What's the issue with load time? surely that happens once before serving. 

>Is it that you want to read a PipelineModel directly, without Spark? OK, 
>that's more interesting.


Yes, load only happens once before serving, but having the load time be 
exceptionally slow 

(originally 8x-44x slower than our custom pb representation) impacts the 
velocity with which

new online nodes serving a set of pipeline models can be brought up and become 
ready to serve.


Yes, we read a PipelineModel directly, without Spark, without changing the 
on-disk Spark Pipeline representation.



>The thing can't be scored without Spark without some form of transformation 
>and that's mostly what MLeap does. 

>I'm trying to understand why this is enough different that it needs to be in 
>Spark as the 'blessed' solution. 

>Putting the maintenance onto this project is more bug than feature.  There are 
>unfortunately several incomplete 

>attempts to do something like this: mllib-local, PMML export. I hesitate to 
>add another.  If the idea is 

>supporting single-instance scoring of models, that partly exists in some 
>models already and in mllib-local.



MLeap, PMML export, PFA, solve the problem by creating a different model 
representation and an external 

reimplementation of the scoring, which increases the risk of inconsistent 
serving and adds latency and toil 

to supporting Spark Transformer updates.  Adding single-instance (also 
small-list) scoring of models natively 

in Spark leverages when practical the low-level Spark methods used by the 
transform path, enhancing Spark

itself for online serving capability at what we have found to be minimal cost, 
based on our having used this 

approach in production across Spark upgrades for several years.

 

Let me provide a POC patch, to give a direct sense of the changes.  I can move 
the changes from Spark 2.3.2

(which is our current production release) to master and go through the 
company's external code publish approval 

process, both of which hopefully can be done quickly.  Thanks again for your 
comments.

> SPIP - ML Model Extension for no-Spark MLLib Online Serving
> -----------------------------------------------------------
>
>                 Key: SPARK-26247
>                 URL: https://issues.apache.org/jira/browse/SPARK-26247
>             Project: Spark
>          Issue Type: Improvement
>          Components: MLlib
>    Affects Versions: 2.1.0
>            Reporter: Anne Holler
>            Priority: Major
>              Labels: SPIP
>         Attachments: SPIPMlModelExtensionForOnlineServing.pdf
>
>
> This ticket tracks an SPIP to improve model load time and model serving 
> interfaces for online serving of Spark MLlib models.  The SPIP is here
> [https://docs.google.com/a/uber.com/document/d/e/2PACX-1vRttVNNMBt4pBU2oBWKoiK3-7PW6RDwvHNgSMqO67ilxTX_WUStJ2ysUdAk5Im08eyHvlpcfq1g-DLF/pub]
>  
> The improvement opportunity exists in all versions of spark.  We developed 
> our set of changes wrt version 2.1.0 and can port them forward to other 
> versions (e.g., we have ported them forward to 2.3.2).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to