양자화란 무엇인가요?

미국 애리조나주 앤텔로프 캐년

작성자

Bryan Clark

Senior Technology Advocate

양자화는 일반적으로 고정밀 형식에서 저정밀도 형식으로 디지털 신호의 정밀도를 줄이는 프로세스입니다. 이 기술은 신호 처리, 데이터 압축 및 기계 학습을 포함한 다양한 분야에서 널리 사용됩니다.

양자화는 일반적으로 32비트 부동 소수점(FP32) 또는 16비트 부동 소수점(FP16)과 같은 고정밀 데이터의 가중치와 활성화 값을 8비트 정수(INT8)와 같은 정밀도가 낮은 데이터로 변환하기 위해 대규모 언어 모델(LLM)에서 사용되는 기술입니다. 고정밀 데이터(FP32 및 FP16 참조)는 이러한 데이터 유형을 사용하는 모델의 정확도가 일반적으로 더 높기 때문에 붙여진 이름입니다. 이는 데이터를 INT8과 같은 형식으로 압축할 때 더 작은 크기로 압축되기 때문입니다. 이로 인해 양자화 오류라고도 하는 정확도가 효과적으로 떨어집니다. 활성화 값은 신경망의 인공 뉴런에 할당된 숫자(0과 1 사이)입니다. 이 할당된 번호를 활성화 값이라고 합니다. 일반적으로 8비트 양자화가 목표이지만 4비트 정수(INT4) 이하의 양자화된 데이터가 성공적으로 달성되었습니다. 기본적으로, 신경망에서 압축 기술을 사용하여 많은 수의 비트를 적은 수의 비트로 변환하는 양자화 프로세스입니다. 1

FP32를 사용하여 LLM을 운영하는 데 필요한 계산 요구 사항은 엄청날 수 있습니다. 컴퓨팅 요구 사항이 증가함에 따라 추론(LLM이 사용자의 쿼리에 대한 응답을 생성하는 프로세스)도 느려질 수 있습니다. 양자화는 컴퓨팅 부담을 줄이는 동시에 LLM의 추론 속도를 높일 수 있는 훌륭한 최적화 도구가 될 수 있습니다. 양자화 프로세스는 모델의 성능이 거의 동일하게 유지되는 동안 가중치를 더 낮은 정밀도의 데이터 유형으로 변환한다는 전제를 중심으로 진행됩니다. 가중치를 더 낮은 정밀도 데이터 유형으로 변환하면 모델이 실행될 때마다 처리해야 하는 비트 수가 줄어들기 때문에 계산 비용이 절감됩니다. 처리되는 비트가 적으면 LLM에 대한 각 쿼리가 더 빠르게 처리됩니다.

트랙에서 굴러가는 공의 3D 디자인

최신 AI 뉴스+인사이트


주간 Think 뉴스레터에서 전문가들이 선별한 AI, 클라우드 등에 관한 인사이트와 소식을 살펴보세요. 

양자화를 구현하는 이유는 무엇인가요?

더 빠른 추론

양자화를 활용하여 부동 소수점 데이터 유형을 정수로 변환하면 계산을 보다 빠르게 완료할 수 있습니다. 이렇게 하면 모델의 전반적인 지연 시간이 줄어들고 정확도 대비 추론 속도가 향상됩니다. 이러한 절충은 모든 실시간 애플리케이션에 매우 중요하며, 특히 모바일 CPU에서 실행되는 경우 더욱 그렇습니다. 2

효율성

양자화는 더 높은 계산 요구 사항을 처리할 수 없는 장치에서 머신 러닝 모델을 실행하려고 할 때 매우 중요합니다. 양자화가 부동 소수점을 정수 표현으로 변환하면 머신 러닝 모델의 계산 요구 사항이 줄어듭니다. 이를 통해 이러한 양자화된 모델을 랩톱, 태블릿 및 스마트폰의 실제 애플리케이션 내에서 활용할 수 있습니다. 2

전력 소비 감소

일반적으로 양자화된 모델은 계산 요구 사항이 낮습니다. 따라서 정량화는 노트북, 태블릿 및 휴대폰에서 이러한 모델을 실행하는 데 핵심적인 에너지 효율을 높여줍니다. 3

호환성

양자화를 활용하면 정수 연산을 사용하여 현재 머신 러닝 모델을 실행할 수 있습니다. 따라서 양자화된 모델은 부동 소수점 연산을 지원하지 않는 이전 플랫폼과 호환됩니다. 또한 이러한 모델에 훨씬 더 쉽게 액세스할 수 있으므로 소비자 GPU에서 실행할 수 있습니다. 4

양자화 작동 방식

