A Comprehensive Study on Quantization Techniques for Large Language Models

0. 읽은 이유

양자화에 대한 기본적인 이해를 얻기 위해


1. 논문 정보


2. 서론

  • 연구 배경 및 중요성: 지금의 llm과같은 ai는 너무나 거대하다. 이것은 거대한 컴퓨팅 파워, 막대한 에너지를 요구하기에 iot, 임베디드, 모바일등에 이식하기 어렵다. 그렇기에 이것을 해소하기위한 양자화에 대한 포괄적인 정리를 해보고자 한다.
  • 주요 연구 질문 또는 목표: 양자화는 무엇이며 어떤 방식들이 있나.
  • 리뷰어의 첫인상 (간략 요약): 레포트같은 느낌의 글

3. 본론

3.1 내용 요약

양자화는 반올림같은거다. 모델에 있는 가중치를 FF32 -> INT8로 바꾸는것 (8비트 양자화) 처럼 아에 변수의 크기 자체를 줄여 용량을 줄이고, 계산을 용이하게 하는 기법이다.

방법론
  1. Range Mapping
    1. 그러니까 양자화를 얼만큼 할거냐, 8비트 양자화 에서 8비트가 이거
    2. Affine Quantization
      1. 원본 파라미터 W를 양자화된 Wq로 바꾸는 고전적 방식
      2. img
      3. S => 스케일링 펙터, Z => 제로포인트 , b = 비트수, α,β = 수 표현 범위
    3. Scale Quantization
      1. img
      2. img
      3. 제로포인트가 없다. 그렇기 때문에 원래의 x와 같이 0이 제로포인트고, 수의 범위도 α, -α 이다.
  2. Quantization Granularity
    1. 위에서의 제로포인트, 스케일링 펙터를 양자화 파라미터 라고 하고, Quantization Granularity는 어떻게 범위를 나누어 양자화 파라미터를 적용할지이다.
    2. Per-layer Quantization
      1. 레이어 별로 다른 양자화 파라미터 / 같은 레이어는 같은 양자화 파라미터를 공유한다.
      2. 성능이 많이 떨어진다.
    3. Per-channel Quantization
      1. 채널별로 다른 양자화 파라미터
      2. 채널이란 CNN에서 많이 쓰는 용어인것같은데, 쭈욱 같이 계산하게 되는 원소들의 묶음이라고 보면 될것같다.
      3. 성능은 당연 Per-layer보다 앞서지만, 계산의 복잡도가 증가한다.
  3. Quantization Calibration
    1. 양자화를 하게 되면, 수의 표현볌위가 줄어듦에따라 자연스럽게 가중치가 조정되는데, Quantization Calibration은 이 조정이 일어나기 전에, 최적의 값 범위를 찾는다(좀 더 자세하면 좋을텐데 뭘 찾는건데)
    2. Global Calibration
      1. 전체 데이터의 최대값과 최소값을 사용하여 단순하게 변환하지만 정확도가 떨어질 수 있다.
    3. Max Calibration
      1. 실제 데이터의 최대값을 사용하여 양자화 손실을 완화한다.
    4. KL Divergence Calibration
      1. 원본 데이터와 양자화된 데이터의 분포 차이(KL 발산)를 최소화하는 스케일링 팩터를 찾아 정보 손실을 줄인다.
    5. Percentile Calibration
      1. 데이터 분포의 특정 백분위수(예: 99.99% 또는 99.999%)를 기준으로 범위를 좁혀 양자화 성능을 향상시킨다.
  4. Quantization Techniques
    1. Post-Training Quantization, PTQ
      1. 훈련이 끝난 모델을 가지고 양자화를 한다.
        1. 동적: 모델을 사용할때 양자화
        2. 정적: 미리 양자화를 해놓고 저장.
    2. Quantization-Aware Training, QAT
      1. 가상으로 양자화를 하고, 학습을 진행해서 모델이 양자화에 적응하도록 하는 방법.
      2. 양자화가 된것처럼 값을 제한하고(실제로는 높은 정밀도) 변형한 뒤, 트레이닝데이터를 그대로 사용하여 학습시킨다.
      3. 그렇게 모델이 가상으로 양자화된 값을 가지게 되면, 그 다음에 양자화한다.
    3. Weight Quantization
      1. 가중치만 양자화하고 활성화한수 값은 원래 정밀도를 유지한다.
    4. Activation-Aware Weight Quantization, AWQ
      1. 활성화 크기를 기반으로 중요한 가중치를 식별하여 전체 정밀도로 유지하고, 덜 중요한 가중치만 양자화하여 정확도 손실을 최소화하면서 계산 비용을 낮춘다.
    5. Attention-Aware Weight Quantization
      1. 헤시안 트레이스(?)를 사용하여 가중치 행렬의 중요도를 결정하고, 어텐션 점수에 따라 중요한 가중치는 높은 비트 정밀도로, 덜 중요한 가중치는 낮은 비트 정밀도로 할당하는 혼합 정밀도 방식을 사용한다.

LLM에서는 주로 PTQ와 QAT가 사용된다.

  • PTQ는 구현이 간단하고 배포가 빠르지만 상당한 정확도 손실이 발생할 수 있다.
  • QAT는 훈련 중 양자화를 시뮬레이션하여 모델이 낮은 정밀도에 적응하게 하므로 더 정확하지만, 추가훈련이 필요하다.
결론

다양한 양자화 기법의 성능은 양자화 정밀도에 따라 달라진다. GPTQ는 4비트 정밀도에서 최적의 성능을 보이지만 3비트에서는 성능이 저하됩니다 LLM-QAT는 특정 혼합 정밀도 설정(예: 4비트 가중치, 4비트 KV 캐시, 8비트 활성화)에서 더 나은 정확도를 보여준다. 따라서 양자화 기법의 성능을 최대화하기 위해 적절한 정밀도 설정을 신중하게 선택해야 합니다.

3.2 강점 분석

  • 솔직히 별로.. 인터넷에서 긁어모을수 있는 지식의 나열이고, 자세하지도 않고, 연구도 없고, 제일 연구처럼 보이는 파트는 다른 논문에서 긁어온거다
  • 그나마 좋은점은, 기본적인 지식이 없는상태에서 읽었을때 이런게 있구나 하고 훝어보기엔 좋다.

3.3 약점 및 개선점 분석


4. 결론

  • 이게 어떻게 올라갔지