How to deploy a production ready model in Rapidminer server?

nmani
nmani New Altair Community Member
edited November 5 in Community Q&A

Hi there,

 

I have a model ready for production and planning to use webservices. After deployment in the server, I have realised that the model is also going through the training phase again. Not sure If I am correct but it is actually taking more time to respond due to huge training data.

How to come out of this situation and I wanted the model to be quick enough to respond to the test data from the Rapidminer server. Any ideas?

Another question is how to bulid a model to take parameters? There is a post available on this, but how to build a model without 'Apply Model' operator for the production? If you use 'Apply Model' parameter, that would expect an unlabeled input. Any ideas?

 

Thanks

Tagged:

Answers

  • MartinLiebig
    MartinLiebig
    Altair Employee

    Dear Nmani,

     

    we need to destingiush between to things. Modelling and Scoring. For modelling you usually have a cron job scheduled on server with reruns the model every X timeunits or a webservice which triggers an asynchrounous scheduled process (with Schedule Process operator).

     

    For scoring you most likely sent a single example (or ID for DB Lookup) and score this with a prep-applymodel process. For details: Have a look at this docs article, it shows how you expose a process as a webservice: http://docs.rapidminer.com/server/advanced-topics/qlik-integration/expose-process.html

    Alterantive: http://community.rapidminer.com/t5/RapidMiner-Server-Knowledge-Base/Passing-parameters-to-Rapidminer-Webservices/ta-p/31510

     

    There is also the option to do a POST webservice with RMServer.

     

    Best,

    Martin

     

     

  • nmani
    nmani New Altair Community Member

    Thanks Martin,

     

    I have already gone through those links. I understood the modeling or scoring what you have mentioned about. Have you built any model for scoring, like sending a new example set as a test data to get the predicted output. How are you going to build a prep-apply model process(mentioned)? How that model looks like? Are you not going to use the whole dataset for training? Lets say if you have a decision tree operator and that is connected to a 'Apply Model' operator and what input you connect for unlabelled data input port. 'Apply Model' operator expects an input, but now we are trying to send the data through url parameter?

    Could you explain a bit how the prebuilt model looks like for scoring using url parameters? I have already gone through those posts but they are not quite clear on this part?

     

    Thanks

     

  • JEdward
    JEdward New Altair Community Member

    Have a look into the Store operator. 

     

    You don't just Store processes & exampleSets in your repository.  You can also store completed models in there too.  (You see the green line going from your model operator into the Apply Model operator?  That's your model.  The modeling operator is creating the model based on the parameters you give it. )

     

    If you store that model (put the Store operator onto the Green line) then you can create a new process which only uses that saved model in the repository, new data+preprocessing and the apply model operator.  (you'll notice saved models have a lightbulb icon in the directory)

  • nmani
    nmani New Altair Community Member

    Hi Edward,

     

    Thanks. I have tried to use the store operator and it is doing its job, Excellent. In the new model, I have retrieved the stored model and also added 'Apply Model' operator to create a webservice. The question here is the 'Apply Model' operator needs an unlabelled input. But I am trying to export the model as a webservice and would like to use url parameters rather than any input to score from database or csv file. If I don't connect to the 'unl' input of the 'Apply Model' operator, it is thowing an error 'Input connection in missing'.

    How to handle url parameters to the model. I have also tried to use 'Add parameter binding' and also assigned an operator to read it in the Rapidminer server configuration page. But no luck. Any support on this would be appreciated.

     

    Thanks