Ludwig is, in fact, a code-free, deep learning toolbox intended mainly for non-expert developers and engineers that will enable them to understand deep learning and provide a platform for fast prototyping. On the other hand, the platform can be also used by machine learning experts for faster model improvement cycles.
The framework allows its users to train a deep learning model by providing just a tabular file (like CSV) containing the data and a YAML configuration file that specifies which columns of the tabular file are input features and which are output target variables. Ludwig provides a simple, yet powerful configuration that enables faster prototyping.
The architecture of Ludwig is based on three main components: input, combiner and output. With this, the user has access to combiners (glue components of the architecture) that combine the tensors from all input encoders, process them, and return the tensors to be used for the output decoders. The idea of data type-specific encoders and decoders allows users to combine such components and easily build models.
“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.”, explain Ludwig’s authors in the release blog post.
According to Uber, Ludwig was developed in the past two years combining ideas from well-known machine learning software such as MlLib, Caffe, scikit-learn, PyText, OpenCV etc. More about Uber’s Ludwig tool can be read on the official blog. A small tutorial is also provided to better understand how to use it.