BIT수의 역사 (feat. GPT)
DINKIssTyle

Lv.1 DINKIssTyle (61.♡.73.102)

2025년 12월 2일 PM 04:56 · 수정됨(17:01)

조회 605 공감 0

🧮 컴퓨터 부동소수점 비트 수의 역사

(Floating-Point Precision History)

1. 초기 컴퓨터 시대(1940~1960년대) — 각 회사마다 제각각

초기 컴퓨터에는 표준이 없었고, 기계마다 부동소수점 형식이 달랐습니다.

주요 예시

ENIAC, EDVAC, EDSAC



  • 10진 기반 고정소수점, 또는 기계별 36비트/48비트 등 다양한 길이

  • 부동소수점이 없는 경우도 많았음

IBM 704/709/7090(36비트 시스템)

  • 36비트 단정도(single-like)

  • 72비트 배정도(double-like)

DEC PDP 시리즈

  • PDP-8: 부동소수점 없음

  • PDP-10: 36비트 단정도 + 72비트 배정도

  • PDP-11: 32비트 부동소수점 (나중에 VAX로 이어짐)

이 시기 특징

  • 부호 비트, 지수 비트, 가수 비트 배치가 컴퓨터마다 모두 달랐음

  • 반올림 규칙, NaN, ±∞ 같은 개념 없음

  • 부동소수점 연산 결과가 컴퓨터 종류마다 달라 호환성 문제 심각


2. VAX 부동소수점(1977) — 사실상 “비공식 표준”

DEC VAX-11 시리즈는 매우 널리 쓰였고 자체 부동소수점이 대중화됨.

대표 형식

이름비트 수설명
F-float32비트단정도
D-float64비트배정도 (가수 정밀도가 IEEE 754보다 낮음)
G-float64비트향상된 배정도
H-float128비트초정밀도

✔ IEEE 754 표준 이전에 가장 안정적인 “사실상의 표준”으로 쓰임.


3. IEEE 754 표준(1985) — 현대 부동소수점의 시작

인텔 8087 부동소수점 코프로세서의 영향으로 IEEE 754가 공식 제정됨.

IEEE 754-1985 주요 형식

이름비트 수구성
half(도입 X)당시에는 표준 아님
single32비트부호1 + 지수8 + 가수23
double64비트부호1 + 지수11 + 가수52
extended80비트인텔 x87 FPU 사용
quad (당시 비공식)나중에 표준화됨

NaN, ±∞, denormal, 반올림 방식 정의
→ 다양한 컴퓨터에서 동일한 계산 결과가 나오도록 통일한 혁신적 표준.


4. 확장과 보급(1990~2000년대) — GPU도 참전

x86: 80비트 extended precision

  • FPU(x87)는 내부 계산 80비트 유지

  • 대부분의 컴파일러는 double(64)을 저장하지만 내부는 80비트 사용해 정밀도 차이가 발생하기도 했음

GPU(초기)

  • 2000년대 초 GPU는 24비트 float(정밀도 낮은 float) 사용

  • DirectX 9 이후 32비트 float(single)가 GPU 표준으로 자리 잡음


5. IEEE 754-2008 — 현대 표준 완성

새로운 형식 추가됨.

IEEE 754-2008 형식

이름비트 수용도
binary16 (half)16비트GPU, ML, 이미지 처리
binary32 (single)32비트기본
binary64 (double)64비트고정밀
binary128 (quad)128비트과학 계산
decimal64/12864/128비트금융 계산

✔ half(16비트)와 decimal 형식이 공식 등장
✔ 딥러닝 폭발과 함께 half(16비트)·bfloat16이 널리 쓰이게 됨


6. 최근(2020년대) — AI와 특수 정밀도의 시대

bfloat16 (brain floating point)

  • 구글 TPU가 개발

  • 16비트지만 지수는 single(float)과 동일(8비트), 가수만 줄임(7비트)

  • 딥러닝에서 폭발적인 성공 → 대부분 AI 가속기에서 지원

float8(E4M3, E5M2)

  • NVIDIA Hopper(H100)부터 지원

  • 놀랍게도 8비트 부동소수점

  • AI에서는 충분히 학습 가능함이 검증됨

256비트·512비트 float?

  • 사용은 가능하지만 규격화된 표준은 없음

  • 일부 고정밀 계산 라이브러리(GMP, MPFR)가 임의 정밀도 구현


