Deploy H2O Driverless AI MOJO to Alteryx Promote

January 23rd, 2020

This article is by Timothy Lam and originally appeared on the Alteryx Data Science Blog here: https://community.alteryx.com/t5/Data-Science-Blog/Deploy-H2O-Driverless-AI-MOJO-to-Alteryx-Promote/ba-p/489190

H2O Driverless AI is an artificial intelligence platform for automatic machine learning.  Here's how to deploy to Promote!

Anaconda Set Up

  1. Download Anaconda Python 3.7 – this includes programs you’ll need to get started.
  2. Once installed, run the Anaconda Prompt
  3. Update PIP: python -m pip install -U pip
  4. TimothyL_1-1573684615609.png

  5. Install Promote package: python -m pip install promote
    TimothyL_17-1573684985743.png

Download H2O Driverless AI WHL file & Pipeline.MOJO file

H2O.ai allows users to convert the models to a Model ObJect, Optimized (MOJO). Inside the Driverless AI UI, MOJO Scoring Pipeline provides a standalone scoring pipeline that converts experiments to MOJOs, which can be scored in real time.

The MOJO Scoring Pipeline is available as either a pure Java runtime or a C++ runtime (with Python and R wrappers).

  1. Download DAIMOJO.xxxxxx.whl by clicking MOJO Scoring Pipeline button, then click the same button again in the pop-up menu that appears. There are three versions for Java, Python, or R. Pay attention, don’t download the Java format, but Python wrapper which is in C++ Runtime)

TimothyL_3-1573684615621.png

TimothyL_4-1573684615624.pngTimothyL_5-1573684615625.png

  1. At last, you should have obtained two files from H2O Driverless AI like below and put it into a folder named “objects.”

TimothyL_6-1573684615627.png


Fill in the Alteryx Promote & H2O Driverless AI Credentials

  1. Log in to your Promote environment: http://promote.demo.alteryx.com / your custom url
  2. Go to your Account page and obtain your user name and API Key – store these in a file or somewhere easy to access

TimothyL_18-1573685476687.png

  1. Open mojo_deploy.py (Sublime Text, Notepad++, or built-in editor)
  2. Edit the USERNAME, API_KEY, and PROMOTE_URL information with your information. Recommend copying this section of the code so it’s easy to reuse.

    TimothyL_0-1573687710277.png

  3. Update the DRIVERLESS AI LICENSE KEY

TimothyL_9-1573684615636.png

  1. Update the location of whl.file & pipeline.mojo

    TimothyL_10-1573684615641.png

 Deploy the Model

  1. Now, edit the main.py file and uncomment the deploy method.

    TimothyL_11-1573684615643.png

  2. Looking at the instructions from Github, we need to install the requirements.txt file for this model. Type:  pip install -r requirements.txt

    TimothyL_12-1573684615648.png

  3. Now deploy the model by typing python Mojo_Deploy_Windows.py

    TimothyL_13-1573684615651.png

  4. You should now see your model in your Promote environment:

    TimothyL_1-1573688195362.png

Real-Time Scoring H2O Driverless AI Model

  1. Click on the model and test it from the web console. Under the Execute tab, copy the Scoring JSON txt into the tab and click run the model. (Note: It requires a line-delimited JSON file (.ldjson for short)

TimothyL_1-1573688601370.png

  1. You can also score sample data using either the Alteryx model, or the model running on Promote.

TimothyL_2-1573688692395.png

Appendix: H2O Roadmap

  • FTRL will be in 1.7.2 (for C++ MOJO), later will be in Java runtime as well (1.7.3 estimate – end of October)
  • RuleFit - so far no plan to include it since it does not provide sufficiently good results when used.
  • TF - supported in C++ runtime, java runtime in progress - estimate 1.7.3 (end of October)