Programmering

Oracle open-source Java maskinlæringsbibliotek

Oracle ønsker at imødekomme virksomhedsbehov i maskinlæringsområdet og stiller sit Tribuo Java maskinlæringsbibliotek til rådighed gratis under en open source-licens.

Med Tribuo sigter Oracle mod at gøre det lettere at opbygge og implementere maskinlæringsmodeller i Java, svarende til hvad der allerede er sket med Python. Udgivet under en Apache 2.0-licens og udviklet af Oracle Labs, er Tribuo tilgængelig fra GitHub og Maven Central.

Tribuo leverer standard maskinlæringsfunktionalitet, herunder algoritmer til klassificering, klyngedannelse, anomaliedetektion og regression. Tribuo inkluderer også rørledninger til indlæsning og transformation af data og leverer en række evalueringer til understøttede forudsigelsesopgaver. Da Tribuo indsamler statistik om input, kan Tribuo f.eks. Beskrive rækkevidden for hver input. Det navngiver også funktioner, styring af funktions-id'er og output-id'er under emhætten for at undgå ID-konflikter og forvirring, når modeller kædes sammen, indlæser data og indeholder input.

En Tribuo-model ved, hvornår den ser en funktion for første gang, hvilket er særligt nyttigt, når man arbejder med naturlig sprogbehandling. Modeller ved, hvad output er, hvor output er stærkt skrevet. Udviklere behøver ikke spekulere på, om en float er en sandsynlighed, en tilbagegangsværdi eller et klynge-id. Med Tribuo er hver af disse en separat type; modellen kan beskrive typer og områder, den kender til. Brug af stærkt typede input og output betyder, at Tribuo kan spore modelkonstruktionsprocessen, fra punktdata indlæses gennem tog / testopdelinger eller datasætstransformationer til modeluddannelse og evaluering. Denne sporingsdata er bagt ind i alle modeller og evalueringer.

Tribuos herkomstsystem kan generere en konfiguration, der genopbygger træningsrørledningen for at gengive modellen eller evalueringen. En tweaked-model kan også bygges på nye data eller hyperparametre. Således ved brugerne altid, hvad en Tribuo-model er, hvor den kom fra, og hvordan man opretter den.

Oracle ser Tribuo udfylde et hul på markedet for maskinindlæring til virksomhedsapplikationer. For eksempel, hvorimod det Google-byggede TensorFlow-bibliotek leverer kernealgoritmer til dyb læring, giver Tribuo flere maskinindlæringsalgoritmer, hvoraf nogle er i TensorFlow og andre ikke, mens de også giver en grænseflade til TensorFlow, sagde Oracle's Adam Pocock hovedmedlem af Oracle Labs tekniske personale. Og mens Apache Spark-analysemotoren er til store, distribuerede systemer, er Tribuo til mindre beregninger, der kan passe på en enkelt maskine, sagde Pocock.

Ud over TensorFlow giver Tribuo grænseflader til XGBoost og ONNX-runtime, så modeller, der er gemt i ONNX-formatet eller trænes i TensorFlow og XGBoost, kan implementeres sammen med native Tribuo-modeller. Understøttelse af ONNX-modelformatet tillader implementering i Java af modeller, der er trænet ved hjælp af populære Python-biblioteker såsom PyTorch.

Tribuo kører på Java 8 eller nyere. Oracle accepterer kodebidrag til Tribuo i henhold til Oracle Contributor-aftalen. Tribuo er allerede brugt internt på Oracle i Fusion Cloud ERP-produktet til intelligent dokumentgenkendelse, for eksempel.