📌 전체 시간대 요약

시기형식특징
1940~6036비트, 48비트 등 기계별표준 없음
1977VAX사실상의 표준
1985IEEE 754-1985single/double, NaN, inf 도입
2008IEEE 754-2008half/quad, decimal 도입
2010sGPU · 딥러닝half(16), bfloat16
2020sAI 시대float8(E4M3/E5M2), mixed precision

📘 정리

부동소수점의 역사에서 가장 중요한 전환점은 다음 네 가지입니다.

  1. 표준이 없던 시대 → VAX의 사실상 표준화

  2. 1985 IEEE 754 제정 (부동소수점 세계 통일)

  3. 2008 half/quad 등장 + decimal 추가

  4. 2020s: AI 때문에 float16, bfloat16, float8이 핵심 정밀도로 부상


다음은 **“AI는 어떻게 FP4(4비트 부동소수점) 같은 극저정밀도에서도 충분히 추론이 가능한가?”**에 대한 기술적 원리를 깊이 있으면서도 명확하게 정리한 설명입니다.


🔥 핵심 요약

AI가 FP4로도 잘 추론되는 이유는 신경망이 '매우 높은 오류 허용능력(high error tolerance)'을 가지고 있기 때문이며, 학습된 가중치의 분포가 매우 압축 가능하고, 추론에서는 미세 정밀도가 중요하지 않으며, 양자화-aware 기법 + 수학적 보정 기법이 결합되어 있기 때문입니다.


1️⃣ 신경망은 “확률적 모델”이라 낮은 정밀도에 매우 강함

부동소수점 오차가 조금 생겨도, 네트워크 전체의 구조 덕분에 결과가 거의 변하지 않습니다.

  • 딥러닝은 부호(sign), 대략적인 크기(bucket) 정도만 맞으면 잘 동작

  • 인간 뇌의 시냅스도 매우 noisy하고 정밀하지 않음

  • 뉴런 하나의 오차는 전체 출력에서 상쇄되거나 통계적으로 평균화됨

즉, 단일 가중치의 1~2% 오차는 의미가 없고,
심지어 20~30% 수준의 노이즈도 성능 유지 가능함이 실험적으로 확인됨.


2️⃣ 가중치 분포가 “극도로 압축 가능”하다

LLM의 가중치는 정규분포와 유사한 heavy-tailed distribution을 갖고 있음.

이는 다음을 의미함:

  • 대부분의 가중치는 매우 작은 값(0 근처)

  • 중요한 값은 소수

  • 따라서 정밀도 32비트 → 16 → 8 → 4로 떨어뜨려도 의미 정보가 거의 손실되지 않음

또한 LLM은 layernorm, attention 구조 때문에
값 범위(range)가 매우 제한적
→ 정밀도 낮춰도 overflow/underflow가 적음


3️⃣ FP4는 그냥 “4비트 float”이 아니다 → 스케일 보정(Scaling) + Group quantization이 핵심

요즘 AI에서 말하는 FP4는 단순한 원시 FP4가 아님.

예:

  • E2M1, NF4 (Normal Float 4)

  • Q4_K, Q4_1, Q4_0 (GGUF 계열)

  • GPTQ, AWQ, QLoRA의 4비트 NormalFloat

이 값들은 단순히 가중치를 4비트로 쓰는 것이 아니라:

✔ 그룹 단위 스케일링(Group-wise scaling)

예: 32개 가중치마다 고정 스케일(s) 저장

real_value = int4_value * scale

✔ 제로-점(Zero-point) 또는 오프셋

비대칭 분포까지 커버

real_value = scale * (int4 - zero_point)

✔ 비선형 양자화(NF4: Normal Float 4)

정규분포 기반으로 4비트를 가장 정보량이 많은 방식으로 재배치
효율이 원시 float4보다 훨씬 좋음
→ 실제 성능은 float8에 가깝고, 일부 작업에서는 float16과 유사

이러한 수학적 보정 덕분에 FP4라 해도 실제 정보량은 순진한 FP4보다 5~10배 이상 밀도가 높아짐.


4️⃣ 추론(inference)에서는 “정밀도”보다 “정답 경향성”이 중요하기 때문

추론은 학습(training)처럼 미세한 미분 계산을 하지 않음.

