Skip to main content
QUICK REVIEW

[논문 리뷰] Backprop with Approximate Activations for Memory-efficient Network Training

Ayan Chakrabarti, Benjamin Moseley|arXiv (Cornell University)|2019. 01. 23.
Advanced Neural Network Applications참고 문헌 21인용 수 17
한 줄 요약

이 논문은 훈련 중 GPU 메모리 사용량을 줄이기 위해 근사 활성화를 사용하는 메모리 효율적인 역전파 방법을 제안한다. 이 방법은 역전파 동안 낮은 정밀도의 근사값만 저장하고, 순방향 전파 시 정확한 활성화를 재계산한다. 이 접근법은 훈련 정확도에 미미한 영향을 미치면서도 최대 8배의 메모리 절감을 가능하게 하며, ResNet과 같은 깊은 신경망(1000+층)에서 4비트 정밀도로도 작동 가능하게 하여 더 큰 배치 크기와 더 나은 GPU 활용도를 제공한다.

ABSTRACT

Training convolutional neural network models is memory intensive since back-propagation requires storing activations of all intermediate layers. This presents a practical concern when seeking to deploy very deep architectures in production, especially when models need to be frequently re-trained on updated datasets. In this paper, we propose a new implementation for back-propagation that significantly reduces memory usage, by enabling the use of approximations with negligible computational cost and minimal effect on training performance. The algorithm reuses common buffers to temporarily store full activations and compute the forward pass exactly. It also stores approximate per-layer copies of activations, at significant memory savings, that are used in the backward pass. Compared to simply approximating activations within standard back-propagation, our method limits accumulation of errors across layers. This allows the use of much lower-precision approximations without affecting training accuracy. Experiments on CIFAR-10, CIFAR-100, and ImageNet show that our method yields performance close to exact training, while storing activations compactly with as low as 4-bit precision.

연구 동기 및 목표

  • 깊은 합성곱 신경망 훈련의 높은 메모리 사용량 문제를 해결하기 위해, 역전파를 위한 전정밀도 활성화를 저장하는 데 기인한 메모리 부담을 줄이기 위함이다.
  • 계산 비용을 크게 증가시키거나 모델 성능을 떨어뜨리지 않으면서도 메모리 사용량을 줄이기 위함이다.
  • 활성화 저장을 최소화하여 단일 GPU 환경에서도 매우 깊은 신경망(예: 1001층의 ResNet)을 훈련시킬 수 있도록 하기 위함이다.
  • 역전파 중 활성화의 근사 오차에 대한 확률적 경사 하강법의 내성에 대해 탐구하기 위함이다.
  • 새로운 버퍼 재사용 전략을 통해 근사 오차가 계층 간에 누적되지 않도록 하고, 그 영향을 제한할 수 있음을 보여주기 위함이다.

제안 방법

  • 순방향 전파 중 정확한 활성화를 일시적으로 저장하기 위해 재사용 가능한 버퍼를 사용하며, 이를 사용한 후에는 메모리 절약을 위해 덮어쓰기 한다.
  • 각 계층의 활성화에 대해 저정밀도(예: 4비트) 근사 복사본을 유지하여 역전파에 사용한다.
  • 순방향 전파에서는 정확한 활성화를 사용해 기울기를 계산하여 정확도를 확보하고, 역전파에서는 근사 복사본을 사용하여 메모리 사용량을 줄인다.
  • 정확한 활성화에 대한 동일한 버퍼를 재사용하고, 전체 계층에 걸쳐 정확한 활성화를 저장하지 않기 때문에, 이 방법은 모든 계층에 대한 전체 활성화 저장을 피한다.
  • 순방향 전파가 정확한 상태를 유지함으로써 오차가 계층 간에 누적되는 것을 방지하고, 역전파에서의 근사 오차 영향을 제한한다.
  • SGD의 내재된 노이즈가 활성화 근사로 인해 추가로 발생하는 작은 오차를 흡수할 수 있도록 활용함으로써, 이 방법은 강건성을 확보한다.

실험 결과

연구 질문

  • RQ14비트와 같은 매우 낮은 정밀도 표현을 사용하더라도, 근사 활성화를 역전파에 사용할 경우 모델 정확도가 크게 떨어지지 않을 수 있는가?
  • RQ2근사 오차가 계층 간에 누적되지 않도록 어떻게 제어할 수 있는가?
  • RQ3훈련 중 메모리 사용량을 얼마나 줄일 수 있으며, 이로 인해 훈련 효율성과 모델 성능이 유지되는가?
  • RQ4활성화 근사로 인한 오차는 확률적 경사 하강법의 내재된 노이즈와 유사한가?
  • RQ5이 방법을 통해 단일 GPU 환경에서 매우 깊은 신경망(예: 1001층의 ResNet)을 큰 배치 크기로 훈련시킬 수 있는가?

주요 결과

  • 정확한 훈련 대비 최대 8배의 메모리 사용량 감소를 기록하여, 단일 1080Ti GPU에서 1001층의 ResNet 훈련이 가능해졌다.
  • 4비트 근사로도 CIFAR-10, CIFAR-100, ImageNet에서 정확한 훈련과 0.5% 이내의 테스트 정확도를 달성했다.
  • 파라미터 기울기의 근사 오차는 SGD의 내재된 노이즈보다 1~2개의 주요 차수 작아, 성능에 미치는 영향이 미미한 것으로 설명된다.
  • 제안된 방법을 통해 더 큰 배치 크기의 사용이 가능해져 GPU 활용도가 향상되고, 샘플당 훈련 시간이 단축되었다.
  • 정확한 훈련과 제안된 방법 간의 반복 실행 시간은 거의 동일하여, 계산 오버헤드가 거의 없음을 나타낸다.
  • CIFAR-10에 대해 단일 1080Ti GPU에서 128배치 훈련이 가능했으며, 정확한 훈련은 동일한 환경에서 64배치로 두 번의 순전파-역전파를 수행해야 했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.