Machine learning library in Java

Read more

 

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

 

Production Ready

Provenance Log Book
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.
Interlocking types logo
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.
Joined puzzle pieces
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 Diagram
Classification
Regression Diagram
Regression
Clustering Diagram
Clustering

Integrations

XGBoost Logo
ONNX Runtime Logo
TensorFlow Logo