본문 바로가기

AI & Big Data/AI 경량화 논문 분석

FP8 Formats for Deep Learning (NVIDIA/ARM/Intel 합작 논문

반응형

Basic Information

  • Paulius Micikevicius, Dusan Stosic, Neil Burgess, Marius Cornea, Pradeep Dubey, Richard Grisenthwaite, Sangwon Ha, Alexander Heinecke, Patrick Judd, John Kamalu, Naveen Mellempudi, Stuart Oberman, Mohammad Shoeybi, Michael Siu, Hao Wu 저
    • 비고: NVIDIA, Intel, ARM 사에서 각잡고 모여서 만든 논문이므로 실용성에 초점을 맞추고 있음
    • 비고2: 상당히 하드웨어 Dependent한 지식으로 논문이 이루어져있음. 정말로 NVIDIA, Intel, ARM 사에서 써먹기 위해 낸 논문이라는 생각이 드는 논문.
  • 22.09.29
  • eprint arXiv:2209.05433
  • 논문 아카이브: Link

서론

  • 본 논문은 두 가지 인코딩, E4M3 (4비트 지수와 3비트 가수) 및 E5M2 (5비트 지수와 2비트 가수)로 구성된 8비트 부동 소수점 (FP8) 이진 교환 형식을 소개합니다.
  • E5M2 형식은 특수 값의 표현에 대한 IEEE 754 규약을 따르며, E4M3의 동적 범위는 무한대를 표현하지 않고 NaNs에 대해 하나의 가수 비트 패턴만을 가지도록 확장됩니다.
  • FP8 형식의 효과는 다양한 이미지 및 언어 작업에서 시연되며, 16비트 훈련 세션에서 달성된 결과 품질과 일치합니다.
  • 연구는 CNNs, RNNs 및 Transformer 기반 모델과 같은 다양한 현대 신경망 아키텍처를 포함하며, 16비트 기준 훈련 세션에서 하이퍼파라미터를 변경하지 않습니다.

배경

  • 논문은 최첨단 딥러닝 결과에 필요한 신경망 모델 크기와 컴퓨트 리소스의 증가에 대해 논의합니다. GPT-3, Turing-Megatron, PaLM 및 OPT와 같은 대형 언어 모델은 수천 개의 프로세서에서 교육하는 데 주간이 소요됩니다.
  • 숫자의 감소된 정밀도 표현은 딥러닝 훈련 및 추론 가속화에 있어 핵심적인 역할을 합니다.
  • FP8 형식은 int8과 비교했을 때 추론에 대한 이점을 제공하는 16비트 부동 소수점 유형에서의 발전으로 제시됩니다.

FP8 사용의 측면

  • 논문은 다양한 네트워크에서 필요한 동적 범위를 논의하며, 이로 인해 두 형식 (E4M3 및 E5M2)이 필요합니다.
  • FP8 입력에 대한 수학적 연산은 더 높은 정밀도에서 출력을 생성할 것으로 예상되며, 결과를 메모리에 쓰기 전에 선택적으로 FP8로 변환됩니다.

FP8 이진 교환 형식

  • FP8 형식은 두 가지 인코딩, E4M3 및 E5M2로 구성됩니다. 논문은 가중치 및 활성화 텐서에 대해 E4M3를 사용하고 기울기 텐서에 대해 E5M2를 사용하는 것을 권장합니다.
  • 이러한 FP8 형식의 설계 원칙은 IEEE-754 규약과 일관성을 유지하는 것이며, DL 응용 프로그램의 정확성에 중요한 이점이 예상될 때만 편차합니다.

Special Value Representations

  • 논문은 특수 값의 비트 패턴을 일반 값에 채택함으로써 E4M3 형식의 좁은 동적 범위를 확장합니다.
  • 무한대는 표현되지 않으며 NaNs에 대해 하나의 가수 비트 패턴만이 유지됩니다.

Exponent Bias

  • E4M3와 E5M2 모두 IEEE와 유사한 Exponent Bias를 유지합니다
    • 각각 E4M3와 E5M2에 대해 7과 15입니다.
  • Exponent Bias는 실수선에서 표현 가능한 범위의 위치를 제어합니다.
  • 텐서별로 스케일 요소를 유지함으로써 동일한 효과를 얻을 수 있습니다.
  • 우리의 실험은 주어진 유형의 모든 텐서에 대해 동일한 Exponent Bias를 사용할 수 없는 신경망이 있다는 것을 나타냅니다, 이는 텐서별 조정이 필요합니다.
  • 따라서 우리는 Exponent Bias에 대한 IEEE 규약에서 벗어나지 않기로 결정했습니다.
  • 텐서별 스케일링을 소프트웨어 구현에 맡기면 프로그래밍 가능한 지수 바이어스 접근법보다 더 많은 유연성을 제공합니다.
    • 스케일링 요소는 어떤 실제 값(일반적으로 더 높은 정밀도로 표현됨)도 취할 수 있으며, 프로그래밍 가능한 바이어스는 2의 거듭제곱만을 스케일링 요소로 허용하는 것과 동일합니다.

Empirical Results

  • 훈련 실험은 시뮬레이션된 FP8에서 수행되었으며, 텐서 값은 FP8에서 표현될 수 있는 값으로만 클립되었습니다.
  • 모든 GEMM 연산의 입력은 FP8로 클립되었으며, 이전 연구에서 더 높은 정밀도로 남겨진 첫 번째 합성곱과 마지막 완전 연결 레이어를 포함합니다.
  • DeiT는 Transformer 기반 아키텍처이며, 나머지 모델은 CNN입니다. MobileNet v2를 제외하고 FP8 훈련으로 달성된 정확도는 더 높은 정밀도 훈련의 실행간 변동 내에 있습니다.

Training

  • FP8 훈련 실험에서는 더 높은 정밀도 기준 훈련 세션에 사용되는 동일한 모델 아키텍처, 가중치 초기화 및 최적화 도구 하이퍼파라미터를 유지합니다.
  • 이 연구에서는 점곱 계산을 포함하는 GEMM 연산으로 알려진 합성곱 및 행렬 곱셈과 같은 수학적으로 집중적인 연산의 입력 텐서에 중점을 둡니다.

Inference

  • 8비트 추론 배포는 FP8 훈련에 의해 크게 단순화되며, 추론과 훈련이 동일한 데이터 유형을 사용합니다.
  • 이는 32비트 또는 16비트 부동 소수점에서 훈련된 네트워크와 함께 int8 추론과 대조되며, 모델 정확도를 유지하기 위해 사후 훈련 양자화(PTQ) 보정과 때로는 양자화 인식 훈련(QAT)이 필요합니다.
  • 더욱이, 양자화 인식 훈련을 사용하더라도 일부 int8 양자화된 모델은 부동 소수점으로 달성된 정확도를 완전히 회복하지 못할 수 있습니다 [1]. 우리는 16비트 부동 소수점에서 훈련된 모델의 FP8 사후 훈련 양자화를 평가합니다.
  • 표 5는 추론을 위해 int8 또는 E4M3으로 양자화된 FP16으로 훈련된 모델의 추론 정확도를 나열합니다. 두 양자화 모두 가중치에 대한 채널별 스케일링 요소, 활성화에 대한 텐서별 스케일링 요소를 사용하며, 이는 int8 고정 소수점에 일반적입니다.
  • 행렬 곱셈 연산(주의 일괄 행렬 곱셈 포함)에 대한 모든 입력 텐서는 양자화되었습니다.
  • 가중치에 대해 최대 크기의 텐서가 표현되도록 스케일링 요소를 선택하는 최대 보정이 사용되며, 활성화 텐서는 최대, 백분위수 및 MSE 방법 중에서 선택한 최상의 보정을 사용하여 보정됩니다.
  • 스탠퍼드 질문 응답 데이터셋에서 BERT 언어 모델 평가는 FP8 PTQ가 정확도를 유지하는 반면 int8 PTQ는 모델 정확도의 중요한 손실을 초래한다는 것을 보여줍니다.
  • 또한 스케일링 요소를 적용하지 않고 텐서를 FP8로 캐스팅해 보았으나, 이로 인해 정확도가 크게 저하되어 혼란도가 11.0으로 증가했습니다.
  • wikitext103 데이터셋에서 GPT 모델의 평가는 FP8 PTQ가 int8에 비해 모델 정확도를 훨씬 더 잘 유지한다는 것을 보여줍니다.

Per-tensor scaling factors

  • 많은 네트워크의 훈련과 추론은 동일한 유형의 모든 텐서에 대해 동일한 스케일링 요소로 FP8에서 성공적으로 수행될 수 있습니다(다시 말해, 단일 지수 바이어스를 선택할 수 있음).
  • 그러나 정확도를 유지하기 위해 텐서별 스케일링 요소가 필요한 경우도 있습니다. 이러한 필요성은 GEMM 연산의 입력만이 아닌 더 많은 텐서를 FP8에 저장할 때 더욱 두드러집니다.
  • 그림 2는 bfloat16으로 훈련된 네트워크의 사후 훈련 양자화를 사용하여 FP8 추론 혼란도(wikitext103 데이터셋에서 측정)를 보여줍니다.
  • 보정은 이루어지지 않았으며, 가중치와 활성화 텐서는 해당 지수 바이어스와 함께 bfloat16에서 E4M3 유형으로 캐스팅되었습니다. 보시다시피, GEMM 연산의 입력만 FP8로 캐스팅할 때 [7, 10] 범위의 여러 Exponent Bias 선택이 bfloat16 기준선과 일치하는 결과를 가져옵니다.
  • 그러나, 우리가 또한 잔여 연결을 FP8로 양자화하면(저장 및 메모리 대역폭에 대한 압박을 더 줄이기 위해 Add 연산의 입력 텐서) 단일 지수 바이어스 값이 충분한 정확도를 가져오지 않습니다.
    • Exponent Bias 7조차도 혼란도가 12.59로 bfloat16 기준선의 10.19보다 훨씬 높습니다(더 나쁨).
    • 그러나 대신 텐서가 자체 스케일링 요소를 가지도록 보정하면(가중치와 활성화에 대해 각각 채널별 및 텐서별 스케일링 요소를 사용하는 int8 양자화 규약을 따름) GEMM-only와 GEMM+residuals FP8 추론에 대해 10.29 및 10.44의 혼란도를 달성합니다.

결론

  • 이 논문에서는 E4M3 및 E5M2 인코딩으로 구성된 FP8 이진 교환 형식을 제안합니다.
  • 이 형식의 주요 동기는 딥러닝 훈련 및 추론의 가속화로, 메모리 대역폭 압박을 줄이면서 더 작고 전력 효율적인 수학 파이프라인을 가능하게 합니다.
  • 우리는 이미지 및 언어 작업을 위한 다양한 신경망 모델을 FP8에서 훈련하여 동일한 모델, 최적화 도구 및 훈련 하이퍼파라미터를 사용하여 16비트 훈련 세션에서 달성된 모델 정확도와 일치시킬 수 있음을 보여줍니다.

 

반응형