Oracle Open-Source-Java-Bibliothek für maschinelles Lernen

Oracle ist bestrebt, die Unternehmensanforderungen im Bereich des maschinellen Lernens zu erfüllen, und stellt seine Tribuo Java-Bibliothek für maschinelles Lernen unter einer Open-Source-Lizenz kostenlos zur Verfügung.

Mit Tribuo möchte Oracle das Erstellen und Bereitstellen von Modellen für maschinelles Lernen in Java vereinfachen, ähnlich wie dies bereits bei Python geschehen ist. Tribuo wurde unter einer Apache 2.0-Lizenz veröffentlicht und von Oracle Labs entwickelt. Es ist über GitHub und Maven Central zugänglich.

Tribuo bietet Standardfunktionen für maschinelles Lernen, einschließlich Algorithmen zur Klassifizierung, Clusterbildung, Erkennung von Anomalien und Regression. Tribuo enthält auch Pipelines zum Laden und Transformieren von Daten und bietet eine Reihe von Auswertungen für unterstützte Vorhersageaufgaben. Da Tribuo Statistiken zu Eingaben sammelt, kann Tribuo beispielsweise den Bereich jeder Eingabe beschreiben. Außerdem werden Features benannt, Feature-IDs und Ausgabe-IDs unter der Haube verwaltet, um ID-Konflikte und Verwirrung beim Verketten von Modellen, Laden von Daten und Ausführen von Eingaben zu vermeiden.

Ein Tribuo-Modell weiß, wann es zum ersten Mal eine Funktion sieht. Dies ist besonders nützlich, wenn Sie mit der Verarbeitung natürlicher Sprache arbeiten. Modelle wissen, was Ausgänge sind, wobei die Ausgänge stark typisiert sind. Entwickler müssen sich nicht fragen, ob ein Float eine Wahrscheinlichkeit, ein rückläufiger Wert oder eine Cluster-ID ist. Bei Tribuo ist jeder dieser Typen ein separater Typ. Das Modell kann Typen und Bereiche beschreiben, die es kennt. Durch die Verwendung stark typisierter Ein- und Ausgänge kann Tribuo den Modellkonstruktionsprozess verfolgen, von der Punktdatenübertragung über Zug- / Testaufteilungen oder Datensatztransformationen bis hin zum Modelltraining und -auswertung. Diese Tracking-Daten werden in alle Modelle und Auswertungen integriert.

Das Tribuo-Provenienzsystem kann eine Konfiguration generieren, die die Trainingspipeline neu erstellt, um das Modell oder die Bewertung zu reproduzieren. Ein optimiertes Modell kann auch auf neuen Daten oder Hyperparametern basieren. So wissen Benutzer immer, was ein Tribuo-Modell ist, woher es stammt und wie es erstellt wird.

Nach Ansicht von Oracle schließt Tribuo eine Marktlücke für maschinelles Lernen für Unternehmensanwendungen. Während die von Google erstellte TensorFlow-Bibliothek Kernalgorithmen für Deep Learning bietet, bietet Tribuo beispielsweise mehrere Algorithmen für maschinelles Lernen, von denen einige in TensorFlow und einige nicht in TensorFlow enthalten sind, und bietet gleichzeitig eine Schnittstelle zu TensorFlow, sagte Adam Pocock von Oracle. Hauptmitglied des technischen Personals von Oracle Labs. Und während die Apache Spark-Analyse-Engine für große, verteilte Systeme vorgesehen ist, ist Tribuo für kleinere Berechnungen vorgesehen, die auf eine einzelne Maschine passen, sagte Pocock.

Zusätzlich zu TensorFlow bietet Tribuo Schnittstellen zu XGBoost und zur ONNX-Laufzeit, sodass Modelle, die im ONNX-Format gespeichert oder in TensorFlow und XGBoost geschult sind, neben nativen Tribuo-Modellen bereitgestellt werden können. Die Unterstützung des ONNX-Modellformats ermöglicht die Bereitstellung von Modellen in Java, die mit gängigen Python-Bibliotheken wie PyTorch trainiert wurden.

Tribuo läuft auf Java 8 oder höher. Oracle akzeptiert Code-Beiträge an Tribuo gemäß der Oracle Contributor-Vereinbarung. Tribuo wurde beispielsweise bereits intern bei Oracle im ERP-Produkt Fusion Cloud für die intelligente Dokumentenerkennung verwendet.