엣지컴퓨팅

[논문 읽기] Evaluating Quantized Large Language Models

ima9ine4 2024. 12. 2. 21:40
728x90
Li, S., Ning, X., Wang, L., Liu, T., Shi, X., Yan, S., ... & Wang, Y. (2024). Evaluating quantized large language models. 
arXiv preprint arXiv:2402.18158
https://arxiv.org/abs/2402.18158
 

Evaluating Quantized Large Language Models

Post-training quantization (PTQ) has emerged as a promising technique to reduce the cost of large language models (LLMs). Specifically, PTQ can effectively mitigate memory consumption and reduce computational overhead in LLMs. To meet the requirements of b

arxiv.org

 

 

LLM은 자연어 처리와 생성의 많은 영역에서 뛰어난 성능을 보이고 있지만, 모델의 거대한 크기와 비싼 계산 비용의 문제가 대두되고 있다. LLM의 추론 과정에서 Prefill 단계는 주로 계산량이 많아 CPU/GPU 성능에 의존하고, Decoding 단계에서는 소규모 batch로 인해 주로 메모리에 의존한다. LLM의 높은 메모리 소비와 계산 비용을 해결하기 위해 다양한 방법들이 제안되고 있는데 그 중 하나가 양자화(Quantization)이다. 

 

양자화는 모델의 숫자 표현 방식을 단순화하여 모델의 크기와 계산 비용을 줄이는 기술이다. 일반적으로 LLM은 FP32를 사용하지만 이를 INT8로 변환하면 메모리 사용량과 연산 복잡도가 크게 줄어든다.

 

양자화 기술은 양자화 적용 시점과 방법에 따라 PTQ(훈련 후 양자화)QAT(양자화를 고려한 훈련)로 나눌 수 있다.

  • PTQ(Post-Training Quatization): 모델 훈련 후에 양자화를 적용
  • QAT(Quantization-Aware Training): 모델 훈련 중에 양자화를 적용

PTQ는 모델을 훈련한 뒤에 양자화를 적용하는 기법으로, 이미 학습이 끝난 모델의 파라미터를 양자화하기 때문에 간단하고 빠르게 적용할 수 있다. 하지만 양자화 적용 후 모델의 성능 저하가 발생할 수 있다. 반면 QAT는 모델이 처음부터 양자화를 염두에 두고 훈련하는 방식이다. 훈련 중에 양자화 과정이 포함되므로 양자화로 인한 성능저하를 보정할 수 있어 PTQ보다 성능 저하가 덜할 수 있다. 하지만 훈련 시간이 길어지고 자원이 더 많이 소모된다.

 

개념으로는 PTQ보다 QAT가 더 좋을 것으로 예상할 수 있다. 하지만 실제 실험 결과는 그렇지 않았다고 한다. QAT가 항상 좋은 것은 아니며 대부분의 모델과 Task에는 PTQ로도 충분하다는 결론이었다. QAT가 PTQ보다 성능이 더 좋을 순 있으나 훈련 시간과 소모되는 자원을 생각하면 PTQ가 좋다는 것이다. 

더보기

PTQ vs GTQ의 결과에 관해 아래 블로그를 참고하였습니다. 더 상세한 내용을 아래 링크에서 확인할 수 있습니다.

https://monday9pm.com/deep-learning-quantization-%EB%94%A5-%EB%9F%AC%EB%8B%9D-%EC%96%91%EC%9E%90%ED%99%94-6fb30c642cf7

 

PTQ는 LLM을 개선하기 위한 기술로 많이 활용되고 있다. 이 논문(Evaluating Quantized Large Language Models)에서는 PTQ가 LLM에 미치는 영향과 PTQ가 실제로 얼마나 효율적인지를 평가한다.

 

