Стремясь удовлетворить потребности предприятий в области машинного обучения, Oracle решила предоставить им бесплатный доступ по лицензии, предусматривающей использование программного обеспечения с открытым исходным кодом, к своей написанной на Java библиотеке машинного обучения Tribuo.
С помощью Tribuo в компании намерены упростить создание и развертывание моделей машинного обучения на Java, подобно тому, как это уже произошло с Python. Разработанная в Oracle Labs и распространяемая по лицензии Apache 2.0, библиотека Tribuo размещена в хранилищах GitHub и Maven Central.
В Tribuo реализованы стандартные функции машинного обучения, включая алгоритмы классификации, кластеризации, обнаружения аномалий и регрессии. Кроме того, она предоставляет конвейеры для загрузки и преобразования данных, а также набор оценок для поддерживаемых задач прогнозирования. Поскольку Tribuo собирает статистику входных параметров, с ее помощью можно определить диапазон каждого из них. Библиотека присваивает имена признакам, управляя идентификаторами признаков и результатов внутри себя, что позволяет избежать конфликтов идентификаторов и путаницы при связывании моделей, загрузке данных и определении характеристик входных параметров.
Модель Tribuo понимает, когда признак встречается впервые, что может быть особенно полезно при решении задач, связанных с обработкой естественного языка. Модели знают, что представляют собой выходные результаты, а сами результаты строго типизированы. Разработчикам не нужно гадать, является ли число с плавающей точкой вероятностью, значением регрессии или идентификатором кластера. В рамках Tribuo все они выделяются в отдельные типы. Модель может описывать типы и диапазоны, о которых она знает. Использование строго типизированных входных и выходных данных означает, что Tribuo может отслеживать процесс построения модели, начиная с момента загрузки данных через разделение обучения и тестирования и преобразования наборов данных и заканчивая обучением и оценкой модели. Информация об отслеживании включена во все модели и оценки.
Система происхождения Tribuo может генерировать конфигурацию, которая перестраивает обучающий конвейер для воспроизведения модели или оценки. Адаптированная модель может быть построена на новых данных или гиперпараметрах. Таким образом, пользователи всегда знают, что представляет собой модель Tribuo, откуда она взялась и как ее создать.
В Oracle видят, что Tribuo заполняет собой существующий пробел в области машинного обучения для корпоративных приложений.
"Если библиотека Google TensorFlow предоставляет базовые алгоритмы для глубинного обучения, то Tribuo предлагает сразу несколько алгоритмов машинного обучения, часть из которых присутствует в TensorFlow, а часть нет, поддерживая при этом интерфейс с TensorFlow, – отметили в Oracle. – И если аналитические технологии Apache Spark предназначены для крупных, распределенных систем, то Tribuo служит для организации небольших вычислений, выполняемых на одной машине».
В дополнение к TensorFlow, Tribuo предоставляет интерфейсы для XGBoost и исполняемой среды ONNX, позволяя наряду с собственными моделями Tribuo развертывать модели, хранящиеся в формате ONNX или обученные в TensorFlow и XGBoost. Поддержка формата модели ONXX обеспечивает построение на Java моделей, обученных с использованием популярных библиотек Python, например, PyTorch.
Tribuo работает в среде Java 8 и в более поздних версиях. Вклад программного кода в Tribuo принимается в рамках соглашения Oracle Contributor Agreement. Библиотека Tribuo уже используется в системе ERP Oracle Fusion Cloud для решения различных задач, в том числе для интеллектуального распознавания документов.