QuaRot

IT 위키

QuaRot (Quantization via Rotations)은 대형 언어 모델(LLM: Large Language Model)의 모든 가중치(weights), 활성화(activations), KV 캐시(KV cache)를 4비트 수준으로 양자화하면서도 성능 저하를 최소화하도록 설계된 회전 기반 포스트 트레이닝 양자화(Post-Training Quantization, PTQ) 기법이다.

배경 및 필요성[편집 | 원본 편집]

  • 전통적인 양자화 기법들은 가중치는 낮은 비트로 줄일 수 있어도, 모델의 활성화 및 KV 캐시 부분에는 높은 비트를 유지하거나 일부 채널(channel)을 원본 정밀도로 남겨야만 퍼포먼스가 유지되는 경우가 많았다.
  • 또한 대형 언어 모델에서는 이상치가 활성화 분포나 가중치 분포에 존재하여, 단순한 양자화 시 이들이 전체 분포 스케일을 지배해 양자화 오류가 크게 증가하는 문제가 있다.
  • QuaRot은 이러한 아웃라이어 문제를 모델 출력에는 영향을 주지 않으면서 회전(rotation)을 통해 제거하거나 완화함으로써, 낮은 비트 양자화에서도 성능 저하를 최소화하는 것을 목표로 한다.

작동 원리[편집 | 원본 편집]

다음은 QuaRot의 핵심 아이디어와 구성요소이다.

회전 삽입(Rotation Insertion)[편집 | 원본 편집]

  • 모델 내부의 주요 텐서(예: 레지듀얼(residual) 히든 상태, 피드포워드(feed-forward) 활성화, 어텐션의 키/값 프로젝션, KV 캐시 등)에 대해, 양자화 이전에 회전 행렬(rotation matrix)을 곱하고, 양자화 후에 그 역회전(inverse rotation)을 곱하는 구조를 삽입한다.
  • 회전 행렬로는 보통 직교 행렬(orthogonal matrix) 중 하나인 하다마드 행렬(Hadamard matrix)이 사용된다. 이는 ±1 값을 갖고 정규화된 형태로 빠른 하드웨어 구현이 가능하다는 장점이 있다.
  • 예를 들어 벡터 [1, 10]에 회전 각도 45°를 적용하면 [약 7.78, 약 6.36]과 같이 값이 보다 고르게 분포되어 아웃라이어 효과가 줄어드는 것과 유사하다.

왜 회전이 양자화를 돕나?[편집 | 원본 편집]

  • 회전을 통해 텐서의 값 분포가 보다 균일해지면, 양자화 단계에서 스케일(quantization scale) 산정 시 극단값에 의한 왜곡이 줄어든다.
  • 회전 후에는 아웃라이어가 스케일을 지배해 나머지 값들이 압축되는 현상이 완화되어, 전체 값에 대해 보다 효율적인 저비트 정수 변환이 가능하다.
  • 이러한 방식으로 가중치·활성화·KV 캐시 전부에 4비트 적용이 가능해지는 것이 QuaRot의 주요한 혁신이다. (기존에는 활성화나 캐시에 고정 채널을 고비트로 남겨야 했다)

실험 및 성능[편집 | 원본 편집]

  • 논문에서는 LLaMA 2-70B 모델을 4비트로 양자화한 결과, 위키텍스트-2(WikiText-2) 기준 퍼플렉시티(perplexity)가 약 0.47 손실 이내이며 제로샷(zero-shot) 성능의 약 99%를 유지했다는 결과가 보고되었다.
  • 또한 6비트, 8비트 양자화 시 보정(calibration) 데이터 없이 round-to-nearest 양자화만으로 손실 없는(lossless) 동작이 가능하다고 보고되었다.

장점 및 제약사항[편집 | 원본 편집]

장점[편집 | 원본 편집]

  • 모델 전체(가중치 + 활성화 + 캐시)를 낮은 비트(4비트)로 통일할 수 있어, 메모리 및 계산량 측면에서 매우 큰 이점이 있다.
  • 아웃라이어 제거 효과로 인해, 동일 모델에서 단순 양자화 대비 성능 저하가 적다는 것이 실험적으로 입증되었다.
  • 회전 처리를 통해 양자화 오류를 구조적으로 줄일 수 있어, 단순 스케일 기반 양자화보다 일반화 가능성이 높다.

제약사항 및 고려사항[편집 | 원본 편집]

  • 회전 행렬 적용 및 역회전 처리에 따른 연산 오버헤드(overhead)가 존재할 수 있다. 특히 온라인(추론 시) 활성화에 대한 회전 처리(online_rotate 옵션)를 사용할 경우 추론 지연(latency)이 증가할 수 있다.
  • 하드웨어 및 프레임워크 차원에서 회전 행렬 변환(Hadamard 변환 등)을 효율적으로 지원해야 최대의 이점을 볼 수 있다.
  • 회전 차원(r_matrix_dim)의 제약이나, 하다마드 행렬이 적용 가능한 차원(n = m × 2^k) 등의 조건이 존재한다.
  • 현재까지는 논문 및 초기 구현 단계이므로, 다양한 아키텍처·양자화 비트수·배포 환경에서의 추가 검증이 필요하다.

활용 및 현재 동향[편집 | 원본 편집]

  • Quark ONNX Quantizer 등 일부 툴킷에서 QuaRot 기법을 옵션으로 제공하며, 예를 들어 ‘pre-quantization_optimization = quarot’ 같은 설정이 존재한다.
  • 후속 연구로서 회전 기반 양자화 방법들이 발전하고 있다. 예컨대 SpinQuant: LLM quantization with learned rotations는 QuaRot에서 사용된 고정 회전이 아닌 학습 가능한 회전 행렬(learnable rotation matrices)을 제안하여 성능을 더욱 향상시켰다고 보고되었다.

용어 정리[편집 | 원본 편집]

  • 아웃라이어(outlier): 대부분의 값 분포에서 벗어나 극단적으로 큰 절댓값을 갖는 항목으로, 양자화 스케일 산정 시 오류를 유발할 수 있다.
  • 회전 행렬(Rotation matrix): 텐서 공간을 직교 변환(orthogonal transformation)하여 값 분포를 재배치하는 행렬로, 입력·출력 기능에는 영향을 주지 않는다.
  • 하다마드 행렬(Hadamard matrix): ±1 값을 갖는 정사각 직교 행렬의 일종으로, 회전 행렬로 자주 사용된다.
  • 온라인 회전(online_rotate): 추론 시 활성화 값에도 회전 처리를 적용하는 옵션으로, 오프라인 변환만 하는 것보다 연산량이 많다.

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Saleh Ashkboos, Amirkeivan Mohtashami, Maximilian L. Croci, Bo Li, Martin Jaggi, Dan Alistarh, Torsten Hoefler, James Hensman. 《QuaRot: Outlier-Free 4-Bit Inference in Rotated LLMs.》 (2024). arXiv:2404.00456
  • Zechun Liu, Changsheng Zhao, Igor Fedorov, Bilge Soran, Dhruv Choudhary, Raghuraman Krishnamoorthi, Vikas Chandra, Yuandong Tian, Tijmen Blankevoort. 《SpinQuant: LLM Quantization with Learned Rotations.》 (2024). arXiv:2405.16406

각주[편집 | 원본 편집]