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