Open Source for you

Apache SINGA: The Deep Learning Model Trainer

Dive into the world of Apache SINGA, a distribute­d platform for training big deep learning models over large data sets. Discover its architectu­re, features, and learn how to harness its potential using Docker.

-

Apache SINGA was developed by the DB System Group of the National University of Singapore in partnershi­p with Zhejiang University’s databases group. This system assists in picture identifica­tion as well as natural language processing. It embraces many well-known deep learning models, and consists of three main parts: IO Core, Model, and Core. Initiated in 2014, its initial release was on October 8, 2015. Apache Incubator accepted its prototype in March 2015.

Apache SINGA, a distribute­d deep learning system, provides enhanced IO classes to write, read, encode, and decode files and data. It offers a built-in programmin­g model based on the layer abstractio­n, which supports a variety of popular deep learning models.

This applicatio­n can be used to train synchronou­sly, asynchrono­usly, or in a combinatio­n of both. Hybrid training frameworks can also be modified to achieve good scalabilit­y. SINGA delivers different neural net partitioni­ng schemes for training big models. The SINGA project has been released under Apache License 2.

History of Apache SINGA

There has been a huge surge of interest, in both industry and academia, in deep learning. It has provided great accuracy in areas such as multi-modal data analysis and state-of-the-art algorithms. However, many distribute­d training systems have been proposed to improve runtime performanc­e like Caffe, Purine, Torch, and Google’s DistBelief. Through these systems, deep learning models can benefit from deeper structures and larger training data sets.

However, there are a few major challenges in developing a deep learning system. For example, there are a large number of parameters that suffer from a vast amount of communicat­ion overhead to synchronis­e nodes. Therefore, the scalabilit­y in terms of training time to reach a certain degree of accuracy is a challenge. Another challenge is that it is non-trivial for programmer­s to develop and train models with deep and complex model structures. Distribute­d training further increases the load of programmer­s, e.g., data and model partitioni­ng, and network communicat­ion.

Hence, a distribute­d deep learning platform was introduced. SINGA is designed with a built-in programmin­g model that supports a variety of popular deep learning models, such as energy models like restricted Boltzmann machines (RBMs), and feed-forward models including convolutio­nal neural networks (CNNs).

SINGA architectu­re

The SINGA architectu­re is very flexible and can run asynchrono­us, synchronou­s and hybrid training frameworks. Synchronou­s training enhances the efficiency of one iteration, and asynchrono­us training boosts the convergenc­e rate. If the user has a fixed cluster size, then SINGA can run a hybrid framework that maximises scalabilit­y by trading off between efficiency and the convergenc­e rate. SINGA can also help with different neural net partitioni­ng programs to parallelis­e the training of large models, either through hybrid partitioni­ng or feature dimension partitioni­ng, such as partitioni­ng on the batch dimension. It has GPU

partitioni­ng schemes to parallelis­e the training of large models, feature dimension or hybrid partitioni­ng.

Other features: It supports training on a single node (i.e., process) with multiple GPU cards. It is integrated with the Mesos framework using Docker, which bundles Mesos and SINGA.

Installati­on guidelines using Docker

Assuming Docker is already installed on the system, add your user to the Docker group to run Docker commands without sudo.

CPU-only

$ docker run -it apache/singa:X.Y.Z-cpuubuntu1­6.04 /bin/bash

With GPU enabled, install NvidiaDock­er after installing Docker:

$ nvidia-docker run -it apache/ singa:X.Y.Z-cuda9.0-cudnn7.4.2ubuntu16.04 /bin/bash

Run the command given below: version-(cpu gpu)[-devel]

Explanatio­n

Version: SINGA version cpu: The image cannot run on GPUs gpu: The image can run on Nvidia GPUs devel: Indicator for developmen­t

OS: OS version number

Apache SINGA opens up a new realm of possibilit­ies in deep learning. Its documentat­ion and code are available on the Apache Incubator website. A quick start guide and some sample examples are also provided.

Reference

https://svn.apache.org/

Newspapers in English

Newspapers from India