Uber’s AI engineering team wants to make deep learning more accessible with the open-source release of Ludwig. The deep learning toolbox based on TensorFlow aims to give users the ability to train and test deep learning models without having to write any code.
“Ludwig is unique in its ability to help make deep learning easier to understand for non-experts and enable faster model improvement iteration cycles for experienced machine learning developers and researchers alike. By using Ludwig, experts and researchers can simplify the prototyping process and streamline data processing so that they can focus on developing deep learning architectures rather than data wrangling,” the Uber AI team wrote in a post.
According to the team, Ludwig has been under development internally at the company for two years, and has been used for its Customer Obsession Ticket Assistant, information extraction, identifying points of interesting, and food delivery time predictions.
In addition to TensorFlow, the team looked at machine learning projects like Weka and MLlib for working with raw data; Caffe for “the declarative nature of the definition file;” and scikit-learn for its programmatic PAI. “This mix of influences makes it a pretty different tool from the usual deep learning libraries that provide tensor algebra primitives and few other utilities to code models, while at the same time making it more general than other specialized libraries like PyText, StanfordNLP, AllenNLP, and OpenCV,” the team explained.
The core design principles of the solution includes: no coding skills required, generality, flexibility, extensibility, and understandability. The team also explained that it provides a new data type-based approach to deep learning and enables users to train models with a tabular file like CSV containing data and a YAML configuration file. “The simplicity of the configuration file enables faster prototyping, potentially reducing hours of coding down to a few minutes. If more than one output target variable is specified, Ludwig will perform multi-task learning, learning to predict all the outputs simultaneously, a task that usually requires custom code,” they wrote.
Other features include, pre-trained models, and encoders and decoders for binary values, float numbers, categories, discrete questions and time series. For non-programmers, Ludwig provides a set of command line utilities for training and testing models as well as obtaining predictions. Lastly, it includes a programmatic API for training and using a model, several tools for evaluating models and comparing performances and predictions, and the ability to train models on multiple GPUs.
“Ludwig provides a set of model architectures that can be combined together to create an end-to-end model for a given use case. As an analogy, if deep learning libraries provide the building blocks to make your building, Ludwig provides the buildings to make your city, and you can chose among the available buildings or add your own building to the set of available ones,” the Uber AI team wrote.