Feedzai's extensible Machine Learning API to integrate ML platforms with Feedzai's data science and runtime environment.
See the openml-example project as a trivial example of how to implement a new provider.
When building your OpenML Provider using Maven you can add dependencies on the artifacts in this repository. See the following sections to learn more about these.
The OpenML API module contains the main concepts that allow interaction between Feedzai's platform and an external ML platform.
<dependency>
<groupId>com.feedzai</groupId>
<artifactId>openml-api</artifactId>
<!-- See project tags for latest version -->
<version>1.2.0</version>
</dependency>
The openml-utils module helps you to manipulate some of the core concepts.
<dependency>
<groupId>com.feedzai</groupId>
<artifactId>openml-utils</artifactId>
<!-- See project tags for latest version -->
<version>1.2.0</version>
</dependency>
Build this Maven project using the following command:
mvn clean install
Make sure your provider is identified according to the specification of Java's Service Loader. This entails generating a Jar with the code (possibly with all the dependencies necessary in it, or a set of Jars instead), and making sure you include a file resources/META-INF/services/com.feedzai.openml.MachineLearningProvider
to indicate which providers you have in your code. Check out our example in this repository. It may also be helpful to look into Google's Auto Service to set this up for you.
As a way to ease the creation of new OpenML Providers, a Maven archetype was created. To get started with it, just run:
mvn archetype:generate -DarchetypeGroupId=com.feedzai -DarchetypeArtifactId=openml-provider-archetype -DarchetypeVersion=1.2.0
After providing all the necessary information (your new provider groupId, artifactId, and version), a template provider with some guidance will be available on your workspace.
This project makes use of the jgitver Maven plugin. When using Intellij IDEA you must configure the project to skip the plugin altogether. See the related issue.