-3.4 1038에서 3.4 1038 사이의 FP32 가능한 값 집합 내에는 약 40억 개의 값이 있습니다. 반면 INT8에서는 -128에서 128 사이의 가능한 값 집합 내에서 256개의 값만 볼 수 있습니다. 후자는 훨씬 더 작은 값 집합이기 때문에 행렬 곱셈이 훨씬 더 빠르게 발생할 수 있습니다. 딥 러닝 기반 모델의 막대한 계산 비용으로 인해 정확하고 효율적인 알고리즘이 필수적입니다.

양자화 프로세스는 먼저 32비트 부동 소수점 값을 INT8 필드에 투영하는 최적의 경로를 결정함으로써 이루어집니다. 이렇게 하기 위해, 모델을 양자화하는 여러 알고리즘이 있습니다. 절대 최대 양자화(Absolute Max Quantization)와 아핀 양자화(Affine Quantization)라는 두 가지 양자화 방법을 살펴보겠습니다.

절대 최대 양자화

절대 최대 양자화에서 부동 소수점 숫자와 해당 INT8 숫자 간의 매핑을 계산하려면 먼저 텐서(tensor)의 절대 최대값으로 나눈 다음 데이터 유형의 전 범위를 곱해야 합니다.

예를 들어, 다음 벡터 [1.6, -0.7, -3.4,1.7, -2.9, 0.5, 2.3, 6.2]. 이 경우 절대 최대값인 6.2를 추출합니다. INT8의 범위는 [-127, 127]이므로 127을 6.2로 나누고 스케일링 계수로 20.5를 얻습니다. 따라서 원래 벡터에 곱하면 양자화된 데이터 벡터 [33, -14, -70, 35, -59, 10, 47, 127]이 제공됩니다. 이러한 숫자는 반올림되므로 약간의 정밀도 손실이 발생할 수 있습니다. 5

아핀 양자화

아핀 양자화 알고리즘을 구현하기 위해 32비트 부동 소수점 값의 범위를 [a, b]로 정의하겠습니다. 아핀 양자화 알고리즘은 다음과 같습니다.

𝑥𝑞 = round ((1/𝑆)𝑥+𝑍)

- 𝑥𝑞는 32비트 부동 소수점 값 x에 해당하는 양자화된 INT8 값입니다.

- S는 FP32 스케일링 계수이며 양의 32비트 부동 소수점입니다.

- Z는 영점입니다. 이는 32비트 부동 소수점 필드의 0에 해당하는 INT8 값입니다.

- round는 결과 값을 가장 가까운 정수로 반올림/내림하는 것을 나타냅니다.

다음으로 32비트 부동 소수점 값의 [min, max]를 설정하려면 이상값을 고려해야 합니다. 이러한 이상값을 간과하면 최소 또는 최대로 매핑되어 양자화된 모델의 정확도가 왜곡될 수 있습니다. 이에 대응하기 위해 모델을 블록 단위로 양자화할 수 있습니다. 가중치는 64개 또는 128개 그룹으로 나눌 수 있습니다. 그런 다음, 이러한 그룹을 양자화하여 이상값을 고려하고 정밀도 저하의 위험을 최소화합니다. 6

AI 아카데미

파운데이션 모델이 AI 패러다임의 전환을 가져오는 이유

새로운 수익을 창출하고 비용을 절감하며 생산성을 높일 수 있는, 유연하고 재사용 가능한 새로운 AI 모델을 살펴봅니다. 그다음, 가이드북을 통해 보다 심층적으로 알아봅니다.

양자화 유형

훈련 후 정량화(PTQ)

학습 후 양자화는 양자화가 기존 모델에 적용될 때 발생합니다. 이렇게 하면 모델을 부동 소수점 표현에서 더 낮은 정밀도의 고정 소수점 정수로 변환하며, 다시 학습할 필요가 없습니다. 이 방법은 양자화 인식 훈련만큼 많은 데이터가 필요하지 않으며 훨씬 빠릅니다. 그러나 이미 존재하는 모델을 더 작은 사이즈로 변환하는 것이기 때문에 학습 후 양자화는 성능 저하로 이어질 수 있습니다. PTQ를 활용해야 하는 경우의 예로는 이미 작업 모델이 있고 속도와 효율성을 높이고자 하는 경우입니다. PTQ는 모델이 학습된 후에 (즉, 이미 존재하는 모델) 이루어지므로 이 프로세스에 많은 양의 학습 데이터가 필요하지 않기 때문입니다. 7

양자화 인식 훈련(QAT)

