이 글은 주류 GPU 하드웨어 및 양자화 알고리즘에 관한 최신 연구 논문을 바탕으로 양자화 추론을 가속화할 수 있는 실현 가능한 방향을 탐구합니다. 현재의 양자화 방식을 배경으로 이 주제를 살펴보겠습니다. 양자화에 대한 간략한 소개 모델 양자화는 가중치와 활성화의 비트 폭을 조정하여 모델 크기를 줄이는 모델 압축 기술입니다. 이러한 축소는 계산 부하, GPU 메모리 I/O 및 점유율을 낮추는 데 도움이 되어 결과적으로 지연 시간을 줄이고 처리량을 향상시킵니다. 다음 다이어그램은 양자화가 딥러닝을 어떻게 가속화하는지 보여줍니다.
- 1단계: 가중치와 활성화 저장 데이터가 메모리에서 MatMul 계산 장치로 로드됩니다. 가중치와 활성화의 비트 폭은 데이터 전송 지연 시간에 큰 영향을 미칩니다.
- 2단계: MatMul 계산 장치는 행렬 곱셈을 수행하며, 비트 폭과 형식도 지연 시간에 영향을 미칩니다.
- 3단계: 누산기는 일반적으로 고정밀 합산을 위해 더 높은 비트 폭을 갖습니다. 합산 후 누산기의 값은 재양자화될 수 있습니다(출력 비트 폭은 다음 처리 단계를 위해 다시 메모리로 전송 및 저장되는 비트 수를 결정합니다).
딥러닝 가속기의 개요도 양자화 방식에 따라 두 가지 주요 접근 방식이 있습니다: 양자화 인식 훈련(QAT) 및 사후 훈련 양자화(PTQ).
- QAT(Quantization-Aware Training)는 온라인 양자화라고도 하며, 훈련 중 추가 계산이 필요합니다. 양자화를 역전파와 결합하여 모델 가중치를 조정하여 양자화된 모델이 정확도를 유지하도록 합니다.
- PTQ(Post-Training Quantization)는 오프라인 양자화라고도 하며, 최소한의 추가 데이터 또는 추가 데이터 없이 사전 훈련된 모델을 양자화합니다. 이 프로세스에는 모델 가중치 조정이 포함될 수 있는 보정이 포함됩니다. PTQ 방법에는 두 가지 유형이 있습니다.
- 사후 동적 양자화(PDQ)는 보정 데이터 세트에 의존하지 않습니다. 대신 양자화 공식을 사용하여 각 레이어를 직접 변환합니다. QLoRA(Quantization-aware Low-Rank Adaptation)가 이 방법을 사용합니다.
- 사후 보정 양자화(PCQ)는 모델의 각 레이어 입출력을 기반으로 양자화 가중치를 조정하기 위해 대표적인 데이터 세트가 필요합니다. GPTQ(Generative Pre-training Transformer for Quantization)가 이 접근 방식을 채택합니다.
하드웨어 지원
NVIDIA 시리즈 NV 시리즈 카드는 CUDA 생태계 덕분에 다양한 정밀도 및 데이터 유형 지원에서 일관되게 선도적인 위치를 유지해 왔습니다.
AMD 시리즈 AMD의 MI300 시리즈 카드는 일부 테스트에서 H100을 능가하는 성능 지표를 보여 차세대 유망한 선택지로 떠오르고 있습니다. 또한 FP8 유형을 지원합니다.
NVIDIA 및 AMD 시리즈 카드 외에도 국내 생산 카드는 FP16 및 INT8과 같은 데이터 유형에 대해 우수한 지원을 제공합니다(현재 FP8 및 기타 데이터 형식에 대한 지원이 상대적으로 부족함). 여기서 모두 나열하지는 않겠습니다.
LLM 양자화의 과제
간단한 비교부터 시작하겠습니다. ResNet18과 OPT-13B 모델 모두에 기본 INT 양자화를 수행했습니다. ResNet18의 성능은 거의 영향을 받지 않은 반면, OPT-13B는 상당한 손실을 입었습니다.
두 신경망 모두 가우시안 분포를 따르는데 왜 이러한 차이가 발생할까요? 이는 주로 LLM의 이상치(outlier) 또는 이상값(anomaly) 때문입니다.
단일 트랜스포머 블록은 셀프 어텐션 모듈과 선형 모듈로 구성됩니다. 빨간색 연결은 이상치가 있는 트랜스포머의 문제가 되는 연결입니다. 위 트랜스포머 구조의 빨간색 표시에서 알 수 있듯이, 트랜스포머의 양자화 문제는 네트워크의 매우 특정한 부분에서 발생합니다. 일부 완전 연결 모듈, 특히 네트워크의 마지막 몇 레이어에서 레이어 정규화 합계에 큰 이상치가 있습니다. 이러한 이상치를 단순히 제거하면 네트워크의 정확도가 크게 떨어지는데, 이는 특정 목적을 수행하기 때문입니다. 이러한 이상치는 다음 레이어의 어텐션 메커니즘이 텍스트의 의미 없는 토큰(예: 문장 구분자, 마침표 또는 쉼표)에 집중하도록 강제하여 이러한 특정 토큰이 크게 업데이트되지 않도록 합니다. 논문 LLM.int8()에 따르면 활성화에 이상치가 있으며 그 절대값이 훨씬 더 크다는 것이 밝혀졌습니다. 또한 이러한 이상치는 소수의 특징에 분포되어 있으며, 이를 창발적 특징(emergent features)이라고 합니다. 이상치가 모델 성능에 큰 영향을 미치며 단순히 버리는 것이 실행 가능한 해결책이 아니라는 것은 잘 알려져 있습니다. 이상치의 존재로 인해 fp16의 범위가 매우 넓어집니다. 따라서 int8로 표현할 때 각 숫자는 넓은 fp16 범위를 표현해야 하므로 자연스러운 오류가 발생합니다. 기존 CNN도 보정 방법을 제안하여 이 문제를 해결했습니다. 구체적으로 fp16 값을 통계적으로 분석한 다음 KL 발산과 같은 알고리즘을 사용하여 큰 값을 버려 int8이 fp16을 표현해야 하는 범위를 줄여 정확도를 향상시킵니다. 버리는 양은 KL 알고리즘을 반복적으로 적용하여 최적 범위를 찾음으로써 결정됩니다. 다행히도 이러한 이상치는 매우 특별합니다. 특정 어텐션 블록에만 나타나며, 해당 블록 내에서는 한 레이어에만, 그리고 해당 레이어 내에서는 소수의 출력 채널에만 나타납니다. 이러한 이상치는 각 데이터 포인트에 대해 동일한 채널에서도 발생합니다([1,3]). 위 결론을 바탕으로 LLM.int8()[1]은 혼합 정밀도 알고리즘을 제안합니다.
LLM.int8() 개요 위 다이어그램에서 X는 각 레이어의 활성화를 나타내며, 행 수는 시퀀스 길이, 열 수는 히든 크기와 같습니다. 다이어그램의 노란색 막대는 이상치를 나타내며 그 분포 패턴(두 번째 결론)을 생생하게 보여줍니다. 벡터 단위 양자화의 의미는 이상치가 아닌 열에 대해 int8을 사용하여 대칭적으로 양자화한다는 것입니다. 열을 다루기 때문에 행렬 곱셈에서 해당 가중치 W는 int8 연산을 위해 해당 행에서 추출되어야 합니다. 노란색 이상치 열의 경우 fp16 연산을 위해 행과 열이 모두 사용됩니다. 마지막으로 두 부분의 결과가 더해져 직접 행렬 곱셈과 동일한 결과를 얻습니다. LLM.int8()의 혼합 양자화 방법을 통해 정확도는 fp32와 거의 동일하며, 실험 결과 데이터는 여기에 붙여넣지 않습니다.
FP8 및 INT8
왜 FP8과 INT8을 특별히 언급할까요? 이는 주로 최신 GPU 아키텍처(예: hopper 아키텍처 및 텐서 코어)가 FP8 정밀도 계산을 지원하기 때문입니다. 따라서 FP8 양자화를 탐구할 가치가 있습니다.
Tensor Core (Hopper)(a)범위 또는 정밀도에 1비트 할당(b)다중 누산기 및 출력 유형 지원. Int8은 fp8과 달리 중간 지수가 없고 가수만 포함합니다. 아래 다이어그램과 같은 이 데이터 표현 구조는 균일 분포를 표현하는 데 더 적합합니다.
[4]에 따르면 분포에 매우 두드러진 이상치가 있는 경우 FP8-E4/FP8-E5 형식이 더 정확합니다. 그러나 분포가 잘 작동하고 가우시안 형태에 가까운 경우 INT8 또는 FP8-E2/FP8-E3이 더 나은 성능을 보일 것으로 예상됩니다.
여기서 여러 분포에 대해 '정확도 비트’를 플롯했습니다: 역전 및 정규화된 RMSE 위 그림과 같이 균일 분포의 경우 INT8이 가장 우수합니다. 정규 분포의 경우 FP8-E2가 최적이며 INT8이 그 뒤를 따릅니다. 신경망의 많은 분포가 가우시안이므로 분포의 결과는 매우 관련성 높은 성능 지표임을 나타냅니다. 이상치가 발생할 때만 더 많은 지수 비트를 가진 형식이 더 나은 결과를 제공하기 시작합니다. 최적의 양자화기는 Lloyd-Max 양자화기를 기반으로 하며 이러한 분포에 대해 얻을 수 있습니다. ResNet18, MobileNetV2 등과 같은 네트워크의 경우 대부분의 레이어가 가우시안 형태이므로 FP8-E2 및 INT와 같은 형식에서 가장 좋은 성능을 보이고 FP8-E4 및 FP8-E5와 같은 형식에서는 성능이 훨씬 떨어집니다. 또한 ViT 및 BERT와 같은 트랜스포머 모델은 FP8-E4에서 가장 잘 수행되는데, 이는 트랜스포머의 일부 레이어에 매우 큰 이상치가 있기 때문입니다. 특히 일부 레이어는 레이어 정규화 전 활성화에 많은 이상치를 가지고 있습니다. 이러한 이상치는 성능에 큰 영향을 미치므로 클리핑 중에 제로 오류가 발생하기 때문에 FP8-E4 형식이 가장 잘 수행되는 반면 FP8-E2/INT8 형식은 성능이 훨씬 떨어집니다. 그렇다면 LLM 영역에서 FP8이 INT8보다 절대적인 이점을 가질까요? 결론은 정반대일 수 있으며, 주로 다음과 같은 이유 때문입니다.
- 회로 설계에서 고정 소수점 및 부동 소수점 누적 원리에 따르면 FP8 MAC 유닛은 INT8 유닛보다 50%에서 180%까지 효율이 떨어집니다. 작업이 계산 중심(computation-bound)인 경우 전용 칩의 처리 속도가 느려집니다.
- 대부분의 네트워크에서 FP8은 INT8보다 성능이 떨어지며, 혼합 정밀도 또는 양자화 인식 훈련 방법을 통해 해결할 수 있는 많은 이상치가 있는 트랜스포머와 같은 구조에서도 마찬가지입니다. 전반적으로 순수 양자화의 맥락에서 FP8-E4 및 FP8-E5와 같은 부동 소수점 형식은 딥러닝 추론에서 성능과 정확도 측면에서 INT8을 대체할 수 없습니다. 그렇다면 FP8 형식의 장점과 위치는 어디에 있을까요? 먼저 FP8 형식의 장점을 요약해 보겠습니다.
- FP8 텐서 코어는 16비트 텐서 코어보다 빠릅니다.
- 메모리 이동을 줄입니다.
- 모델이 이미 FP8로 훈련된 경우 배포가 더 편리합니다.
- FP8은 더 넓은 동적 범위를 가지고 있습니다.
- FP8에서 FP16/FP32/BF16으로의 변환 회로는 INT8/UINT8에서 FP로의 변환에 필요한 곱셈 및 덧셈 오버헤드 없이 더 간단하고 직접적으로 설계할 수 있습니다. 이러한 장점을 바탕으로 FP8이 실제로 훈련에 더 적합하다는 것이 분명합니다. [5]를 참조하면 학습률 및 가중치 감쇠와 같은 하이퍼파라미터를 수정하지 않고도 사전 훈련 작업과 다운스트림 작업 모두에서 FP8을 사용하여 훈련된 모델이 BF16 고정밀 훈련을 사용하여 훈련된 모델과 유사한 성능을 보입니다. 특히 GPT-175B 모델 훈련 중에 TE 방법과 비교하여 H100 GPU 플랫폼에서 새로 제안된 FP8 혼합 정밀도 프레임워크는 훈련 시간을 17%, 메모리 사용량을 21% 줄일 수 있습니다.
다운스트림 작업에 대한 제로샷 성능. 모델은 표준 BF16 혼합 정밀도 방식 또는 제안된 FP8 저정밀도 방식으로 훈련되었습니다. FP8 형식을 사용하여 추론을 위해 모델을 양자화하면 QAT 또는 PTQ 프로세스(정밀도 저하 방지)를 피할 수 있을 뿐만 아니라 FP8에서 FP16 및 기타 형식으로의 더 높은 변환 효율성의 이점을 얻어 추론 성능이 크게 향상됩니다. 양자화의 최고 비용 효율성에 관하여: exllamav2 프로젝트와 유사하게 GPTQ 알고리즘 기반의 2, 3, 4, 5, 6, 8비트 양자화를 지원하지만, LLM의 경우 양자화에서 어떤 길이와 형식이 최고의 비용 효율성을 제공할까요? [6]을 참조하면 다양한 LLM 아키텍처에 대한 광범위한 실험을 통해 다양한 비트 할당이 모델 성능에 미치는 영향을 확인했습니다.
125M에서 176B 매개변수 OPT 모델에 대한 4개 데이터 세트의 평균 제로샷 성능에 대한 비트 수준 스케일링 법칙. 고정 모델 비트에 대해 양자화 정밀도를 16비트에서 4비트로 줄임에 따라 제로샷 성능이 꾸준히 증가합니다. 3비트에서는 이 관계가 역전되어 4비트 정밀도가 최적이 됩니다.
- 주어진 제로샷 성능에 대해 4비트 정밀도는 거의 모든 모델 시리즈와 크기에 대해 최상의 스케일링을 제공합니다(4비트 정밀도는 모델 성능에 큰 저하를 초래하지 않습니다). 유일한 예외는 BLOOM-176B이며, 3비트가 약간 더 좋지만 크게 차이나지는 않습니다.
- 4비트 정밀도는 현재 비트당 기준으로 가장 효과적인 정밀도이며, 동시에 3비트 정밀도의 성능이 개선될 수 있음을 나타냅니다. 따라서 4비트 미만의 저비트 정밀도에 대한 연구는 가치 있는 방향입니다.
- 비트 수준 양자화에 대한 연구는 데이터 유형과 블록 크기가 비트 수준 양자화의 효과에 영향을 미치는 핵심 요소임을 보여줍니다. 위 내용을 바탕으로 4비트 정밀도 양자화가 현재 가장 비용 효율적인 솔루션이라고 결론지을 수 있습니다. 그러나 4비트 데이터 중 어떤 데이터 유형이 더 나은 양자화 결과를 제공할까요? [7]을 참조하면 LLM-FP4 방법은 대규모 언어 모델(LLM)에 대해 사후 훈련 방식으로 FP4 양자화를 제안하며, 가중치와 활성화를 4비트 부동 소수점 값으로 양자화합니다. 기존 PTQ 솔루션은 주로 정수 기반이며 8비트 미만의 비트 폭에서는 어려움을 겪습니다. 정수 양자화와 비교하여 부동 소수점(FP) 양자화는 장기(long-tail) 또는 종 모양 분포를 더 잘 처리할 수 있어 더 유연하며, 많은 하드웨어 플랫폼의 기본 선택이 되었습니다. 프로젝트 참조: https://github.com/nbasyl/LLM-FP4 FP 양자화의 특징 중 하나는 성능이 지수 비트 선택과 클리핑 범위에 크게 의존한다는 것입니다. LLM-FP4는 최적의 양자화 매개변수를 검색하여 강력한 FP-PTQ 기준선을 구축합니다. 또한 활성화 분포에는 채널 간 분산이 더 높고 채널 내 분산이 낮아 활성화 양자화의 어려움을 증가시킵니다. 이 문제를 해결하기 위해 LLM-FP4는 채널별 활성화 양자화를 제안하고 이러한 추가 스케일링 팩터를 가중치의 지수 편향으로 재파라미터화할 수 있어 무시할 수 있는 비용이 발생함을 보여줍니다. LLM-FP4는 LLaMA-13B의 가중치와 활성화를 처음으로 4비트로만 양자화하여 상식 제로샷 추론 작업에서 평균 63.1점을 달성했으며, 이는 전체 샘플보다 5.8점 낮지만 이전 최첨단 모델보다 12.7% 포인트 크게 능가합니다. 구체적인 데이터는 다음 그림에서 확인할 수 있습니다.
LLaMA 모델을 사용한 상식 추론 작업에 대한 제로샷 성능. E/W/A는 각각 단어 임베딩, 모델 가중치 및 활성화의 비트 폭을 나타냅니다. 위 그림에서 다음과 같은 주요 결론을 도출할 수 있습니다.
- 활성화가 양자화되지 않고 단어 임베딩과 가중치가 4비트로 양자화된 경우, LLM-FP4(FP 유형)가 GPTQ(INT 유형)와 같은 알고리즘에 비해 약간 우위에 있습니다.
- 활성화가 8비트로 양자화되고 단어 임베딩과 가중치가 4비트 또는 8비트로 양자화된 경우, LLM-FP4(FP 유형)는 다른 알고리즘(INT 유형)과 유사한 성능을 보이며 성능에 큰 차이가 없습니다.
- 활성화가 4비트로 양자화된 경우, LLM-FP4(FP 유형)는 다른 알고리즘(INT 유형)에 비해 눈에 띄는 개선을 보여줍니다. 결론적으로, 활성화가 4비트로 양자화되지 않은 경우 현재 FP4가 INT4에 비해 뚜렷한 이점이 없습니다.
주목할 만한 양자화 프로젝트
GPTQ-for-LLaMa
-
GPTQ를 사용하여 양자화된 모델은 상당한 속도 이점을 제공합니다. 간단히 말해, GPTQ는 블록 내 각 매개변수를 개별적으로 양자화하고, 각 매개변수 양자화 후 블록 내 다른 매개변수를 조정하여 양자화로 인한 정밀도 손실을 보상합니다.
-
GPTQ 양자화는 양자화된 가중치를 얻기 위해 모델에 사후 훈련 양자화를 수행하는 보정 데이터 세트가 필요합니다. GPTQ의 개념은 1990년 Yann LeCun이 제안한 OBD 알고리즘에서 비롯되었으며, OBS, OBC(OBQ)와 같은 방법으로 지속적으로 개선되었으며, GPTQ는 OBQ 방법의 가속 버전입니다.
-
GPTQ-for-LLaMa 저장소는 LLaMa에 특화된 GPTQ 양자화 솔루션을 제공합니다. GPU에 LLaMa 모델을 배포하는 데 권장됩니다.
-
프로젝트 링크: GPTQ-for-LLaMa ExLlama
-
ExLlama에는 ExLlama와 ExLlamaV2의 두 가지 버전이 있으며, 최신 소비자급 GPU에서 로컬 LLM을 실행하기 위한 추론 라이브러리 역할을 합니다.
-
ExLlamaV2는 V1과 유사한 4비트 GPTQ 모델을 지원하지만 새로운 “EXL2” 형식도 도입했습니다. EXL2는 GPTQ와 동일한 최적화 방법을 기반으로 하며 2, 3, 4, 5, 6, 8비트 양자화를 지원하므로 모델 내에서 양자화 수준을 혼합하여 가중치당 2~8비트 사이의 모든 평균 비트레이트를 달성할 수 있습니다.
-
ExLlamaV2는 각 선형 레이어에 여러 양자화 수준을 적용할 수 있어 희소 양자화와 유사한 효과를 내며, 더 중요한 가중치(열)는 더 많은 비트로 양자화됩니다. ExLlama가 순차 모델에서 효율적으로 작동할 수 있도록 하는 동일한 리매핑 기술을 통해 이 혼합 형식을 성능에 거의 영향을 주지 않고 사용할 수 있습니다.
-
일반적으로 ExLlama는 다른 양자화 접근 방식에 비해 약간 더 빠른 추론 속도를 제공합니다.
-
프로젝트 링크: ExLlama GGML
-
GGML은 Georgi Gerganov가 만든 머신러닝에 중점을 둔 C 라이브러리로, 약어 "GG"는 그의 이름에서 유래했습니다. 이 라이브러리는 텐서와 같은 머신러닝의 기본 요소를 제공할 뿐만 아니라 LLM 배포를 위한 고유한 바이너리 형식도 제공합니다.
-
GGML은 C로 작성되었으며, 정수 양자화(4비트, 5비트, 8비트) 및 16비트 부동 소수점을 지원합니다.
-
GGML은 llama.cpp 라이브러리와 원활하게 협력하여 실무자가 LLM의 성능을 효과적으로 활용할 수 있도록 합니다. llama.cpp 라이브러리의 주요 목표는 MacBook에서 INT4 양자화된 LLaMA 모델을 사용할 수 있도록 하는 것입니다.
-
프로젝트 링크: GGML Transformer Engine Transformer Engine(TE)은 NVIDIA GPU에서 트랜스포머 모델을 가속화하도록 설계된 라이브러리로, Hopper GPU에서 8비트 부동 소수점(FP8) 정밀도를 사용하여 훈련 및 추론 모두에서 더 나은 성능과 낮은 메모리 사용률을 제공합니다. TE는 널리 사용되는 트랜스포머 아키텍처에 대한 고도로 최적화된 빌딩 블록 세트와 함께 프레임워크별 코드와 원활하게 통합되는 자동 혼합 정밀도 클래스 API를 제공합니다. 또한 TE에는 트랜스포머의 FP8 지원을 위한 프레임워크에 구애받지 않는 C++ API가 포함되어 있어 다른 딥러닝 라이브러리와 통합할 수 있습니다. 주요 기능은 다음과 같습니다.
-
FP8을 지원하는 트랜스포머 레이어 구축을 위한 사용하기 쉬운 모듈.
-
커널 융합을 포함한 트랜스포머 모델 최적화.
-
NVIDIA Hopper 및 NVIDIA Ada GPU에서 FP8 지원.
-
NVIDIA Ampere GPU 아키텍처 이상에서 모든 정밀도(FP16, BF16) 최적화. 프로젝트 링크: Transformer Engine 어텐션 테스트를 위해
te.LayerNormLinear를 가져와서 어텐션 계산의 평균 시간을 측정할 수 있습니다. StageModel StructureData FormatRTX 4090RTX 3090Basic AttentionPyTorch Native AttentionFP1692ms183msBasic Attention + TELinear and LayerNorm tx replacementFP1696ms지원 안 함Basic Attention + TE’s LayerNorm OptimizationTE.LayerNormLinearFP1696ms지원 안 함TE FullTE Full Attention AlgorithmFP1674ms지원 안 함TE Full + FP8FP Forward Propagation ReplacementFP842ms지원 안 함 테스트 결과: Transformer Engine을 사용하는 경우 fp16을 사용할 때 기본 어텐션 알고리즘에 비해 약 20%의 향상이 있습니다. 또한 fp8을 사용할 때는 약 54.5%의 큰 향상이 있어 추론 성능 개선에 시간을 투자할 가치가 있음을 나타냅니다. Bitsandbytes: Bitsandbytes는 사용자 정의 CUDA 함수를 위한 경량 래퍼로, 특히 8비트 연산, 행렬 곱셈(LLM.int8()) 및 양자화 함수에 최적화되어 있으며 주로 LLM.int8() 양자화 알고리즘을 지원합니다. bitsandbytes 라이브러리는 분위수(quantiles), 선형 및 동적 양자화와 같은 양자화 방법을 지원합니다. 사용 가능한 가장 간단한 방법 중 하나이며 양자화 보정 데이터나 보정 프로세스가 필요하지 않습니다. torch.nn.Linear 모듈을 포함하는 모든 모델에서 즉시 사용할 수 있습니다. 현재 분석에 따르면 NF4(NormalFloat 데이터 유형)와 FP4는 동등한 4비트 양자화 기술로, 추론 속도, 메모리 소비 및 생성된 콘텐츠 품질과 같은 유사한 특성을 나타냅니다. NormalFloat 데이터 유형은 향상된 형태의 양자화 기술로, 정규 분포에서 가중치의 최적 표현을 정보 이론 측면에서 나타냅니다. 주로 QLoRA 방법에서 4비트 정밀도로 모델을 미세 조정하는 데 사용됩니다. 다음은 QLoRA의 일부 데이터입니다.
125M에서 13B OPT, BLOOM, LLaMA 및 Pythia 모델에 대한 다양한 데이터 유형의 Pile Common Crawl 평균 perplexity. AIMET AIMET는 Qualcomm에서 제공하는 신경망 모델을 위한 고급 모델 양자화 및 압축 기술 라이브러리입니다. 정확도에 미치는 영향을 최소화하면서 계산 및 메모리 요구 사항을 줄이고 추론 속도를 향상시키는 것을 목표로 합니다. 예를 들어 Qualcomm Hexagon DSP에서 실행되는 모델은 Qualcomm Kyro CPU보다 5~15배 더 빠른 속도를 달성할 수 있습니다. AIMET는 비 NVIDIA 하드웨어에서 양자화 구현을 반영합니다. 일반적으로 하드웨어 공급업체가 제공하는 기본 양자화 기능을 나타내며, 현재 다양한 하드웨어 플랫폼에 보편적인 양자화 기능을 제공하는 단일 프로젝트는 없습니다.
결론
4비트 양자화는 현재 가장 비용 효율적인 양자화 방식입니다. 그러나 최적화는 단어 임베딩, 가중치 및 활성화의 양자화 수준에 따라 다릅니다. 대부분의 시나리오에서 활성화가 4비트로 양자화된 경우를 제외하고는 정수(Int) 양자화가 비양자화 시나리오를 포함하여 더 나은 비용 효율성을 제공합니다. 따라서 저비트 양자화, 특히 사후 훈련 양자화(PTQ)를 통해 활성화에 초점을 맞추는 것이 양자화 가속을 위한 유망한 방향입니다. INT8은 현재 가장 일반적으로 사용되는 양자화 방식입니다. INT8과 비교하여 FP8은 양자화 시나리오에서 완전히 대체할 수는 없지만 모델 훈련에 적합하며 양자화 없이 추론 성능 문제에 대한 솔루션을 제공합니다. FP8 관련 기술을 하드웨어 텐서 코어와 통합하여 추론 속도를 극대화하는 것은 탐구할 가치가 있는 새로운 방향입니다. GPTQ 알고리즘 기반 프로젝트는 대규모 언어 모델(LLM) 분야를 지배하고 있습니다. 그러나 새로운 데이터 유형(예: FP4 및 NF4), 더 낮은 비트 정밀도 및 동적 양자화는 혁신과 연구의 기회를 제공합니다. NVIDIA GPU 외에도 새로운 GPU 및 CPU(예: AMD, 국내 GPU, Qualcomm)는 새로운 기회를 제시합니다. 다양한 하드웨어 플랫폼에 양자화 알고리즘을 신속하게 적용하고 하드웨어 성능을 극대화하는 것은 탐구해야 할 새로운 방향입니다.
참고 논문
[1]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale [2]Outliers Dimensions that Disrupt Transformers Are Driven by Frequency [3]Smoothquant: Accurate and efficient post-training quantization for large language models [4]FP8 versus INT8 for efficient deep learning inference [5]FP8-LM: Training FP8 Large Language Models [6]The case for 4-bit precision: k-bit Inference Scaling Laws [7]LLM-FP4: 4-Bit Floating-Point Quantized Transformers [8]GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers [9]Understanding the Impact of Post-Training Quantization on Large Language Models [10]QLoRA: Efficient Finetuning of Quantized LLMs
novita.ai 는 10,000개의 모델을 위한 Stable Diffusion API와 수백 개의 빠르고 가장 저렴한 AI 이미지 생성 API를 제공합니다. 🎯 단 2초 만에 가장 빠른 생성, 종량제 방식, 표준 이미지당 최소 $0.0015, 자체 모델을 추가할 수 있으며 GPU 유지 관리가 필요 없습니다. 오픈 소스 확장 프로그램을 무료로 공유하세요.
추천 자료
