익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
QuaRot
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
'''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). [https://arxiv.org/abs/2404.00456 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). [https://arxiv.org/abs/2405.16406 arXiv:2405.16406] ==각주== <references />
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록