비트플레인 분해 기반 가변 그리드 양자화로 LLM 2비트 구현
초록
본 논문은 고정된 양자화 그리드가 초저비트(2‑3bit) LLM 양자화에서 성능 저하를 일으키는 근본 원인임을 규명하고, 비트플레인과 스칼라 계수를 결합한 가변 그리드 방식을 제안한다. Hessian 기반 2차 정보와 단계적 오류 보정을 통해 그리드를 반복적으로 최적화함으로써, 72B 규모의 Qwen2.5 모델을 RTX 3090 한 대에서 2비트(83.85% GSM8K)로 실행할 수 있게 한다.
상세 분석
BPDQ는 기존 PTQ가 “shape‑invariant”라는 고정 형태의 양자화 그리드(예: UINT2의 균등 간격)를 모든 파라미터 그룹에 동일하게 적용함으로써, 출력‑정렬 최적화 목표(∥WX‑cWX∥)와 가능한 해 집합 사이에 불일치를 초래한다는 점을 지적한다. 이 제한을 해소하기 위해 저자는 비트플레인(bit‑plane) 분해와 그룹‑별 스칼라 계수(C₀, C₁…C_k)를 결합한 가변 그리드를 설계한다. 비트플레인 B_i∈{0,1}는 입력 차원을 따라 반복(REP)되어 각 그룹에 고유한 양자화 레벨을 만든다. 스칼라 계수는 각 그룹의 Hessian‑induced metric H=XXᵀ 하에서 닫힌 형태의 가중 최소제곱(Weighted LS) 문제를 풀어 얻으며, 이는 Hessian 기하학에서 최적의 투영을 의미한다.
초기화 단계에서는 8‑bit 정수 Z를 비트플레인으로 분해하고, 가장 높은 k개의 비트를 선택해 2‑bit(또는 k‑bit) 그리드의 기본 형태를 만든다. 이후 반복 과정에서 두 가지 핵심 연산이 교대로 수행된다. ① 비트플레인 업데이트: 현재 스칼라 계수를 고정하고, 각 열에 대해 2^k개의 비트 조합을 완전 탐색해 Hessian‑weighted 재구성 오차를 최소화한다. ② 스칼라 계수 재피팅: 업데이트된 비트플레인을 고정하고, 행별로 Weighted LS를 다시 풀어 새로운 C_i를 얻는다.
이때 중요한 것이 “delta correction”이다. 비트플레인 업데이트 후 스칼라 계수를 재피팅하면 양자화 가중치 블록이 변동하고, 기존에 누적된 오류 전파 상태(E)와 불일치한다. 저자는 로컬 삼각 행렬 U_loc을 이용해 ΔE·U_loc = cW_old − cW_new 형태의 보정식을 도출하고, E에 ΔE를 더해 오류 전파를 일관되게 유지한다. 이 절차는 Appendix B에서 Hessian‑induced 최적성에 대한 형식적 증명을 제공한다.
실험에서는 Qwen‑3/2.5 시리즈(0.6B‑72B)와 Mistral‑3(3B, 8B)를 대상으로 2‑bit, 3‑bit, 4‑bit 양자화를 수행했다. 특히 72B 모델을 2‑bit으로 양자화했을 때, 기존 GPTQ와 AWQ가 GSM8K에서 41% 이하로 급락하는 반면, BPDQ는 83.85%를 달성했으며, FP16 기준 90.83%와 근접한 성능을 보였다. 메모리 사용량은 22.69 GB로 RTX 3090 한 장에 맞춰졌으며, 비트플레인 LUT 커널을 활용해 실시간 디코딩 지연도 최소화했다. 또한 활성값 통계 분석을 통해 BPDQ가 중요한 outlier를 자연스럽게 보존함을 확인했다.
이론적 기여는 두 가지이다. 첫째, 가변 그리드가 기존 고정 그리드에 비해 가능한 양자화 값 집합을 엄격히 확장함을 증명한다(Appendix A). 둘째, 제안된 반복 최적화와 Δ 보정이 Hessian‑induced 최적화 목표와 일관됨을 보이며, 이는 기존 GPTQ가 “nearest‑plane” 알고리즘에 머무르는 한계와 대비된다. 결과적으로 BPDQ는 초저비트 양자화에서도 출력‑정렬 손실을 최소화하면서 하드웨어 친화적인 구현을 가능하게 한다.
댓글 및 학술 토론
Loading comments...
의견 남기기