  Machine Learning models are deployed across a wide range of industries,
performing a wide range of tasks. Tracking these models and ensuring they
behave appropriately is becoming increasingly difficult as the number of
deployed models increases. There are also new regulatory burdens for ML systems
which affect human lives, requiring a link between a model and its training
data in high-risk situations. Current ML monitoring systems often provide
provenance and experiment tracking as a layer on top of an ML library, allowing
room for imperfect tracking and skew between the tracked object and the
metadata. In this paper we introduce Tribuo, a Java ML library that integrates
model training, inference, strong type-safety, runtime checking, and automatic
provenance recording into a single framework. All Tribuo's models and
evaluations record the full processing pipeline for input data, along with the
training algorithms, hyperparameters and data transformation steps
automatically. The provenance lives inside the model object and can be
persisted separately using common markup formats. Tribuo implements many
popular ML algorithms for classification, regression, clustering, multi-label
classification and anomaly detection, along with interfaces to XGBoost,
TensorFlow and ONNX Runtime. Tribuo's source code is available at
https://github.com/oracle/tribuo under an Apache 2.0 license with documentation
and tutorials available at https://tribuo.org.
