[논문 리뷰] FP8 Formats for Deep Learning
본 논문은 딥러닝용 FP8 이진 교환 형식(E4M3 및 E5M2)을 제안하고, 동일 하이퍼파라미터를 사용하여 FP8 학습 및 추론이 CNN, 트랜스포머, 그리고 최대 175B 파라미터의 대형 언어 모델에 걸쳐 16비트 정밀도에 맞먹을 수 있음을 보인다.
FP8 is a natural progression for accelerating deep learning training inference beyond the 16-bit formats common in modern processors. In this paper we propose an 8-bit floating point (FP8) binary interchange format consisting of two encodings - E4M3 (4-bit exponent and 3-bit mantissa) and E5M2 (5-bit exponent and 2-bit mantissa). While E5M2 follows IEEE 754 conventions for representatio of special values, E4M3's dynamic range is extended by not representing infinities and having only one mantissa bit-pattern for NaNs. We demonstrate the efficacy of the FP8 format on a variety of image and language tasks, effectively matching the result quality achieved by 16-bit training sessions. Our study covers the main modern neural network architectures - CNNs, RNNs, and Transformer-based models, leaving all the hyperparameters unchanged from the 16-bit baseline training sessions. Our training experiments include large, up to 175B parameter, language models. We also examine FP8 post-training-quantization of language models trained using 16-bit formats that resisted fixed point int8 quantization.
연구 동기 및 목표
- DL 학습 및 추론 가속화를 위한 컴팩트한 8비트 부동 소수점 형식의 필요성 제시.
- 두 가지 FP8 인코딩(E4M3 및 E5M2)을 제안하고 동적 범위 및 텐서별 스케일링과 같은 설계 선택을 논의한다.
- CNN, RNN, 트랜스포머 모델 전반에 걸친 FP8 학습과 FP8 기반 추론을 시연하며, 175B 파라미터에 이르는 매우 큰 언어 모델도 포함한다.
- FP16/bfloat16로 학습된 모델의 FP8로의 포스트 트레이닝 양자화(PTQ)를 평가하고 int8 양자화와 비교한다.
- 실제 DL 파이프라인에서의 스케일링, 오버플로 처리 및 특수 값 표현 등 FP8 사용에 대한 지침을 제시한다.
제안 방법
- FP8 이진 교환 형식 E4M3(지수 4비트, 가수 3비트) 및 E5M2(지수 5비트, 가수 2비트)를 정의한다.
- 템별 스케일링 인수와 IEEE 유사 지수 바이어스( E4M3의 7, E5M2의 15 )를 유지하는 이유를 설명한다.
- 학습 중 텐서 값을 FP8 표현 범위로 자르기(clipping)하여 시뮬레이션하고, 더 넓은 정밀도로 산술 연산을 수행한 뒤 필요에 따라 FP8로 저장하기 위해 캐스팅한다.
- 다양한 모델(CNN, RNN, Transformer)을 FP8 입력으로 학습하되, 기준 16비트 하이퍼파라미터를 고정하고 175B 파라미터에 이르는 매우 큰 언어 모델을 포함한다.
- 더 높은 정밀도로 학습된 모델의 FP8 추론과 FP8 PTQ를 평가하고, int8 및 16비트 기준과 비교한다.
- 일부 네트워크에서 텐서별 스케일링의 필요성 및 정확도에 미치는 영향을 논의한다.
실험 결과
연구 질문
- RQ1FP8(E4M3 및 E5M2) 학습이 CNN, RNN, Transformer 등 다양한 아키텍처에서 16비트 학습과 동등한 정확도를 달성할 수 있는가?
- RQ2FP8의 다이나믹 레인지와 특수 값 표현이 학습 안정성과 정확도에 미치는 함의는 무엇인가?
- RQ3정확도 유지를 위해 FP8 추론에서 텐서별 스케일링이 필요한가, 그리고 FP8 PTQ가 int8 양자화와 어떻게 비교되는가?
- RQ4FP8이 175B 파라미터에 이르는 매우 큰 언어 모델의 학습과 배포를 위한 PTQ에 어떻게 영향을 미치는가?
주요 결과
- 동일한 모델, 옵티마이저 및 하이퍼파라미터를 사용할 때 다양한 작업 및 아키텍처에 대해 FP8 학습이 FP16 또는 bfloat16 학습 결과와 일치한다.
- ImageNet의 이미지 모델은 여러 아키텍처(예: ResNet 변형, DenseNet, Xception, DeiT)에서 FP8 정확도가 FP16/bfloat16 기준선의 런 간 변동 내에 있음을 보인다.
- Transformer 기반 및 GNMT 아키텍처를 포함한 언어 모델은 175B 파라미터까지 FP8 학습으로 BLEU와 perplexity 점수에서 16비트 기준선의 런 간 변동 내에 있다.
- FP16/bfloat16로 학습된 모델의 FP8(E4M3)로의 포스트 트레이닝 양자화는 다수의 NLP 작업에서 int8 PTQ보다 정확도를 더 잘 유지하며, 텐서별 스케일링이 결과를 향상시킨다(예: BERT, GPT-3 규모).
- FP8 저장 텐서가 늘어날 때 정확도 유지를 위해 텐서별 스케일링이 때때로 필요하다는 점은 wikitext103의 perplexity 실험에서 보인다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.