I can not use mojo reader node of H2O

hi, there,

Thanks for your extension of h2o.

I try build model in h2o, and save as mojo model, then use the model in knime, but without success.

I only use H2O MOJO Reader to open my mojo model, it complains:

ERROR H2O MOJO Reader      0:55       Configure failed (IllegalStateException): Algorithm `XGBoost` is not supported by this version of h2o-genmodel. If you are using an algorithm implemented in an extension, be sure to include a jar dependency of the extension (eg.: ai.h2o:h2o-genmodel-ext-xgboost)

I didn’t find anything related with ext-xgboost in the knime dir KNIME4\plugins\.

So I just get the jar in the web Download ai.h2o JAR files with all dependencies, and put the genmodel-ext-xgboost jar to the plugins, it did not work.

I searched the forum, only find jar thing related extension build.

Could someone help me out? Or just waiting the h2o extension updates?

Thanks for your time!

Hi @HaveF,

What model are you trying to build?

:blush:

XGBoost, StackedEnsemble :rofl:
Although I know that can be done in knime only :upside_down_face:

May I ask you to share your workflow here? (with a data sample)

1 Like

H2O.ai XGBoost and ensembles are not (yet?) compatible with the KNIME nodes, you would have to exclude them from H2O automl or you would have to build a wrapper with R or Python, but I have experienced problems with that when interacting with KNIME, seems the H2O environment does not like being called from R while R being called from within KNIME.

And also the Mojo models that come from H2O’s commercial product “Driverless AI” are not compatible with KNIME Mojo Readers either.

Maybe someone from KNIME can weight in if for the first case there is a perspective.

Also you have to keep in mind that you would want MOJO models to be able to run with H2O Sparkling Water environment, as of now that is not possible with XGBoost and ensembles from H2O.

I am still in the process to see if it is possible to directly use JAR files from H2O with KNIME, a working example of that would be highly appreciated.

3 Likes

Thank you @mlauber71 for stepping in this. I thought @HaveF was using the H2O ML extension in KNIME to build the model.

:blush:

1 Like

@armingrudd from the description it sounds like @HaveF is using the free automl library *1) from H2O that offers xgboost (on Mac and Linux as of now), some Deep Learning, stacked ensembles alongside Hyper Parameter optimization and an export of the resulting models as MOJO files - some of which can be reused in KNINE and even Sparkling Water environment, which is just great.

But in order to be compatible with KNIME one would have to exclude certain algorithms so the mojos would be reusable in KNIME.

I am preparing a workflow that will demonstrate some data preparation with spark, model building with H2O automl and distribution via KNIME and Sparkling Water.

*1)
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html

4 Likes

Sorry, there is nothing I can share.
Simply because I train the model on another machine with H2O only, and want to use the model in my local KNIME machine to predict.
There is only one H2O MOJO Reader in workflow now :sweat_smile:

1 Like

If you add this line to your automl call you should be fine, although you loose the power of these algorithms you stay compatible with KNIME H2O mojos.

exclude_algos=c(“StackedEnsemble”, “DeepLearning”, “XGBoost”)

3 Likes

Hi, @mlauber71 Thanks for your valuable comments. Yes, I use the free automl library. I will try to exclude certain algorithms to make the whole workflow reusable in KNIME later.

Looking forward for your progress about this :heart_eyes:
Use JAR directly is also I wanted

3 Likes

Hi all,

StackedEnsemble and DeepLearning MOJOs cannot be created within KNIME, but they should be supported by KNIME if you import them using the H2O MOJO Reader node. I didn’t double check but I am pretty sure they work. XGBoost is not supported yet. I will keep you updated if this changes.

Regards,
Simon

4 Likes