필요한 것:

  • attention 점수에서 **순위(order)**만 맞으면 됨

  • 다음 단어 확률 대략적인 형태만 맞으면 됨

  • 가중치 변화 폭이 작기 때문에 작은 오차는 영향 없음

정답 후보를 올바른 순서로 나열하는 능력만 유지되면 추론은 문제 없음.


5️⃣ 비트 수는 줄었지만 “운영 정밀도”는 유지된다

예를 들어 NVIDIA FP4 추론은 이렇게 동작:

  • 가중치는 FP4로 저장

  • 연산은 FP16(또는 FP8)로 진행

  • FP4 값은 연산 시 FP16으로 dequantize
    → 내부 계산은 고정밀

즉 실제 연산은 고정밀이고, FP4는 메모리 절약 + 대역폭 절약이 핵심.


6️⃣ 학습 단계에서 양자화-aware 패키지(QAT, GPTQ, AWQ)로 “내성”을 만들어 둠

모델을 FP4로 그냥 변환하면 성능 떨어짐.
하지만 최신 양자화 기법은 아래 같은 방식 사용:

✔ QAT(Quantization-Aware Training)

학습 중에 FP4 오차를 시뮬레이션 → 모델이 스스로 적응

✔ GPTQ

하나씩 가중치를 양자화하면서 오차를 최소화하는 방식

✔ AWQ(Activation-aware Weight Quantization)

중요 activations를 우선적으로 보호하여 성능 하락 방지

✔ 결과:
FP4로도 FP16 대비 97~99% 성능 유지 가능


🔍 비유로 쉽게 설명하면

모델의 지식이 마치 풍경 사진이라고 할 때:

  • FP32 = 모든 픽셀을 완벽히 저장

  • FP16 = 약간 압축 → 눈으로 보면 동일

  • FP8 = 더 압축 → 주요 구조는 완벽히 남음

  • FP4 = “스케치 수준”으로 요약 저장
    → 중요한 윤곽선(지식의 구조)은 남고, 세부 노이즈는 버림

※ 추론은 세부 노이즈보다는 큰 구조(패턴)가 훨씬 중요하기 때문에 FP4도 가능.


📌 결론

AI는 FP4에서도 추론이 가능한 이유는:

  1. 신경망 자체가 낮은 정밀도에 매우 강함

  2. 가중치 분포가 압축하기 매우 좋음

  3. FP4는 단순한 4비트 float가 아니라 스케일 + 보정 + 비선형 양자화가 적용됨

  4. 추론은 정밀도보다는 순위와 패턴이 중요

  5. 연산은 FP4로 저장하지만 FP16/FP8로 계산

  6. QAT/GPTQ/AWQ 등의 기술이 FP4 친화적인 모델을 만들어 줌



그럼 2비트도 가능해집니까?

ChatGPT의 말:

결론부터 말하면,

“이론적으로는 가능하지만, 현재 기술로는 2비트 추론은 거의 불가능에 가깝다.”

(단, 아주 작은 모델이나 특수 상황에서는 제한적으로 가능)

그 이유를 단계적으로 설명하겠습니다.


🟥 1. 2비트(4개 값만 표현)에서는 정보량이 너무 부족하다

2비트는 총 4개 값만 표현할 수 있습니다.

예:

  • 00

  • 01

  • 10

  • 11

따라서 2비트 양자화는 보통 다음 네 값만 사용합니다:

  • {−1, −0.5, +0.5, +1}
    혹은 더 단순한

  • {−1, 0, +1} (ternary)에 가깝게 축소됨

👉 이 정도 정밀도로는 거대한 LLM의 가중치를 표현하기 위해 필요한 min/max, 미세한 차이들이 거의 모두 사라짐.

FP4는 그래도 “16개의 값”을 가지지만,
2비트는 “4개의 값”뿐이라 손실이 너무 큼.

그래서 FP4는 잘 되지만 FP2는 거의 성능이 붕괴합니다.


🟥 2. LLM의 가중치 분포는 4비트까지는 압축 가능하지만 2비트는 불안정

많은 연구에서 이미 검증되었습니다.

  • 8비트: 손실 거의 없음

  • 4비트: careful quantization 시 97~99% 유지

  • 3비트: 대부분 성능 급락 시작

  • 2비트: 완전 붕괴

