ThinkBit은 2비트 양자화에서 추론 능력 보존을 추론 평가로 검증한다
ThinkBit: Search Codewords, Recalibrate Scales, Select by Reasoning
무엇인가
추론 언어 모델은 답 하나에 수천 토큰의 사고 사슬을 생성한다. 토큰을 하나 만들 때마다 모델의 모든 가중치를 메모리에서 읽어야 하므로 생성 속도는 연산량보다 메모리 대역폭에 묶인다. 가중치를 bf16 대신 2비트로 저장하면 이론상 추론 비용을 8분의 1로 줄일 수 있지만, 기존 2비트 기법은 주로 퍼플렉서티와 객관식 정확도로 평가돼 어려운 문제를 끝까지 추론하는 능력이 남는지는 잘 보여주지 못한다. 논문은 또한 ‘2비트’라는 표기가 실제 모델 크기를 숨긴다고 지적한다. 임베딩과 출력 헤드를 높은 정밀도로 남기는 커뮤니티 양자화는 파라미터당 2비트를 크게 넘을 수 있어, ThinkBit은 모든 저장 텐서를 포함한 전체 바이트로 모델을 비교한다.
어떻게 동작하나
ThinkBit의 저장 형식은 엄격히 스칼라다. 각 가중치는 정수 코드워드 c와 128개 가중치마다 하나씩 공유되는 bf16 스케일 s의 곱으로 저장된다. 코드워드 격자는 층마다 ternary {-1,0,1}, 2비트 {-2,-1,0,1}, 3비트 {-4,…,3} 중 하나이고, 역양자화는 곱셈 한 번이면 된다. 벡터 코드북, 회전, 제로포인트를 쓰지 않는다. 프레임워크는 다섯 단계다. 민감도로 층별 비트를 배분하고, 블록 단위로 코드워드를 탐색하고, 코드워드를 고정한 채 스케일을 재보정하고, QAT로 코드워드를 다시 배정하고, 마지막으로 추론 테스트로 체크포인트를 고른다.
무엇과 다른가
1단계 Allocate는 KronQ/K-FAC식 헤시안 근사를 써서 층의 민감도 S_l을 입력 활성의 제곱 노름과 출력 그래디언트의 제곱 노름의 곱으로 추정한다. 이 민감도와 격자별 반올림 잡음을 곱해 손실 증가를 근사하고, 전체 디코더 비트 예산 아래에서 ternary·2비트·3비트를 고르는 다중 선택 배낭 문제를 라그랑주 완화로 푼다. Qwen3-1.7B를 2.0비트 예산에 맞추면 가중치의 75.3%가 ternary, 6.0%가 2비트, 18.7%가 3비트가 되고, 쿼리와 키 투영은 2비트 이상으로 유지된다. 2단계 Search는 2·3비트 층을 GPTQ로 초기화한 뒤 블록 출력 오차를 목표로 코드워드와 스케일을 학습한다. 3비트와 ternary에는 Gumbel-softmax 완화를, 2비트에는 ReinMax 추정기를 쓴다. 3단계 Recalibrate는 코드워드를 얼린 채 그룹 스케일과 RMSNorm 이득만 bf16 교사의 다음 토큰 분포에 대한 순방향 KL로 조정한다. 이 파라미터는 모델의 1% 미만이다. 4단계 QAT는 FP32 잠재값을 두고 straight-through estimator로 반올림을 통과시키며 코드워드를 움직인다. 5단계 Selection은 MATH 훈련 문제 313개에서 네 개 샘플씩 생성해 짝지은 부호 뒤집기 검정으로 재보정 체크포인트와 QAT 체크포인트 중 나은 쪽을 고른다.
어떻게 쓰나
논문의 핵심 발견은 평가 지표다. 코드워드 탐색, 스케일 재보정, 둘 다, 또는 혼합 비트 배치를 제거해도 7개 과제 QA 평균은 53.7~54.8, MMLU는 48.7~49.9, WikiText-2는 16.53~16.74로 거의 같았다. 전체 프레임워크는 각각 54.6, 49.9, 16.54였다. 그러나 샘플링 MATH-500은 전체 프레임워크의 43.0에서 28.4~37.0으로 떨어졌다. QAT는 7개 과제 평균을 51.5에서 54.6으로 올렸지만 샘플링 MATH-500은 47.5에서 43.0으로 낮췄다. 저자들은 퍼플렉서티와 객관식 정확도가 2비트 설정 간의 추론 차이를 순위 매기지 못한다고 주장한다.
전제와 한계
Qwen3-1.7B에서 재보정 체크포인트 Rec-h2는 0.52GB, 원래 파라미터당 2.42비트로 같은 데이터로 학습한 EfficientQAT의 MATH-500 30.0점에 대해 46.7점을 냈다. 추론 흔적으로 QAT한 QAT+R-h2는 같은 0.52GB에서 샘플링 MATH-500 73.0점, 그리디 68.6점을 기록해 Q2_K의 41.9점·27.8점과 Ternary Bonsai의 46.4점·42.8점을 앞섰다. 저자들은 이 체크포인트가 같은 모델의 공개된 모든 2비트 GGUF보다 작으면서 MATH-500에서 더 정확하다고 말한다. 8B에서는 86.6점이 71.9점·66.4점보다 높고 AIME@16은 28.8점 대 10.3점·7.1점이었으며, 14B에서는 92.7점이 85.4점·84.9점보다 높고 AIME@16은 46.5점 대 28.4점·24.7점이었다. 14B 3.74GB 모델은 초록 기준 MATH-500 94.8점으로 29.5GB bf16의 97.5점에 근접했고, 본문 5절에서는 Rec-h2가 92.7점으로 QAT-h2의 90.5점을 앞섰다. H100 한 장의 vLLM에서 8B와 14B 체크포인트는 가중치 메모리를 5.68GiB와 9.31GiB만 쓰고 배치 1에서 각각 212·150토큰/초를 디코드해, bf16의 15.27·27.52GiB와 146·86토큰/초와 비교된다.
개발자 입장에서 ThinkBit은 2비트 추론 모델을 배포할 때 퍼플렉서티나 짧은 객관식 점수만으로 체크포인트를 고르면 안 된다는 실무적 경고를 준다. 특히 긴 사고 사슬을 생성하는 모델은 MATH-500, AIME 같은 샘플링 추론 평가와 완주율을 함께 봐야 한다. 또한 모델 크기는 ‘2비트’라는 이름이 아니라 임베딩·출력 헤드까지 포함한 전체 바이트로 확인해야 한다. 저장 형식은 역양자화가 곱셈 한 번이라 단순하지만, 현재 체크포인트는 코드워드를 4비트 컨테이너에 담아 배포하므로 2·3비트를 직접 읽는 커널이 없으면 파일 크기만큼 메모리와 속도가 비례해 좋아지지는 않는다. 4비트 이상 모델이 여전히 더 강하고, 일부 2비트 추론 흔적은 끝나지 않는다는 점도 배포 전에 확인해야 한다.
저자들이 밝힌 한계는 분명하다. 실험은 주로 Qwen3 계열과 14B 이하에 집중됐고, 더 많은 모델 계열, 전문가 혼합 모델, 14B 초과 모델에서 단계별 연구를 반복해야 한다. 2·3비트 코드워드를 직접 읽는 커널이 없어 4비트 컨테이너로 저장한 현재 결과는 추론 시 메모리·속도 이점을 충분히 보여주지 못한다. 2비트 추론 흔적 중 일부는 완주하지 못하며, 4비트 이상 파일이 더 강하다. 체크포인트 선택기는 수학 문제만 다루므로 코드와 도구 사용으로 확장해야 한다. 재보정과 QAT는 805M 토큰을 썼고 마지막 단계에서도 홀드아웃 KL이 아직 감소 중이었으며, 순방향 KL만 사용했다. 비트 배분에서 2비트는 단독으로 선택되지 않고 쿼리·키를 2비트 이상으로 두는 규칙이 쓰였지만, 부록에서는 이 모델에서 그 규칙이 필수는 아니라고 밝힌다.