Ludwig: a Code-Free Deep Learning Toolbox by Uber

Source: Deep Learning on Medium

Ludwig: a Code-Free Deep Learning Toolbox by Uber

“Deep Learning without borders”

On 16th December 2019 at Buildo, Data Science Milan has organized a meetup about Ludwig tool box.

“Ludwig: a Code-Free Deep Learning Toolbox by Uber”, by Piero Molino, Senior Research Scientist, Uber AI

In the last meetup of the year, Piero had the opportunity to show us the potential of Ludwig, a tool box based on TensorFlow but really easy to use. It’s an open source tool that affords users to train and make predictions using deep learning without coding, amazing!!!

Yes you only need to upload a csv data set, to provide both the columns to use as inputs and the columns as outputs and the rest is done by Ludwig. Thanks to its higher level of abstraction and its declarative nature, Ludwig allows beginner users to build deep learning models in a easy manner, in the meantime it allows experts to build custom modules. So, how does it work?

The main concepts of the architecture come from the data type abstraction, that makes to set the class of each single input and each single output provided. The current data types supported are: numerical, binary, categorical, time series, image, text, sound, dates and more data type can be added.

The combination of several inputs and several outputs allows you to obtain many different applications. For instance, you can have a text classifier using text data as input and categorical data as output; otherwise you can build an image captioning system using images as input and text data as output. Instead with a bunch of categorical, binary and numerical features as input and numerical data as output you have a regression model.

In Ludwig every model is defined by Encoders-Combiner-Decoders architecture: each input type can have multiple encoders to choose from, each output type can have multiple decoders to choose from and between them there is a combiner which blend information coming from the different encoders. This structure maps most of the architectures of deep learning models, so it’s enough to declare the data types of the input and output features involved in the task and blending standard sub-modules to build a model instead to write it from scratch.

The declarative model definition is splitted into five sections: input features; combiner; output features; pre-processing and training.

Piero has showed some examples of models pretty close to one actually used in production at Uber. From text classifier to image classifier changing the type of input features. Another example is the expected time of delivery model used to predict the time of delivery orders and an example of tagger of sequence utterances where each single word is mapped into a tag.

The main advantage of this tool box is to allows a fast modeling, because it doesn’t require users to understand the coding model built in Tensorflow, but just to provide the types of the features. Ludwig can be used both by non experts and by scientists to make more efficient the exploration and to solve several tasks. In this way it helps democratizing machine learning. Look at the slides.

References:

https://eng.uber.com/introducing-ludwig/

http://uber.github.com/ludwig

https://arxiv.org/abs/1909.07930

Written by Claudio G. Giancaterino