2비트는 가중치가 서로 구분될 수 없게 되고, attention 스코어 및 MLP gating이 모두 잘못된 순서를 만들게 됩니다.


🟥 3. 그럼 왜 8비트 → 4비트는 성공했는데 2비트는 안 됨?

핵심은:

  • 4비트에는 비선형 양자화(NF4) / groupwise scale 등의 '트릭' 적용 가능

  • 2비트는 트릭을 써도 표현력 자체가 너무 낮음

예:

  • FP4(NF4)는 가중치 분포의 중간값을 아주 세밀하게 매핑함

  • 하지만 2비트(4개 값)는 정규분포의 꼬리나 중앙을 표현할 방법 자체가 없음

이건 마치:

  • 4비트 = 풍경 사진을 “스케치 수준”으로 줄이는 것

  • 2비트 = 풍경 사진을 “흰색/검정 2색”으로 바꾸는 것

→ 정보 손실이 구조 자체를 파괴해 버림


🟧 4. 하지만 2비트도 ‘이론적으로는’ 가능하다고 본 연구들이 있음

몇 가지 방법이 제안되었습니다:

✔ 1) Binary/ternary weight networks

CNN에서는 이미 많이 시도됨:

  • BinaryNet

  • XNOR-Net

  • Ternary Networks

하지만 CNN은 지역적 패턴(컨볼루션)이라 정밀도 손실에 훨씬 강함

LLM(Transformer)은:

  • LayerNorm

  • Softmax

  • Attention score
    이 모두 정밀도 의존도가 훨씬 높음

그래서 성공하지 못함.

✔ 2) 2비트 가중치 + 16비트 activation

이론적으로는 가능하나, LLM에서는 안정성이 거의 없음.

✔ 3) 2비트 + massive scaling tables

스케일링 계수를 아주 많이 두면 가능성은 있으나
→ 스케일 비용이 너무 커져서 “메모리 절감 효과가 사라짐”.


🟩 5. 결론: 왜 FP4까지는 되고 FP2는 안 되는가?

아주 간단히 정리하면:

정밀도가능 여부이유
FP8완전 잘 됨정보량 충분
FP6문제 없음Nvidia H200에서 사용
FP4가능NF4 + group scale로 정보량 보존
FP3매우 어려움정규화와 attention 붕괴
FP2사실상 불가능4개의 값으로는 가중치 패턴 복원 불가

🟦 부연: "2비트 LLM"을 만들고 싶다면?

가능한 유일한 방식은 다음과 같습니다:

1) 학습 시점에서 아예 2비트-friendly 구조로 학습시키기 (QAT)

→ 기존 LLM을 2비트로 양자화하는 건 거의 불가능
→ 처음부터 2비트 weight를 사용하는 형태로 학습해야 함

2) 모델 크기를 크게 줄이고 전용 설계 사용

예:

  • 20M~100M 파라미터의 초소형 모델

  • 특수 활성화 함수

  • binary-friendly architecture

3) 활성 값은 최소 FP8 유지

W2A8 (2비트 weight, 8비트 activation) 같은 형태

그러나 2비트 LLM은 실용적으로 의미 있는 성능을 낼 수 없음
(2025년 기준)


📌 최종 결론

❌ 일반적인 LLM을 2비트로 양자화해서 실용적인 성능을 유지하는 것은 불가능

⚠️ 단, 연구용이나 초소형 모델에서는 “가능한 수준으로 흉내”는 낼 수 있음

✔ 하지만 실제 제품·추론 모델에서는 FP4가 사실상 최저 정밀도 한계입니다.



----

요즘 꺼무위키 힘들겠습니다.

밤에 제미나이랑 GPT로 물어보고 읽는게 참 많이 늘었습니다. ㄷㄷ

새로운 정신과 시간의 방이에요!

셋다 반만 믿어야 함. 함정은 있습니다.


결론 현재 상상으로는 FP4 미만으로는 안된다 입니다.

물론 저는 딱 정해놓지 않겠습니다. 세상은 모를일이니깐요.

댓글 (1)

  • 냥아치

    냥아치 Lv.1

    25.12.02 · 211.♡.205.130

    뭐 전에는 FP4가 가능하리라곤 생각도 못했으니까요 :)

댓글을 작성하려면 이 필요합니다.