OPT, LLaMA2, Falcon, Bloomz, Mistral, ChatGLM, Vicuna, LongChat, StableLM, Gemma, Mamba 등 파라미터 수 1억 2500만 ~ 1,800억 정도의 11개 모델 계열에 대해 가중치, 활성화값(Activation), KV캐시(KV Cache)에 PTQ가 미치는 영향을 평가하였다. 평가는 basic NLP(기본 자연어처리), *emergent ability(창발적 능력), trustworthiness(신뢰성), dialogue(대화), long-context tasks(긴 문맥 작업)으로 5가지 유형에 걸쳐 이루어졌다. 또한 SOTA 양자화 방법들의 실용성을 평가했다.

 

* emergent ability 창발적 능력
파라미터가 많은 대규모 언어 모델에서 갑작스럽게 성능이 향상되는 것.

(왜 이런 능력이 형성되는지에 대한 자세한 내용은 아래 링크 참고)

https://stibee.com/api/v1.0/emails/share/e-hU7xShKasbD3hxxSoQ5842Y7emS00

 

 

간단히 정리한 평가 유형 별 실험 결과는 아래와 같다.

 

Experiment Result

  1. Basic NLP
    Weight, KV Cache 양자화는 대부분의 모델에서 W4, KV4까지 성능 손실이 거의 없다. Activation 양자화는 양자화에 더 민감하며 낮은 비트 폭에서 성능 저하가 크다. 짧은 텍스트(<4K)에서는 W8KV4, 긴 텍스트에서는 W8KV8이 권장된다. 

  2. Emergent abilities
    Emergent Abilities 중 Multi-Step Reasoning(수학적 추론)과 Self-Calibration(자기 교정)은 양자화에 매우 민감하고, 특히 작은 모델에서 성능 손실이 크다. 반면 Instruction-Following(지시 따르기)와 In-Context Learning(문맥 학습)은 양자화에 더 강한 내구성을 보였다.
    작은 모델(<13B)의 경우 W8, W8A8, KV8이 권장되고 큰 모델의 경우 W4, W4A8, KV4로도 성능 손실이 거의 없다.

  3. trustworthiness
    작은 모델(<7B)에서는 W3(Weight 3-bit Quantization)은 질문에 더 집중하게 만들어 더 솔직하고 자세한 답변을 제공하고, KV3(Key-Value cache 3-bit Quantization)이 답변을 회피하거나 제한적인 답변을 하게 되었다.  큰 모델(>=7B)의 경우 비트폭이 너무 낮아지면 성능이 전반적으로 떨어졌다. 
    따라서 작은 모델의 경우 W8, KV8 같은 높은 비트 폭이 권장되고, 큰 모델의 경우 W4와 KV4를 사용한 양자화가 가능하다.

  4. dialogue
    KV Cache 양자화는 Weight 양자화보다 대화 능력 손실이 적다. 
    낮은 비트폭에서는 문장을 반복하는 경향이 나타나고 더 낮은 비트폭에서는 대화 능력을 상실하며 의미 없는 기호나 단어를 반복 생성한다. 
    대부분의 모델에서 양자화는 대화의 첫 번째 턴과 두 번째 턴에 비슷한 영향을 미쳤지만 KV8에서 KV3으로 양자화한 LLaMA2-13B는 두 번째 턴에서의 성능 감소가 더 크게 나타났다. 
    W4A4로 양자화한 경우, SmoothQuant가 일부 모델의 대화 능력을 복구했다.

  5. long-context tasks
    긴 텍스트는 양자화에 더 민감하며 특히 Weight-only와 KV Cache Quantization에서 성능 손실이 크다. 양자화의 영향을 많이 받는 긴 텍스트 작업에서는 높은 비트폭을 유지해야 한다. 짧은 텍스트(<4K)의 경우 W4, W4A8, KV4가 권장되며 긴 텍스트의 경우 W4, W4A8, KV8이 권장된다.

 

 

굉장히 실용적인 논문인 것 같다. Task 별로, 모델 별로, 양자화 별로 등등 분류도 굉장히 세분화되어 있어서 어떤 모델에 양자화를 적용하고자 할 때, 어떤 기법을 선택할지에 대해 좋은 지표가 될 것 같다.

 

728x90
반응형