Hacker News

Breaking the 1.58-bit Barrier for Ternary LLMs

Ternary LLM의 '1.58비트 장벽' 깨기 — 0의 분포를 활용한 BITCOS 레이아웃

Ternary LLM은 모든 가중치를 {-1, 0, +1}로 저장하며, 기존 five-trit packing은 가중치당 1.625비트를 차지했습니다. 연구팀은 29개 모델에서 0이 최대 51.5%를 차지함을 확인하고, 0 밀도 z에 따라 가중치당 2−z비트만 쓰는 BITCOS 레이아웃을 제안했습니다. 가장 희소한 모델에서 1.485비트를 달성했고, 디코드 처리량이 CPU에서 최대 1.18배, GPU에서 최대 1.27배 향상됐습니다.

본문

Ternary Large Language Model은 모든 가중치를 {-1, 0, +1} 세 심볼 중 하나로 저장하는 모델입니다. 정보 이론적으로 log₂3 ≈ 1.585비트가 가중치 하나의 비용 기준이 되지만, 실제 배포 포맷은 이보다 비효율적이었습니다. 이 논문은 29개 실제 ternary 모델의 심볼 분포를 직접 측정해 0의 비율이 최대 51.5%에 달한다는 사실을 확인하고, 이 편향된 분포를 활용해 1.585비트의 '장벽' 아래로 내려가는 저장 레이아웃 BITCOS를 제안합니다.

1.58비트 장벽과 five-trit packing의 한계

현재 널리 쓰이는 배포 포맷은 바이트 하나에 ternary 가중치 다섯 개를 묶는 five-trit packing입니다. 실무에서 사용하는 2의 거듭제곱 그룹 크기 때문에 올림이 발생해 실효 저장 비트폭은 가중치당 1.625비트가 됩니다. 이 비트폭은 세 심볼 {-1, 0, +1}이 등장할 확률이 동일하다고 가정한 결과입니다. 연구팀이 29개 ternary LLM을 측정한 결과 이 가정은 깨져 있었고, 0이 전체 가중치의 최대 51.5%를 차지했습니다. 즉 엔트로피 관점에서 추가 압축의 여지가 실제로 존재했습니다.

BITCOS: 분포 적응형 레이아웃

BITCOS는 각 가중치가 0인지 아닌지를 표시하는 dense presence bitmap과, 0이 아닌 값들의 부호만 모아 둔 compacted sign vector로 구성된 단순한 레이아웃입니다. 모델 가중치의 0 밀도가 z일 때 가중치 요소당 2−z비트를 사용하므로, 0이 절반을 넘는 모델일수록 저장 비용이 1.5비트 아래로 내려갑니다. 테스트한 29개 모델 중 26개에서 five-trit packing보다 적은 비트를 사용했고, 가장 희소한 모델에서는 가중치당 1.485비트를 기록했습니다.

언패킹 최적화와 실측 성능

압축률만으로는 부족하고 추론 시 빠르게 풀 수 있어야 합니다. BITCOS는 현대 프로세서와 GPU에서 효율적으로 언패킹되도록 설계됐으며, 논문은 AVX-512, AVX2, Intel Xe2 GPU용 최적화 언패킹 시퀀스를 제시합니다. 실제 ternary 모델이 보이는 0 밀도에서 프로덕션 수준의 최신 ternary 행렬-벡터 곱셈 커널과 비교했을 때 실현 이득은 최대 1.28배였습니다. 또한 클라이언트·서버 CPU와 내장·외장 Xe2 GPU 등 5개 플랫폼에서 종단간 LLM 추론을 측정한 결과, 디코드 처리량이 CPU에서 최대 1.18배, GPU에서 최대 1.27배 향상됐습니다.

Hacker News 반응

  • @NooneAtAll3 — "1.58비트"라는 표현이 "1 trit"보다 더 타당해 보이는 유일한 경우입니다. 정보 엔트로피를 실제로 들여다보면 더 잘 압축할 수 있다는 걸 누가 알았겠어요!
  • @plqbfbv — 매우 흥미롭습니다. 최신 양자화 모델 중 하나를 16GB VRAM에 넣으려고 바로 이 문제를 살보던 참이었습니다.
  • @om8 — Ternary 양자화는 아무 의미가 없습니다. 이 구간의 PTQ에서는 벡터 양자화와 trellis 기반 방법이 더 낫습니다.
  • @om8 — sub-2bit LLM이 필요하면 이미 고정밀도로 학습된 모델을 가져다가 YAQA/QTIP 같은 것에 파인튜닝을 곁들이거나, PV-tuning + AQLM/HIGGS로 압축하세요.

원문: arXiv / 번역·요약: Trawling