본문 바로가기
AI2026년 9월 15일8분 읽기

1.58비트 삼진 LLM — 극단 양자화가 실제로 이기는 지점과 지지 않는 지점

YS
김영삼
조회 121
1.58비트 삼진 LLM — 극단 양자화가 실제로 이기는 지점과 지지 않는 지점

삼진(ternary) 양자화는 신경망 가중치를 -1, 0, +1 세 값만으로 표현하는 방식이다. 세 값을 표현하는 데 필요한 정보량이 log₂3 ≈ 1.58비트여서 "1.58비트 LLM"이라 부른다. 목표는 단순하다. 곱셈을 덧셈과 부호 반전으로 바꾸고, 가중치 메모리를 10분의 1 이하로 줄이는 것.

주의할 점도 분명하다. 이 방식은 대개 사후에 눌러 담는 게 아니라 처음부터 그렇게 학습해야 한다. 기존 FP16 모델을 삼진으로 변환하면 품질이 무너지는 경우가 많다.

양자화 이야기를 할 때마다 오해를 먼저 걷어내야 한다. 많은 사람이 양자화를 "정확도를 조금 버리고 속도를 얻는 것"으로 이해하는데, 절반만 맞다. 대형 언어 모델의 추론에서 진짜 병목은 연산이 아니라 메모리 대역폭인 경우가 많다. 가중치를 읽어 오는 데 시간을 다 쓴다. 그래서 가중치를 작게 만들면 연산량이 그대로여도 빨라진다.

비트 폭이 만드는 차이

표현가중치 1개당7B 모델 가중치 크기(개략)성격
FP1616비트약 14GB학습·기준 정확도
INT88비트약 7GB사후 양자화로도 안정적
INT44비트약 3.5GB널리 쓰이는 실용 지점
Ternary(1.58비트)약 1.58비트약 1.4GB학습 단계 반영 필요
Binary(1비트)1비트약 0.9GB품질 저하가 크다
숫자는 개략치 실제 파일 크기는 임베딩·정규화 계층·스케일 값 등 양자화하지 않는 부분 때문에 표의 단순 계산보다 큽니다. 또한 활성값(activation)은 별도 정밀도로 유지하는 경우가 많아, "모델 전체가 1.58비트"인 것은 아닙니다.

왜 곱셈이 사라지나

가중치가 -1, 0, +1뿐이면 행렬 곱의 각 항은 곱셈이 아니라 선택이 된다. +1이면 더하고, -1이면 빼고, 0이면 건너뛴다. 하드웨어 관점에서 곱셈기는 덧셈기보다 훨씬 비싸므로, 이론적 이득이 크다.

# 개념 설명용 의사코드 (실제 커널은 비트 패킹과 SIMD를 사용한다)
def ternary_matmul(x, w_ternary, scale):
    # w_ternary 의 원소는 -1, 0, +1
    acc = 0
    for i in range(len(x)):
        t = w_ternary[i]
        if t == 1:
            acc += x[i]          # 곱셈 없음
        elif t == -1:
            acc -= x[i]          # 부호 반전
        # t == 0 이면 아무것도 안 함 (희소성 활용 가능)
    return acc * scale           # 스케일은 그룹 단위로 한 번만 곱한다

다만 이 이득을 실제로 얻으려면 전용 커널이 필요하다. 삼진 가중치를 FP16으로 되돌려 일반 GEMM에 넣으면 메모리 절감만 남고 연산 이득은 사라진다. 실제 구현이 없으면 이론은 이론일 뿐이다.

왜 사후 양자화가 어려운가

INT8이나 INT4는 학습이 끝난 모델에 적용해도 비교적 잘 버틴다. 값의 분포를 보고 스케일을 잡으면 원래 값에 충분히 가깝게 복원되기 때문이다. 삼진은 다르다. 선택지가 세 개뿐이라 정보 손실이 너무 크다.

1
학습 중 양자화 인식
순전파에서 가중치를 삼진으로 눌러 사용하고, 역전파에서는 실수 가중치를 갱신한다(straight-through estimator).
2
모델이 적응
학습 과정에서 네트워크가 삼진 제약에 맞는 표현을 스스로 찾는다. 이것이 사후 변환과의 결정적 차이다.
3
스케일 학습
그룹 단위 스케일 값을 함께 학습해 표현 범위를 보정한다.
4
배포
추론 시에는 삼진 가중치와 스케일만 사용한다.

결론적으로 삼진 모델을 쓰려면 그렇게 학습된 모델이 있어야 한다. 손에 있는 파인튜닝 모델을 삼진으로 바꿔 쓰는 시나리오는 현재로선 현실적이지 않다.

어디서 이기고 어디서 지는가

