apache predictionio end to end machine learning server
play

Apache PredictionIO End-to-End Machine Learning Server with Apache - PowerPoint PPT Presentation

Apache PredictionIO End-to-End Machine Learning Server with Apache Spark What is Machine Learning? What is Machine Learning? Examples of machine learning applications: Facial recognition software E-mail spam detectors Automated


  1. Apache PredictionIO End-to-End Machine Learning Server with Apache Spark

  2. What is Machine Learning?

  3. What is Machine Learning? Examples of machine learning applications: • Facial recognition software • E-mail spam detectors • Automated personalized recommendations

  4. What is Apache PredictionIO?

  5. What is Apache PredictionIO? Event Server Data Image Data Facial Recognition E-mail Engine Service Query via REST Video Spam Video Rec. Streaming Detection Engine Engine Predicted Result

  6. An Engine Template is the basic skeleton of an engine. Recommendation Text Classification Engine Template Engine Template Item User Semantic Analysis Spam Detector Recommendation Recommendation Engine Engine Engine Engine Engine user usage: quick, ready, and customizable ML solutions

  7. Engine Building an Engine with Separation of Concerns (SoC) • DASE - the “MVC” for Machine Learning • Data: Data Source and Data Preparator • Algorithm(s) • Serving • Evaluator

  8. Engine Functions of an Engine A. Train deployable predictive model(s) B. Respond to dynamic query C. Evaluation

  9. Engine A. Train predictive model(s) class DataSource(…) extends PDataSource def readTraining(sc: SparkContext) $ pio train ==> trainingData class Preparator(…) extends PPreparator def prepare(sc: SparkContext, trainingData: TrainingData) ==> preparedData class Algorithm1(…) extends PAlgorithm def train(prepareData: PreparedData) ==> Model

  10. Engine A. Train predictive model(s) Engine Data Source TrainingDate Data Preparator PreparedDate Event Server Algorithm 2 Algorithm 1 Algorithm 3 Model 2 Model 1 Model 3

  11. B. Respond to dynamic query Engine class Algorithm1(…) extends PAlgorithm def predict(model: ALSModel, query: Query) Query via REST ==> predictedResult class Serving extends LServing def serve(query: Query, predictedResults: Seq[PredictedResult]) ==> predictedResult

  12. B. Respond to dynamic query Engine Engine Query (input) Algorithm 2 Algorithm 1 Algorithm 3 Model 2 Model 1 Model 3 Mobile App Predicted Results Predicted Result (output) Serving

  13. Engine DASE Factory object RecEngine extends IEngineFactory { def apply() = { new Engine( classOf[DataSource], classOf[Preparator], Map("algo1" -> classOf[Algorithm1]), classOf[Serving]) } }

  14. Running on Production • Install PredictionIO 
 $ bash -c "$(curl -s http://install.prediction.io/install.sh)" • Start the Event Server 
 $ pio eventserver • Deploy an Engine 
 $ pio build; pio train; pio deploy • Update Engine Model with New Data 
 $ pio train; pio deploy

  15. Production Features • Model Updating and Versioning • Offline and Online Evaluation • Multiple Engine Variants • Query and Prediction Tracking

  16. Universal Recommender https://templates.prediction.io

  17. More Information Website: http://predictionio.incubator.apache.org/ Github: https://github.com/apache/incubator-predictionio

Recommend


More recommend