tapaswenipathak / linux-kernel-stats

linux kernel stats (Publication [Journal, Magazine]). This repository has code files.
MIT License
3 stars 8 forks source link

Summary - Project Adam: Building an Efficient and Scalable Deep Learning Training System #99

Closed reddheeraj closed 1 year ago

reddheeraj commented 1 year ago

https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-chilimbi.pdf

reddheeraj commented 1 year ago

PROJECT ADAMS

Large deep neural networks provide excellent accuracy on visual recognition tasks. But it takes a lot of time to train them and they require large amounts of computation cycles. The authors, Trishul Chilimbi, Yutaka Suzue, Johnson Apacible, and Karthik Kalyanaraman present a solution for this problem. They describe the design and implementation of a distributed system called “Adam”, which is more efficient and scalable. The authors claimed that it provided 2x higher accuracy in comparable time on the ImageNet 22,000 category image classification task than the system that previously held the record for this benchmark.

The design and implementation of Adam are discussed in this paper. The authors worked on making it easier to train big neural networks by making sure the computers and communication between them work well together. The big models were divided into smaller parts and they attempted to use less memory and communication between the machines.

They developed a process of training large machine learning models more efficiently. They were able to train a big model using fewer machines and it was more accurate than previous methods which also lead to the conclusion that using bigger models leads to even better results. This research suggests that it is possible to improve the accuracy of deep learning predictions by training larger models on big datasets using efficient and scalable computer systems. This approach is different from the traditional approach which focuses mainly on improving the algorithms used in machine learning.

Deep Neural Networks The authors discussed deep neural networks (DNNs) for vision, focusing on their use in visual tasks which require large-scale neural networks. DNNs consist of many computing units called neurons, connected in multiple layers for hierarchical feature learning. The activation of each neuron is computed based on its inputs, weights, bias, and activation function (e.g., sigmoid or hyperbolic tangent). Convolutional neural networks (CNNs) are a type of DNN inspired by the visual cortex, with neurons connected only to nearby neurons, sharing weights, and reducing the number of parameters. Max-pooling layers are often used to down-sample the input and provide robustness to small translations. The last layer of a DNN for multiclass classification often uses the softmax function to output a vector of values in the range 0 to 1, summing to 1. Recent work has shown that DNNs with 5 convolutional layers for learning visual features and 3 fully connected layers for making classification decisions achieve state-of-the-art results on visual object recognition tasks.

Training Neural Networks Neural networks are trained using back-propagation with gradient descent. Stochastic gradient descent, a variant of gradient descent, is often used because it is scalable. During training, the inputs are processed one at a time, starting with feed-forward evaluation, where the output of each neuron is computed as a function of its inputs. Back-propagation is then used to compute error terms for each neuron in the output layer and to update the weights based on the error terms. The weights are updated using the learning rate parameter and the process is repeated until the validation set error converges to a desired low value. The final model is evaluated on test data.

Deep Learning Training The training of large deep neural networks is carried out in a distributed system with tens of thousands of CPU cores. The system is based on a multi-spert architecture and uses both model and data parallelism. The models are divided among multiple worker machines, and the training is done in parallel on different partitions of the data set. All the replicas of the model share the same set of parameters that are stored on a global parameter server. The replicas work in parallel and exchange updates to the parameters asynchronously, which leads to inconsistencies. However, neural networks have been shown to be resilient learning architecture and have been successfully trained to world-record accuracy in visual object recognition tasks.

Architecture The article explains the technology behind Adam, which is a system for training deep neural networks. It uses a specific setup, called Multi-Spert, that involves separate machines for providing data and training the model. The system uses multiple copies of the model, which are all updated at the same time by a central server. This method is called asynchronous training. Adam is designed to be efficient, with features like multi-threading, quick weight updates, and memory optimizations. It can be used to train any kind of deep neural network using a common method called back-propagation.

A small group of machines were configured to serve as data-serving machines in order to manage the huge amount of data required for training large DNNs. These machines handle the computationally demanding transformations of the training data, such as image translations, reflections, and rotations, in order to reduce the workload on the model training machines and ensure high-speed data delivery. The data servers pre-cache the images, using nearly all the system memory as an image cache, and use asynchronous IO to process incoming requests. The model training machines request images in advance in batches to make sure they always have the necessary data in memory during the main training process.

In the context of training deep neural networks, the authors describe several optimizations they have made to improve performance. The training of the models is multi-threaded, with each thread having a training context for feed-forward evaluation and backpropagation. The training context stores the activations and weight updates computed during backpropagation. To speed up training further, the authors use a method to access and update shared model weights locally without using locks, which introduces some potential issues but can still train the models to convergence due to the associative and commutative nature of weight updates. To avoid or reduce expensive memory copies, the authors use a uniform optimized interface and their own network library to minimize data communication across multiple machines. The models are partitioned across multiple machines to fit into the L3 cache, optimize computation for cache locality, and use custom hand-tuned assembly kernels for maximum utilization of the floating point units. To handle variance in speed between machines, the authors allow parallel processing of multiple images and end an epoch when a specified fraction of images have been processed.

The parameter server in Adam is a system that helps manage the updates made to a deep neural network during training. It receives updates from the training machines and sends the current values of the model's parameters. It is optimized for speed and reliability, with features such as dividing the parameters into smaller chunks and storing multiple copies for fault tolerance. It also uses high-speed networking to ensure efficient communication between the different components of the system.

Evaluation Adam is a system that is being evaluated using two benchmarks for image recognition tasks called MNIST and ImageNet. MNIST is a small dataset of 60,000 images used to measure the accuracy of trained models and ImageNet is a large dataset with over 15 million images used to measure the performance and scaling of Adam. The authors evaluate the performance of the Adam optimization algorithm on a small MNIST model for digit classification. They measure the training speed and accuracy with varying numbers of processor cores and a single parameter server. The results show that Adam has good scaling and outperforms the state-of-the-art accuracy by 0.08%. The authors also find that asynchrony in Adam contributes to improved model accuracy by 0.24%.

It was found that Adam was able to train large models with a small number of machines and that it improves the efficiency as more machines are added. It was observed that it is efficient and can train larger models with the same amount of resources. Additionally, they also found that training larger models increased task accuracy and that Adam's efficiency and scalability enabled training larger models.

Related Work Deep learning models require high computational power and are commonly trained on GPUs. However, this limits the size of models that can be trained, and results in models with lower accuracy. DistBelief is the only system known to support both model and data parallelism, but it is not cost-effective and has poor scaling efficiency. Other large-scale graph processing frameworks are not suitable for deep learning due to lack of support for network structure and training efficiencies. The computer architecture community is exploring hardware acceleration for neural network models but it mainly focuses on efficient evaluation of already trained networks, not on training large DNNs.

To conclude, it was shown through this paper that utilizing large-scale commodity distributed systems can efficiently train deep neural networks (DNNs) to achieve world-record accuracy on challenging vision tasks with current training algorithms. By utilizing Adam optimization, the authors were able to train a large DNN model that achieved record-breaking classification performance on the ImageNet 22K category task.

KavitaMeena23 commented 1 year ago

mention the following in the summary:

  1. include background (section 2)
  2. brief section 3, section 4 & section 5
KavitaMeena23 commented 1 year ago

+1

duttabhishek0 commented 1 year ago

@tapaswenipathak