유리한 조건
  • 메모리가 제한된 엣지·온디바이스 추론
  • 메모리 대역폭이 병목인 배치 1 생성
  • 모델을 여러 개 동시에 상주시켜야 하는 경우
  • 전력 예산이 빡빡한 환경
불리한 조건
  • 최고 품질이 요구되는 작업
  • 기존 모델을 그대로 써야 하는 상황
  • 전용 커널이 없는 하드웨어
  • 대형 배치 처리(연산 병목으로 전환되는 구간)

특히 마지막 항목이 중요하다. 배치가 커지면 병목이 메모리에서 연산으로 옮겨 간다. 서버에서 대량 배치로 처리하는 환경이라면 양자화의 이득이 예상보다 작을 수 있다. 반대로 온디바이스에서 한 번에 한 요청을 처리하는 상황은 양자화가 가장 빛나는 지점이다.

실무에서 양자화를 고를 때

결정 순서
먼저 병목 확인 — 메모리 대역폭인가 연산인가 (배치 크기와 컨텍스트 길이에 따라 다르다)
목표 하드웨어의 메모리 용량 산정 — 가중치 + KV 캐시 + 활성값까지 포함
품질 허용선 정의 — 작업별 골든 세트로 기준 모델과 비교
가용한 구현 확인 — 해당 비트 폭의 최적화 커널이 실제로 존재하는가
KV 캐시 양자화도 함께 검토 — 긴 컨텍스트에서는 여기가 더 클 수 있다
측정 — 토큰 생성 속도와 첫 토큰 지연을 분리해서 본다

두 번째 항목에서 자주 실수한다. 가중치만 계산하고 KV 캐시를 빼먹으면 실제 배포에서 메모리가 모자란다. 긴 컨텍스트를 쓰는 서비스라면 KV 캐시가 가중치보다 커지는 구간도 있다.

현재 위치 — 냉정한 평가

삼진 양자화는 연구 단계에서 실용화로 넘어가는 중간 지점에 있다. 논문과 데모는 인상적이지만, 프로덕션 도입을 결정하려면 세 가지 질문에 답해야 한다. 그렇게 학습된 좋은 모델이 있는가, 내 하드웨어에 최적화 커널이 있는가, 내 작업의 품질 요구를 만족하는가. 셋 중 하나라도 아니면 INT4가 여전히 합리적인 선택이다.

그래도 방향 자체는 주목할 만하다. 온디바이스 추론 수요가 커지면서 "충분히 좋고 아주 작은 모델"의 가치는 계속 올라간다. 몇 년 안에 이 영역의 기본값이 바뀔 가능성은 충분하다.

자주 묻는 질문

1.58비트라는 숫자는 어디서 나온 건가요?

가중치가 -1, 0, +1 세 가지 값을 가지므로 한 값을 표현하는 데 필요한 정보량이 log₂3 ≈ 1.58비트이기 때문입니다. 실제 저장은 비트 패킹으로 이뤄지며, 스케일 값 등 부가 정보가 더해집니다.

기존 모델을 삼진으로 변환해서 쓸 수 있나요?

대개 어렵습니다. 선택지가 세 개뿐이라 정보 손실이 커서, 사후 변환 시 품질이 크게 떨어집니다. 학습 과정에서 양자화를 인식하도록 훈련된 모델이어야 실용적인 품질이 나옵니다.

양자화하면 왜 빨라지나요?

대형 언어 모델의 생성 추론은 가중치를 읽어 오는 메모리 대역폭에서 병목이 생기는 경우가 많습니다. 가중치가 작아지면 읽는 양이 줄어 속도가 올라갑니다. 삼진의 경우 곱셈을 덧셈으로 대체하는 추가 이득도 있지만 전용 커널이 있어야 실현됩니다.

INT4와 비교하면 어느 쪽이 나은가요?

현재 실용성 측면에서는 INT4가 안정적입니다. 사후 양자화가 가능하고 구현과 도구가 성숙해 있습니다. 삼진은 메모리 이득이 크지만 전용 학습과 전용 커널이 필요해 적용 조건이 까다롭습니다.

배치 처리에서도 효과가 있나요?

배치가 커지면 병목이 메모리에서 연산으로 이동하므로 이득이 줄어듭니다. 양자화 효과가 가장 큰 구간은 배치 1에 가까운 온디바이스·저지연 생성 환경입니다.

KV 캐시도 양자화해야 하나요?

긴 컨텍스트를 다루는 서비스라면 반드시 함께 검토해야 합니다. 컨텍스트가 길어지면 KV 캐시가 가중치보다 많은 메모리를 차지할 수 있고, 이 경우 가중치만 줄여서는 배포 제약을 해결하지 못합니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록