[논문 리뷰] Revisiting BFloat16 Training
이 논문은 표준 반올림 방식을 확률적 반올림으로 대체하고 가중치 갱신에 Kahan 합산을 적용함으로써 BFloat16를 사용한 16비트-FPU 학습이 32비트 학습과 동일하거나 이를 초월하는 모델 정확도를 달성할 수 있음을 보여준다. 이러한 수치 기법들은 갱신 취소와 수렴 성능 저하를 감소시켜 순수 16비트 하드웨어에서 고정확도 학습을 가능하게 하며, 일곱 개의 모델을 대상으로 최대 7%p의 절대 정확도 향상과 32비트 학습보다 0.1%~0.2% 높은 검증 정확도를 달성한다.
State-of-the-art generic low-precision training algorithms use a mix of 16-bit and 32-bit precision, creating the folklore that 16-bit hardware compute units alone are not enough to maximize model accuracy. As a result, deep learning accelerators are forced to support both 16-bit and 32-bit floating-point units (FPUs), which is more costly than only using 16-bit FPUs for hardware design. We ask: can we train deep learning models only with 16-bit floating-point units, while still matching the model accuracy attained by 32-bit training? Towards this end, we study 16-bit-FPU training on the widely adopted BFloat16 unit. While these units conventionally use nearest rounding to cast output to 16-bit precision, we show that nearest rounding for model weight updates often cancels small updates, which degrades the convergence and model accuracy. Motivated by this, we study two simple techniques well-established in numerical analysis, stochastic rounding and Kahan summation, to remedy the model accuracy degradation in 16-bit-FPU training. We demonstrate that these two techniques can enable up to 7% absolute validation accuracy gain in 16-bit-FPU training. This leads to 0.1% lower to 0.2% higher validation accuracy compared to 32-bit training across seven deep learning applications.
연구 동기 및 목표
- 16비트-FPU 전용 학습이 딥러닝 모델에서 32비트 학습의 정확도를 따라할 수 있는지 확인하는 것.
- 특히 가중치 갱신의 가장 가까운 반올림 방식으로 인한 정확도 저하의 근본 원인을 규명하는 것.
- 기존 수치 해석 기법인 확률적 반올림과 Kahan 합산이 16비트-FPU 학습에서 모델 정확도를 복원할 수 있는지 평가하는 것.
- 16비트 이하의 저밀도 학습 가능성과 Float16이 BFloat16에 비해 16비트-FPU 학습에서 가지는 한계를 평가하는 것.
- 적절한 소프트웨어 기법과 결합할 경우 32비트 FPUs가 고정확도 학습에 필수적이지 않음을 증명함으로써 향후 하드웨어 설계를 이끌어내는 것.
제안 방법
- 가중치 갱신에 표준 가장 가까운 반올림 방식을 대체하여 확률적 반올림을 적용함으로써 가중치 추정의 편향을 제거하고 수렴 속도를 유지한다.
- 16비트-FPU 학습 중 기울기 및 최적화기 상태 누적 시 부동소수점 오차 누적을 줄이기 위해 Kahan 합산을 적용한다.
- 8개의 지수 비트와 7개의 매니피사 비트를 가진 BFloat16 형식을 사용하여 Float16에 비해 더 넓은 다이내믹 레인지의 이점을 활용한다.
- 확률적 반올림과 Kahan 합산 두 기법을 동시에 모델 가중치에 적용하여 탄력성과 상호보완성을 테스트한다.
- CIFAR-10, Criteo Kaggle, Terabyte 데이터셋을 사용해 일곱 개인공학 모델(ResNet-18, DLRM, BERT 등)에서 분석 실험을 수행한다.
- 32비트, 표준 16비트-FPU(가장 가까운 반올림), 향상된 16비트-FPU(확률적 반올림 및/또는 Kahan 합산 포함) 구성 간의 학습 및 검증 정확도를 비교한다.
실험 결과
연구 질문
- RQ116비트-FPU 학습에서 가장 가까운 반올림 방식이 딥러닝 모델의 수렴 성능 저하와 정확도 손실을 유발하는가?
- RQ2확률적 반올림과 Kahan 합산이 32비트 FPUs 없이도 16비트-FPU 학습의 정확도 저하를 효과적으로 완화할 수 있는가?
- RQ3BFloat16의 다이내믹 레인지가 안정적인 16비트-FPU 학습을 가능하게 하는 데 Float16과 비교해 어떻게 다를까?
- RQ416비트 이하의 정밀도 감소가 모델 정확도에 미치는 영향은 무엇이며, 추가로 필요한 기법은 무엇인가?
- RQ5최적화된 반올림 및 합산 기법을 적용한 16비트-FPU 학습이 다양한 딥러닝 모델에서 32비트 학습 정확도를 따라하거나 초월할 수 있는가?
주요 결과
- 표준 16비트-FPU 학습(가장 가까운 반올림)은 32비트 학습 대비 최대 16%p의 학습 정확도 저하와 7%p의 검증 정확도 저하를 보였다.
- 특히 일정하거나 감소하는 학습률 하에서 DLRM 모델의 중기에서 후기 학습 단계에서 가장 가까운 반올림으로 인해 비영향을 받는 가중치 갱신 비율이 80%를 초과했다.
- 확률적 반올림과 Kahan 합산을 함께 적용한 16비트-FPU 학습은 32비트 학습과 동일하거나 이를 초월하는 검증 정확도를 달성했으며, 최대 7%p의 절대 정확도 향상을 기록했다.
- 일곱 개의 다양한 딥러닝 응용 분야에서 평균적으로 이 기법을 적용한 16비트-FPU 학습은 32비트 학습보다 0.1%p 낮거나 0.2%p 높은 검증 정확도를 기록했다.
- 매니피사 정밀도가 BFloat16와 유사한 Float16 정밀도를 사용하더라도, 그 제한된 다이내믹 레인지로 인해 정확도 저하가 심각하게 발생했으며, 확률적 반올림이나 Kahan 합산을 적용해도 이를 회복하지 못했다.
- 추가 기법 없이 10비트, 12비트, 14비트의 저밀도 학습은 16비트 또는 32비트 학습보다 정확도가 낮게 나타났으며, 이는 일반적인 모델 학습에 있어 16비트가 실용적인 하한임을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.