Machine learning library in Java

Tribuo* is a machine learning library written in Java. It provides tools for classification, regression, clustering, model development, and more. It provides a unified interface to many popular third-party ML libraries like xgboost and liblinear. With interfaces to native code, Tribuo also makes it possible to deploy models trained by Python libraries (e.g. scikit-learn, and pytorch) in a Java program. Tribuo is licensed under Apache 2.0.

Get started

git clone https://github.com/oracle/tribuo.git

<dependency>
    <groupId>org.tribuo</groupId>
    <artifactId>tribuo-all</artifactId>
    <version>4.3.2</version>
    <type>pom</type>
</dependency>
implementation ("org.tribuo:tribuo-all:4.3.2@pom") {
    transitive = true      // for build.gradle (Groovy)
    // isTransitive = true // for build.gradle.kts (Kotlin)
}

Production Ready

Provenance

Remove the uncertainty around exactly which artifacts you're using in production. Tribuo's Models, Datasets, and Evaluations have provenance, meaning they know exactly what parameters, transformations, and files were used to create them. Provenance data allows each model to be rebuilt verbatim from scratch and for evaluations to track the models and datasets used for each experiment.

Typesafe

Prevent mistakes at compile time rather than discovering them in production. Like Java itself, Tribuo is strongly typed. Each model knows what kind of output it produces, what inputs it expects, and the names of the components involved. Models loaded off disk are strongly typed as well and cannot be misinterpreted by Tribuo. Before you can use a model, Tribuo checks what kind of model was loaded and what labels it can predict.

Interoperable

Break down the barriers between Java and native ML solutions. Tribuo provides interfaces to popular ML libraries such as XGBoost and Tensorflow. It also supports the ONNX model exchange format. Tribuo's ONNX support allows you to deploy models built in other packages and languages (such as Python's scikit-learn) alongside models trained with Tribuo. Many Tribuo models can also be exported in ONNX format for deployment elsewhere.

Features

Tribuo is a general-purpose Machine Learning library but also has extensive support for NLP tasks built in. It has algorithms for classification, regression, clustering, etc., and provides a common abstracted interface to each. This makes it easy to integrate new prediction techniques as they arrive.

Classification

Regression

Clustering

Integrations

Liblinear