Apache SINGA is an Apache top-level project for developing an open source machine learning library. It provides a flexible architecture for scalable distributed training, is extensible to run over a wide range of hardware, and has a focus on health-care applications.

History

The SINGA project was initiated by the DB System Group at National University of Singapore in 2014, in collaboration with the database group of Zhejiang University, in order to support complex analytics at scale, and make database systems more intelligent and autonomic. It focused on distributed deep learning by partitioning the model and data onto nodes in a cluster and parallelize the training. The prototype was accepted by Apache Incubator in March 2015, and graduated as a top-level project in October 2019. Seven versions have been released as shown in the following table. Since V1.0, SINGA is general to support traditional machine learning models such as logistic regression.

Apache SINGA

Software Stack

SINGA's software stack includes three major components, namely, core, IO and model. The following figure illustrates these components together with the hardware. The core component provides memory management and tensor operations; IO has classes for reading (and writing) data from (to) disk and network; The model component provides data structures and algorithms for machine learning models, e.g., layers for neural network models, optimizers/initializer/metric/loss for general machine learning models.

Apache SINGA

SINGA-Auto

SINGA-Auto (aka. Rafiki in VLDB2018) is a subsystem of Apache SINGA to provide the training and inference service of machine learning models. SINGA-Auto frees users from constructing the machine learning models, tuning the hyper-parameters, and optimizing the prediction accuracy and speed. Users can simply upload their datasets, configure the service to conduct training, and then deploy the model for inference. As a cloud service system, SINGA-Auto manages the hardware resources, failure recovery, etc. For ease of use, it provides a model zoo, which is a set of built-in machine-learning models for popular tasks such as structured data (e.g., EMR data) analytics, image recognition, and text processing.

Apache SINGA

In the training service, a general framework for distributed hyper-parameter tuning is proposed and a collaborative tuning scheme is designed specifically for deep learning models. In the inference service, a scheduling algorithm is proposed based on reinforcement learning to optimize the overall accuracy and reduce latency. It can adapt to the changes of request rates.

SINGA-Easy

SINGA-Easy(ACM Multimedia 2021) is an easy-to-use deep learning framework built as a component of Apache SINGA to facilitate the adoption of deep learning algorithms and inference services by domain-specific domain application users (e.g., multimedia, medical image analysis). It provides distributed hyper-parameter tuning at the training stage, dynamic computational cost control at the inference stage, and intuitive user interactions with multimedia contents facilitated by model explanation. To improve accuracy, it supports regularization methods for image and structured data regularizations (ACM SIGMOD 2023). To support the acceptance of domain users on the training results, SINGA-Easy provides an option for users to evaluate model performance from the model explanation perspective based on LIME and Grad-CAM.

MLCask

MLCask(IEEE ICDE 2021) is a pipeline management subsystem that manages machine learning pipelines, from data cleaning to data analytics, to ease the maintenance of evolving and versioning of machine learning pipelines for collaborative analytics. It serves to reduce the cost and facilitate adoption. MLCask supports a Git-like end-to-end ML life-cycle management. By leveraging the version history of pipeline components and workspace, MLCask can skip unchanged preprocessing steps to address the frequent retraining challenges. Its non-linear version control semantics and merge operation facilitate effective collaborative development of the pipeline.

Applications

Apache SINGA is in use at organizations such as NetEase, Carnegie Technologies, CBRE, Citigroup, JurongHealth Hospital, National University of Singapore, National University Hospital, Noblis, Shentilium Technologies, Singapore General Hospital, Tan Tock Seng Hospital, YZBigData, and others. Apache SINGA is used across applications in banking, education, finance,healthcare, real estate, software development, and other categories.