Gustavo it correct. To put another way both Oryx and PredictionIO are based on 
what is called a Lambda Architecture. Loosely speaking this means a potentially 
 slow background task computes the predictive “model” but this does not 
interfere with serving queries. Then when the model is ready (stored in HDFS or 
Elasticsearch depending on the template) it is deployed and the switch happens 
in microseconds.

In the case of the Universal Recommender the model is stored in Elasticsearch. 
During `pio train` the new model in inserted into Elasticsearch and indexed. 
Once the indexing is done the index alias used to serve queries is switched to 
the new index in one atomic action so there is no downtime and any slow 
operation happens in the background without impeding queries.

The answer will vary somewhat with the template. Templates that use HDFS for 
storage may need to be re-deployed but still the switch from using one to 
having the new one running is microseconds.

PMML is not relevant to this above discussion and is anyway useless for many 
model types including recommenders. If you look carefully at how that is 
implementing in Oryx you will see that the PMML “models” for recommenders are 
not actually stored as PMML, only a minimal description of where the real data 
is stored are in PMML. Remember that it has all the problems of XML including 
no good way to read in parallel.


On Sep 25, 2016, at 7:47 AM, Gustavo Frederico 
<[email protected]> wrote:

I undestand that the querying for PredictionIO is very fast, as if it
were an Elasticsearch query. Also recall that the training moment is a
different moment that often takes a long time in most learning
systems, but as long as it's not ridiculously long, it doesn't matter
that much.

Gustavo

On Sun, Sep 25, 2016 at 2:30 AM, Georg Heiler <[email protected]> wrote:
> Hi predictionIO users,
> I wonder what is the delay of an engine evaluating a model in prediction.io.
> Are the models cached?
> 
> Another project http://oryx.io/ is generating PMML which can be evaluated
> quickly from a production application.
> 
> I believe, that very often the latency until the prediction happens, is
> overlooked. How does predictionIO handle this topic?
> 
> Best regards,
> Georg

Reply via email to