DuQuant: 두 판 사이의 차이
IT 위키
(새 문서: '''DuQuant (Distributing Outliers via Dual Transformation)'''은 대형 언어 모델(LLM: Large Language Model)의 활성화 및 가중치 양자화 과정에서 특히 문제되는 아웃라이어(outlier) 값을 효과적으로 분산시켜 저비트 양자화 시 성능 손실을 최소화하는 회전(rotation) 및 순열(permutation) 기반 포스트 트레이닝 양자화(Post-Training Quantization, PTQ) 기법이다. ==개요== DuQuant는 활성화 내에 존재하는...) |
(차이 없음)
|
2025년 10월 23일 (목) 07:56 기준 최신판
DuQuant (Distributing Outliers via Dual Transformation)은 대형 언어 모델(LLM: Large Language Model)의 활성화 및 가중치 양자화 과정에서 특히 문제되는 아웃라이어(outlier) 값을 효과적으로 분산시켜 저비트 양자화 시 성능 손실을 최소화하는 회전(rotation) 및 순열(permutation) 기반 포스트 트레이닝 양자화(Post-Training Quantization, PTQ) 기법이다.
개요[편집 | 원본 편집]
DuQuant는 활성화 내에 존재하는 두 가지 유형의 아웃라이어인 Normal Outliers(모든 토큰에 걸쳐 비교적 큰 값이 지속적으로 나타나는 채널)와 Massive Outliers(특정 토큰에서 매우 큰 값이 나타나는 경우)를 모두 처리하도록 설계되었다. 이 기법은 먼저 회전 행렬(rotation matrix)을 통해 아웃라이어 차원을 주변 채널로 분산시키고, 이어서 지그재그(zigzag) 형태의 순열(permutation) 변환을 적용하여 아웃라이어가 블록 단위로 고르게 배분되도록 한다. 마지막으로 추가적인 회전을 수행하여 활성화 및 가중치 분포를 평탄화한 뒤, 저비트 양자화를 수행한다.
동기 및 필요성[편집 | 원본 편집]
- 대형 언어 모델을 4비트(또는 그 이하)로 양자화할 때, 활성화 행렬 내의 거대한 아웃라이어가 스케일(scale) 산정과 양자화 오류의 주요 원인이 된다.
- 기존의 양자화 기법들은 Normal Outliers만을 고려하거나 단순 스케일링 및 클리핑을 적용하는 수준에 머물러, Massive Outliers에 대한 대응이 충분하지 않았다.
- DuQuant는 아웃라이어를 단순히 제거하지 않고 회전 및 순열 변환을 통해 채널 전반에 분산시킴으로써 저비트 양자화의 안정성을 향상시킨다.
작동 원리[편집 | 원본 편집]
DuQuant의 핵심 절차는 다음과 같다.
회전 변환(Rotation Transformation)[편집 | 원본 편집]
- 입력 활성화(activation)에서 아웃라이어가 집중된 차원을 탐색한다.
- 해당 차원을 포함하는 블록 단위(block-diagonal) 회전 행렬을 구성한다.
- 이 행렬을 적용하여 아웃라이어 값을 주변 채널로 분산시킨다.
- 동일한 회전을 가중치(weight) 행렬에도 적용하여 분포를 평탄화한다.
순열 변환(Permutation Transformation)[편집 | 원본 편집]
- 회전 후에도 블록 간 아웃라이어 편차(block-wise variance)가 남을 수 있으므로, 지그재그 형태의 순열(permutation) 행렬을 적용해 채널 순서를 재배열한다.
- 이를 통해 아웃라이어가 블록 전반에 고르게 분포되어, 이후 블록 단위 양자화 시 편차를 최소화한다.
후속 회전 및 양자화[편집 | 원본 편집]
- 순열 이후 두 번째 회전을 적용해 분포를 더욱 고르게 만든다.
- 마지막으로 가중치와 활성화를 4비트 수준(W4A4)으로 양자화한다.
- 이 과정을 통해 DuQuant는 기존 기법 대비 높은 정확도와 효율성을 달성할 수 있다.
장점 및 제약사항[편집 | 원본 편집]
장점[편집 | 원본 편집]
- 아웃라이어 분산을 통해 저비트 양자화(특히 W4A4)에서도 성능 저하가 작다.
- 회전과 순열의 결합으로 가중치 및 활성화 양자화를 동시에 안정화할 수 있다.
- 추가적인 학습 없이 포스트 트레이닝 단계에서 적용 가능하다.
- 실제 적용 시 메모리 절감과 추론 속도 향상 효과가 보고되었다.
제약사항 및 고려사항[편집 | 원본 편집]
- 회전 및 순열 변환으로 인해 약간의 연산 오버헤드가 발생한다.
- 하드웨어가 회전 행렬 연산을 효율적으로 지원하지 않으면 속도 이점이 줄어든다.
- 블록 크기(block size), 회전 탐색 횟수(max rotation step) 등 하이퍼파라미터에 따라 결과가 달라질 수 있다.
- 현재는 주로 Transformer 계열 모델에서 검증되었으며, 다른 아키텍처 적용 연구는 진행 중이다.
활용 및 응용[편집 | 원본 편집]
- 단일 GPU 환경이나 엣지(edge) 디바이스에서 대형 언어 모델을 효율적으로 구동하는 데 사용된다.
- 회전 및 순열을 자동으로 최적화하거나 학습 가능한 형태로 확장하려는 후속 연구가 진행 중이다.
- 프루닝(pruning), 지식 증류(distillation) 등 다른 모델 경량화 기술과의 결합도 시도되고 있다.
용어 정리[편집 | 원본 편집]
- 아웃라이어(outlier): 대부분의 값 분포에서 벗어나 극단적인 값을 가지는 항목.
- Normal Outlier: 모든 토큰에서 특정 채널이 지속적으로 높은 값을 갖는 경우.
- Massive Outlier: 특정 토큰에서 일시적으로 매우 큰 값을 갖는 경우.
- 회전 행렬(Rotation matrix): 채널 간 직교 변환을 수행하여 분포를 재배치하는 행렬.
- 순열 행렬(Permutation matrix): 채널의 순서를 재배열하여 아웃라이어 분포를 고르게 만드는 행렬.
- W4A4: 가중치(weight)와 활성화(activation)를 모두 4비트로 양자화한 설정.
같이 보기[편집 | 원본 편집]
참고 문헌[편집 | 원본 편집]
- Haokun Lin, Haobo Xu, Yichen Wu, Jingzhi Cui, Yingtao Zhang, Linzhan Mou, Linqi Song, Zhenan Sun, Ying Wei. 《DuQuant: Distributing Outliers via Dual Transformation Makes Stronger Quantized LLMs.》 (2024). arXiv:2406.01721
- DuQuant 공식 코드 저장소 (GitHub). https://github.com/Hsu1023/DuQuant