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

apache predictionio end to end machine learning server
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Apache PredictionIO End-to-End Machine Learning Server

with Apache Spark

slide-2
SLIDE 2

What is Machine Learning?

slide-3
SLIDE 3

What is Machine Learning?

Examples of machine learning applications:

  • Facial recognition software
  • E-mail spam detectors
  • Automated personalized recommendations
slide-4
SLIDE 4

What is Apache PredictionIO?

slide-5
SLIDE 5

What is Apache PredictionIO?

Video Streaming E-mail Service Image Data Video Rec. Engine Spam Detection Engine Facial Recognition Engine

Event Server

Data Query via REST Predicted Result

slide-6
SLIDE 6

An Engine Template is the basic skeleton of an engine.

Recommendation Engine Template Text Classification Engine Template

Item Recommendation Engine User Recommendation Engine Semantic Analysis Engine Spam Detector Engine

Engine user usage: quick, ready, and customizable ML solutions

slide-7
SLIDE 7
  • DASE - the “MVC” for Machine Learning
  • Data: Data Source and Data Preparator
  • Algorithm(s)
  • Serving
  • Evaluator

Engine Building an Engine with

Separation of Concerns (SoC)

slide-8
SLIDE 8
  • A. Train deployable predictive model(s)
  • B. Respond to dynamic query
  • C. Evaluation

Engine Functions of an Engine

slide-9
SLIDE 9

Engine A. Train predictive model(s)

class DataSource(…) extends PDataSource

def readTraining(sc: SparkContext) ==> trainingData

class Preparator(…) extends PPreparator

def prepare(sc: SparkContext, trainingData: TrainingData) ==> preparedData

class Algorithm1(…) extends PAlgorithm

def train(prepareData: PreparedData) ==> Model

$ pio train

slide-10
SLIDE 10

Engine A. Train predictive model(s)

Event Server

Algorithm 1 Algorithm 3 Algorithm 2 PreparedDate Engine Data Preparator Data Source TrainingDate

Model 3 Model 1 Model 2

slide-11
SLIDE 11

class Algorithm1(…) extends PAlgorithm

def predict(model: ALSModel, query: Query) ==> predictedResult

class Serving extends LServing

def serve(query: Query, predictedResults: Seq[PredictedResult]) ==> predictedResult

  • B. Respond to dynamic query

Engine

Query via REST

slide-12
SLIDE 12
  • B. Respond to dynamic query

Engine

Algorithm 1 Model 1 Serving

Mobile App

Algorithm 3 Model 3 Algorithm 2 Model 2 Predicted Results Query (input) Predicted Result (output) Engine

slide-13
SLIDE 13

Engine DASE Factory

  • bject RecEngine extends IEngineFactory {

def apply() = { new Engine( classOf[DataSource], classOf[Preparator], Map("algo1" -> classOf[Algorithm1]), classOf[Serving]) } }

slide-14
SLIDE 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

slide-15
SLIDE 15

Production Features

  • Model Updating and Versioning
  • Offline and Online Evaluation
  • Multiple Engine Variants
  • Query and Prediction Tracking
slide-16
SLIDE 16

Universal Recommender

https://templates.prediction.io

slide-17
SLIDE 17

More Information

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