Skip to content

Implementations for Feedzai's OpenML APIs to allow for usage of machine learning models in the Java programming language.

License

Notifications You must be signed in to change notification settings

feedzai/feedzai-openml-java

Repository files navigation

Feedzai OpenML Providers for Java

Build Status codecov Codacy Badge

Implementations of the Feedzai OpenML API to allow support for machine learning models in Java.

All models may be used in nodes with AMD64 and ARM64 cpu architectures except for H2O-xgboost that can be used only with AMD64 cpu architectures.

Building

This is a Maven project which you can build using the following command:

mvn clean install

If the build fails compiling for ARM64 you may need to run:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

To use the models on Operating Systems with musl (supported only for AMD64 architectures), the ENV variable FDZ_OPENML_JAVA_LIBC must be set to musl. This variable can take the values glibc and musl. H2O-xgboost can't be used with musl.

Releasing

For all releases, as the hotfix branch is ready all that's needed to actually release is to create an annotated tag pointing to the hotfix branch head.

Public Release

For a public release you need to create and push an annotated tag. See the example below for releasing version 1.2.29:

# Ensure the tag is made on the updated branch
git fetch -a
git checkout origin/hf-1.2.X
git tag -a 1.2.29
# Your EDITOR will open. Write a good message and save as it is used on Github as a release message
git push origin 1.2.29

Then you need to create a new release with this tag. There is a "Generate release notes" button available to create the release notes, just organize them according to the previous ones.

Experimental Release

For experimental releases, the process is the same as above but with a lightweight tag instead of annotated.

#the xp part is not needed, what matters is that the tag is not annotated, but is a good indicator for others that this was a tag for an experimental release
git tag 1.5.0-xp 
git push origin 1.5.0-xp

Modules

H2O

Maven metadata URI

The openml-h2o module contains a provider that allows to load and train models with H2O.

Pull the provider from Maven Central:

<dependency>
  <groupId>com.feedzai</groupId>
  <artifactId>openml-h2o</artifactId>
  <!-- See project tags for latest version -->
  <version>1.2.0</version>
</dependency>

DataRobot

Maven metadata URI

The openml-datarobot module contains a provider that allows to load models trained with DataRobot.

Pull this module from Maven Central:

<dependency>
  <groupId>com.feedzai</groupId>
  <artifactId>openml-datarobot</artifactId>
  <!-- See project tags for latest version -->
  <version>1.2.0</version>
</dependency>

LightGBM

Maven metadata URI

The openml-lightgbm module contains a provider that allows to load models trained with Microsoft LightGBM.

Pull this module from Maven Central:

<dependency>
  <groupId>com.feedzai</groupId>
  <artifactId>openml-lightgbm</artifactId>
  <!-- See project tags for latest version -->
  <version>1.2.0</version>
</dependency>

About

Implementations for Feedzai's OpenML APIs to allow for usage of machine learning models in the Java programming language.

Resources

License

Stars

Watchers

Forks

Packages

No packages published