양자화 인식 학습에는 LLM의 사전 학습이나 미세 조정 중에 가중치를 변환하는 기능이 통합되어 있습니다. 이를 통해 성능을 향상시킬 수 있지만, 많은 양의 컴퓨팅 파워가 필요하고 대표적인 훈련 데이터가 필요합니다. 전반적으로 양자화 인식 학습은 일반적으로 더 높은 성능의 모델을 만들어내지만, 비용이 더 많이 들고 훨씬 더 많은 컴퓨팅 성능을 요구합니다. QAT를 사용하는 데 적합한 예로는 충분한 양의 훈련 데이터와 많은 예산이 있는 경우를 들 수 있습니다. 이 과정은 모델의 학습 단계에서 이루어지므로 이미 학습된 모델에 이 방법을 사용하는 것은 의미가 없다는 점도 기억하는 것이 좋습니다. 7

동적 양자화와 정적 양자화 기술 비교

이 두 가지 기술의 목적은 클리핑 범위 또는 종종 언급되는 보정을 선택하는 방법입니다. 이 동적 양자화 중에 클리핑 범위는 각 활성화에 대해 동적으로 계산됩니다. 일반적으로 이러한 유형의 양자화 기술을 사용하면 정확도가 높아집니다. 이름에서 알 수 있듯이 정적 양자화는 모든 입력에 대해 고정된 클리핑 범위를 사용합니다. 이러한 형태의 양자화는 동적 양자화로 더 자주 사용되며 비용이 많이 들 수 있습니다.

위험 및 제한 사항

낮은 정밀도

양자화 중에 가중치를 변환하면 양자화된 머신 러닝 모델에서 양자화된 값 내에서 정확도가 손실되는 경우가 있습니다. 매개변수와 계층이 많은 예외적으로 큰 LLM을 양자화할 때는 상당한 양자화 오류가 누적될 위험이 있기 때문에 모델 크기를 고려해야 합니다. 8

비용

머신 러닝 모델 규모 훈련은 특히 양자화 인식 훈련(QAT)의 경우 비용이 매우 많이 들 수 있습니다. 따라서 PTQ(Post-Training Quantization)는 비용 효율적인 관점에서 최선의 선택입니다. 그러나 QAT는 일반적으로 더 정확한 모델을 생성하므로 일부 측면에서 모델을 제한합니다. 9

다음 단계 안내

IBM watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai 살펴보기 AI 솔루션 살펴보기
각주

¹ Dong Liu, Meng Jiang, Kaiser Pister, "LLMEasyQuant - An Easy to Use Toolkit for LLM Quantization", https://arxiv.org/pdf/2406.19657v2.

² Benoit Jacob, Skirmantas Kligys, Bo Chen, Menglong Zhu, Matthew Tang, Andrew Howard, Hartwig Adam, Dmitry Kalenichenko, "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference", https://arxiv.org/pdf/1712.05877v1.

³ Ravi Kishore Kodali, Yatendra Prasad Upreti, Lakshmi Boppana, "A Quantization Approach for the Reduced Size of Large Language Models", https://ieeexplore.ieee.org/document/10499664.

⁴ Xiao Sun, Naigang Wang, Chia-yu Chen, Jia-min Ni, Ankur Agrawal, Xiaodong Cui, Swagath Venkataramani, Kaoutar El Maghraoui, Vijayalakshmi Srinivasan, "Ultra-Low Precision 4-bit Training of Deep Neural Networks", https://research.ibm.com/publications/ultra-low-precision-4-bit-training-of-deep-neural-networks

⁵ Tim Dettmers, Mike Lewis, Younes Belkada, Luke Zettlemoyer, "LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale", https://arxiv.org/pdf/2208.07339

⁶ Amir Gholami, Sehoon Kim, Zhen Dong, Zhewei Yao, Michael W. Mahoney, Kurt Keutzer, "A Survey of Quantization Methods for Efficient Neural Network Inference", https://arxiv.org/pdf/2103.13630

⁷ Hao Wu, Patrick Judd, Xiaojie Zhang, Mikhail Isaev, Paulius Micikevicius, "A Survey of Quantization Methods for Efficient Neural Network Inference", https://arxiv.org/pdf/2004.09602

⁸ Zhuocheng Gong, Jiahao Liu, Jingang Wang, Xunliang Cai, Dongyan Zhao, Rui Yan, "What Makes Quantization for Large Language Models Hard? An Empirical Study from the Lens of Perturbation", https://arxiv.org/pdf/2403.06408v1.

⁹ Sehoon Kim, Coleman Hooper, Amir Gholami, Zhen Dong, Xiuyu Li, Sheng Shen, Michael W. Mahoney, Kurt Keutzer, "SqueezeLLM: Dense-and-Sparse Quantization", https://arxiv.org/pdf/2306.07629v4.