Oracle veröffentlicht Machine-Learning-Bibliothek für Java

Tribuo bietet Features wie Klassifizierung, Clustering, Anomalieerkennung, Regressionsalgorithmen sowie Schnittstellen zu ONNX, TensorFlow und XGBoost.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 2 Beiträge

(Bild: vs148/Shutterstock.com)

Von
  • Alexander Neumann

Oracle hat mit Tribuo eine Machine-Learning-Bibliothek für Java quelloffen unter der Apache 2.0 License auf GitHub zur Verfügung gestellt. Die Library hat ihren Ursprung in der Oracle Labs Machine Learning Research Group und wird wohl schon seit mehreren Jahren in der Produktion innerhalb von Oracle eingesetzt.

Die Forscher wollen mit ihr auf die Beobachtung reagieren, dass große Softwaresysteme Building Blocks verwenden wollen, die sich selbst beschreiben und wissen, wann ihre Inputs oder Outputs ungültig sind. Die meisten ML-Frameworks kommen dieser Anforderung laut Oracle wohl mit ihrer Modellverarbeitung nicht angemessen nach. Denn die meisten ML-Bibliotheken erwarten einen Stapel von Float-Arrays, um ein Modell zu trainieren.

Schließlich sehen die Forscher das Szenario, dass das Verfolgen von Modellen in der Produktion auch deshalb schwierig ist, weil es externe Systeme erfordert, um die Verbindung zwischen einem eingesetzten Modell und dem Schulungsverfahren und den Daten aufrechtzuerhalten. Für gewöhnlich liegt die Last dieser zusätzlichen Anforderungen bei den Teams, die ML-Bibliotheken in ihre Produkte oder Systeme integrieren. Besser wäre es wohl, diese Aufgabe in die ML-Bibliothek selbst einzubetten.

Schließlich sind die meisten ML-Bibliotheken in dynamisch typisierten Sprachen wie Python und R geschrieben, die meisten Unternehmenssysteme sind hingegen in einer statisch typisierten Sprache wie Java verfasst. Infolgedessen sehen die Entwickler selbst bei der Implementierung einfacher ML-Komponenten einen erheblichen Code-Wartungs- und System-Overhead, da der Code in mehreren Sprachen geschrieben werden und in mehreren Laufzeiten laufen muss.

Tribuo bietet ML-Standardfeatures wie Klassifizierung, Clustering, Anomalieerkennung und Regressionsalgorithmen. Tribuo verfügt außerdem über Pipelines zur Daten- und Textverarbeitung sowie sogenannte Transformationen der Feature-Ebene. Die Bibliothek bietet Schnittstellen zu ONNX Runtime sowie zu den ML-Bibliotheken TensorFlow und XGBoost. Dadurch lassen sich Modelle, die im ONNX-Format gespeichert oder in TensorFlow oder XGBoost trainiert sind, neben den nativen Modellen von Tribuo einsetzen. Hierdurch kann man auch Modelle in Java erstellen, die zuvor mit Python-Paketen wie Scikit-Learn und PyTorch trainiert wurden. Die TensorFlow-Unterstützung hat noch eher experimentellen Charakter.

Das in Java geschriebene Tribuo benötigt Java 8 oder höher. Alle relevanten Informationen und Dokumentationen sowie Tutorials und Einführungsanleitungen sind auf der Website von Tribuo verfügbar. Der zugehörige Blog-Beitrag motiviert darüber hinaus die Bibliothek.

(ane)