AI Briefing

4-bit floating point FP4

·2026.04.19 02:21

FP4의 비트 구성, 값 범위, E2M1 형식을 설명한다.

64-bit까지 커진 일반적 float과 달리, neural network는 더 많은 파라미터를 넣기 위해 더 낮은 정밀도의 floating point를 원한다. 그래서 FP8, FP4 같은 초저정밀 형식이 쓰인다.

FP4는 4비트 중 1비트를 sign에 쓰고, 나머지 3비트를 exponentmantissa로 나눈다. 가능한 조합은 E3M0, E2M1, E1M2, E0M3이며, 이 중 E2M1이 가장 흔하고 Nvidia 하드웨어도 지원한다.

값은 일반적으로 (-1)^s × 2^(e-b) × (1 + m/2) 형태로 해석되며, 여기서 bias는 양수/음수 exponent를 표현하기 위해 사용된다. bias는 범위에는 영향을 주지만, 상대적 간격 자체는 바꾸지 않는다.

각 형식의 성격은 다음과 같다.

  • E3M0: 전부 exponent라서 log scale에 가깝다.
  • E0M3: 전부 mantissa라서 linear scale에 가깝다.
  • E1M2, E2M1: 둘 사이의 절충형으로, 둘 다 불균일한 간격을 가진다.

특히 e = 0일 때는 예외 규칙이 적용되어, m = 0은 0, m = 10.5가 된다. 또 FP4에도 전체 float와 마찬가지로 +0-0 두 개의 zero가 있다.

예시로 E2M1의 16개 표현값은 다음처럼 나온다.

  • 양수: +0, +0.5, +1, +1.5, +2, +3, +4, +6
  • 음수: -0, -0.5, -1, -1.5, -2, -3, -4, -6

글은 pychop 라이브러리로 이 표를 생성하는 Python 코드도 함께 보여준다. 마지막으로 FP4만 있는 것이 아니라 다양한 4-bit float 포맷이 존재하며, 다음 글에서는 NF4를 다룬다고 예고한다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.