AI Summary
ChatGPT
LLM의 계산 부담을 줄이고 엣지 장치에 효과적으로 배치하기 위해 개발된 새로운 알고리즘입니다. 이 연구는 기존의 파라미터 효율적 미세 조정(PEFT)과 매개변수 양자화 방법의 한계를 극복하고자 QA-LoRA를 도입합니다. QA-LoRA는 기존 LoRA 방식에 양자화를 인지한 적응을 더해, LLM의 가중치를 효율적으로 양자화(INT4 등)하고, 미세 조정 이후에도 모델의 정확도를 유지합니다.
QA-LoRA는 LLaMA 및 LLaMA2 모델군에 적용되어 여러 언어 이해 벤치마크에서 그 효과가 입증되었습니다. 이 방법은 LoRA와 비교하여 계산 비용이 낮으면서도 미세 조정 및 추론 단계에서 높은 성능을 제공합니다. 특히 양자화 비트 폭이 낮을 때 이점이 두드러지며, QLoRA에 비해 일관되게 더 높은 성능을 보입니다.
QA-LoRA의 핵심은 가중치 행렬 W의 각 열을 L개의 그룹으로 분할하고, 각 그룹에 대해 개별적인 스케일링 및 제로 인자를 사용하는 것입니다. 이로써 양자화 매개변수의 수를 증가시키고, 적응 매개변수의 수를 감소시켜 균형을 맞춥니다. 이 접근 방식은 연산 효율성을 유지하면서도 언어 이해 작업에서 만족스러운 정확도를 달성합니다.
실험 결과, QA-LoRA는 여러 데이터셋과 모델 크기에 대해 QLoRA 및 기타 양자화 방법들과 비교하여 뛰어난 성능을 보였습니다. 특히 모델 크기가 작거나 양자화 비트 폭이 낮은 경우에 더 큰 이점이 있었으며, 이는 특히 엣지 장치와 같은 리소스 제한 환경에서의 배치에 유리합니다.
QA-LoRA는 미세 조정 단계에서 QLoRA에 비해 더 적은 매개변수와 더 짧은 훈련 시간을 요구합니다. 이는 주로 INT4 양자화의 사용과 CUDA에 최적화된 연산 덕분에 가능하며, 추론 단계에서도 QLoRA보다 50% 이상 빠릅니다.
Bard
이 논문은 대규모 언어 모델(LLM)을 효율적으로 미세 조정하고 배포하기 위해 양자화와 적응을 위한 자유도를 균형 있게 조절하는 양자화 인식 저등급 적응(QA-LoRA) 방법을 제안합니다.
QA-LoRA는 다음과 같은 두 가지 주요 단계를 포함합니다.
- 양자화 인식 저등급 표현(QILR) 학습: LLM의 가중치를 저등급 표현으로 변환합니다. 이 과정에서 양자화 오류를 고려하여 저등급 표현을 학습합니다.
- 양자화 후 적응: QILR 표현을 사용하여 LLM을 미세 조정합니다. 이 과정에서 양자화 오류를 보정하기 위해 미세 조정 과정을 조정합니다.
QA-LoRA는 다음과 같은 장점을 가지고 있습니다.
- 엔드-투-엔드 INT4 양자화를 지원합니다. 이는 LLM의 전체 가중치를 INT4로 양자화하여 메모리와 연산량을 크게 절감할 수 있습니다.
- 후처리 양자화보다 정확도가 높습니다. QA-LoRA는 양자화 오류를 고려하여 QILR 표현을 학습하므로 후처리 양자화보다 정확도가 높습니다.
QA-LoRA는 다음과 같은 작업에서 후처리 양자화보다 우수한 성능을 보였습니다.
- 자연어 이해: GLUE, SQuAD, SuperGLUE 등
- 자연어 생성: GPT-3, BARD, Jurassic-1 Jumbo 등
결론
QA-LoRA는 대규모 언어 모델을 효율적으로 미세 조정하고 배포하기 위한 새로운 방법입니다. 엔드-투-엔드 INT4 양자화를 지원하고 후처리 양자화보다 정확도가 높다는 장점이 있습니다.
Abstract
- Motivation: Quantization과 Adaptation의 freedom 사이의 imbalance
- Quantization의 freedom을 높이는 반면 Adaptation의 freedom을 낮추는 그룹별 연산자를 사용
- Additional abilities
- fine-tuning 동안 LLM의 weight는 시간과 memory를 줄이기 위해 quantization 됨
- fine-tuning 후에, LLM 및 보조 가중치는 accuracy 손실 없이 자연스럽게 정량화된 모델에 통합
Introduction
- Quantization과 Adaptation의 자유도의 불균형에 근거한 idea
- 자유도: 변수나 매개변수가 독립적으로 변화하거나 조정될 수 있는 범위를 의미. 얼마나 유연하게 조정될 수 있는지 나타내는 지표
- pre-trained weight의 각 열은 하나의 scaling과 zero 쌍을 가지지만 LoRA는 여러 개 → 불균형!
- Quantization error가 증가
- LoRA를 main model에 통합하기 어렵게 만듦
- group-wise operator로 해결
- 낮은 비트의 Quantization에 대한 자유도 증가(각 그룹이 개별적으로 양자화). low-bit에서도 model weight를 더 세밀하게 조정할 수 있음. 가중치가 더 많은 값을 가질 수 있게 하여, quantization의 정보 손실을 줄이고 정확도를 유지하는데 도움이 됨
- LoRA의 자유도 감소(각 그룹이 adaptation parameter 공유). Parameter의 수를 줄이고, 모델 복잡도 감소, computation cost 감소. 유연성 다소 제한, 모델의 효율성과 실행 속도 향상.
- Benefits
- LLM(대규모 언어 모델)의 가중치가 낮은 비트 정수로 양자화되어 효율적인 미세 조정 단계
- 정확도 손실을 종종 초래하는 PTQ(Post-Training Quantization)가 필요 없는 가벼운, 미세 조정된 모델
- During inference
- QA-LoRA vs QLoRA w. PTQ → same complexity
- QA-LoRA vs QLoRA w.o. PTQ → much more efficient
Background
Quantization of LLMs
- parameter distribution에서 outlier를 다루는 것이 main challenges
- outlier들은 양자화 되면 심각한 erorr를 발생시킴 → 실제로 STF에서 LoRA Distillation을 하면서 quantile 기준으로 0.99만 clamp해도 값이 많이 틀어짐
- 이 문제를 해결하기 위해 adaptive or dynamic quantization scheme을 사용 → quantization range나 precision을 조절하는 방법들이 제안됨
- 복잡한 grouping이나 clustering을 사용해서 parameter들을 여러 그룹으로 나누고 각각 다른 quantization strategy를 사용하는 방법도 제안됨
Joint adaptation and quantization
- 추가적인 어려움들 발생
- propagating gradients through discrete values
- optimizing the quantization parameters
- QLoRA는 NF4에서 연산할 때 FP16으로 다시 바꾸기 때문에 느림
Approach
- 이 논문에서는 weight quantization만 다룸 → min-max quantization 사용
와 의 차이 = quantization loss를 줄이기 위해서는? → W의 column마다 각각 quantization- 열마다 scaling, zero 값을 가짐
- 이렇게 해도 computation cost는 변하지 않음
- Goals
- fine-tuning할 때, low-bit로 quantize해서 LLM이 가능한 적은 GPU에서 fine-tune 될 수 있도록 만들기
- fine-tune 이후에 fine-tuned and merged weight
이 여전히 quantized form으로 남아있어서 연산 효율적으로 deploy 될 것
와 사이의 accuracy loss는 low rank weigth 에 의해서 보상됨- 아직 NF4를 위한 operator-level optimization는 없음
- QLoRA는 fine-tuning에서의 memory cost에서만 이득
- A, B가 unconstrained일 때
를 로 column-wise quantization - for any j, all
는 같은 scaling과 zero factor를 가짐 - 양자화 속성을 유지하려면 임의의 j에 대해
의 가능한 모든 값이 공통 차가 αj 1인 산술 집합을 형성하도록 보장해야 함(???) - 이것은 연속하고 gradient-based optimization에서는
가 상수가 아니면 쉽지 않음( ) → 이것은 A의 모든 행벡터가 같다는 뜻 - 그러면
이고 인데, 이건 를 새로운 데이터에 fine-tuning하는 능력과 관련이 있음 → 문제가 있다는 뜻 - W의 column을 L(
의 약수)개의 그룹으로 나눔 개에 대해서 를 구함(scaling, zero factors)- input vector x에서 각 그룹을 더해서 사용 → x의 차원을
에서 L로 낮춤 - QA-LoRA는 QLoRA에서 NF4만 INT4로 바꾼 variant
Experiments
- GPTQ를 사용해서 Quantization
- 다른 PTQ 사용해도 됨
- QLoRA와 동일한 fine-tune
Conclusion
- Quantization과 low-rank adaptation 모두에 group-wise operation 적용
- 양쪽의 자유도의 밸런스를 맞추는 것이 key insight