모델 양자화(Quantization)

LLM을 공부 중 모델 양자화(Quantization)의 개념 정리차원에서 나열해 봄(추후 추가 업데이트 예정). 개인적으로는 양자화라는 번역이 어색한데, 많은 분들이 그렇게 사용하고 계시기에 일단 양자화로 명시해봅니다.^^


  1. 양자화(Quantization)란?

    • 단순하게 모델의 가중치의 단위를 줄여 모델 크기와 연산 속도를 줄이는 것, lower precision bits로 매핑하는 것

    • LLM이 화제 되기 전에도 이미 모델의 complexity 나 cost를 줄이고자 하는 노력의 일환으로 연구되던 분야

    • 추론 단계에서 LLM의 시간 및 공간 비용을 줄이기 위해 사용. Not. 학습시간

    • 모델 성능에 약간의 손실이 있더라도 양자화된 언어 모델은 모델 크기가 작고 추론 속도가 빨라질 수 있음

    • LLM은 computational latency보다는 runtime memory overhead가 큼

    • 양자화 모델: INT8, INT4, BLOOM17, GPT-J18 , GLM19

** 양자화가 무조건 좋은 것은 아니다, 항상 성능 저하를 염두해야한다.


  1. 양자화 유형

    • Uniform vs non-uniform

      • Uniform quantization은 말 그대로 quantization level이 uniformly spaced 즉 stepsize 동일. input에 대해 output으로 변환 시 output의 값들의 차이가 uniform

      • Non-uniform은 output 값이 소숫점으로 서로 scale 차이가 일정하지 않음. 일반적으로 non-uniform이 좀 더 quantization error가 적은 편

    • Symmetric vs asymmetric

      • 둘 간의 차이는 fixed offset의 유무

      • Symmetric: offset 무, output value의 range를 정하는 min, max값이 절대값은 동일하되 부호만 다를 경우

      • Asymmetric: offset 유, output value의 range를 정하는 min, max값의 부호 동일


  2. 양자화 기법

    • 학습 후 양자화(PTQ:Post-Training Quantization)

      • Network가 학습된 이후에 scaling해주는 방식. weight, activation의 scale은 원래 데이터셋의 activation distribution, weight distribution 기반 디자인 됨

      • 이미 학습된 모델의 가중치를 재학습할 필요 없이 더 낮은 정밀도로 변환하는 간단한 기법. 구현하기는 쉽지만 PTQ는 잠재적인 성능 저하와 관련 있음

      • 오픈소스형 LLM들을 PTQ 방식으로 양자화하여 상황에 맞게 사용

    • 양자화 인식 훈련(QAT:Quantization-Aware Training)

      • Network를 완전히 학습시킨 뒤, Quantize(Q), Dequantize(DQ) 노드를 추가해서 학습이 완료된 모델에 epoch를 추가하는 방식처럼 추가학습(further training)

      • 학습 단계에서 미리 inference 시에 양자화했을 때의 loss를 simulation해볼 수 있기 때문에 PTQ보다는 정확도가 좋은 편

      • 사전 훈련 또는 미세 조정 단계에서 가중치 변환 프로세스를 통합하여 모델 성능을 향상시. QAT는 계산 비용이 많이 들고 대표적인 훈련 데이터 필요

      • LLM을 개발하는 쪽에서 더 많이 사용하는 방식


  3. GPTQ

    • LLM 모델을 쉽게 양자화 해주는 패키지

    • GPTQ: https://github.com/IST-DASLab/gptq

    • KoAlpaca GPTQ: https://github.com/qwopqwop200/GPTQ-for-KoAlpaca

    • kullm(고려대 NLP연구소에서 오픈소스로 기여한 LLM) :https://github.com/jongmin-oh/korean-LLM-quantize

    • Kullm GPTQ: https://huggingface.co/j5ng/kullm-12.8b-GPTQ-8bit


참고]

  • 거대언어모델(LLM)의 현주소

  • Quantization 

  • [LLM]. 한국어 LLM 모델 GPTQ로 양자화 하기 (feat. koalpaca, kullm

  • Introduction to Weight Quantization

  • 4-bit Quantization with GPTQ

[LLM]. 한국어 LLM 모델 GPTQ로 양자화 하기 (feat. koalpaca, kullm)

velog.io

[LLM]. 한국어 LLM 모델 GPTQ로 양자화 하기 (feat. koalpaca, kullm)

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 10월 17일 오전 11:07

 • 

저장 31조회 2,263

댓글 0

    함께 읽은 게시물

    < 스타벅스 컵홀더의 손글씨가 말했다: 결국은 사람이다 >

    1

    ... 더 보기

    불확실성이 지속되고 있다. 이제는 너무도 익숙한 상황이다. 이러한 상황을 표현한 ‘영구적 위기(Permacrisis)’라는 단어가 있다. 2022년 영국 콜린스 사전에 등재된 단어다.

    ... 더 보기

    회사가 어려울수록 직원에게 투자해야 하는 이유[김광진의 경영 전략]

    magazine.hankyung.com

     회사가 어려울수록 직원에게 투자해야 하는 이유[김광진의 경영 전략]

    조회 328


    이력서에 쓰는 경험

    

    ... 더 보기

    무기가 되는 일터의 질문들 (ft.마케터 숭 인터뷰)

    ... 더 보기

    사용자가 공유한 콘텐츠

    www.folin.co

    사용자가 공유한 콘텐츠


    주말에는 가급적 시의성이 있는 기사보다는 생각할만한 거리를 찾아서 공유하고 있는데 아래에 개발을 제외한 스타트업 주요 직무에 대해 잘 정리된 글이 있어 공유합니다.

    ... 더 보기

    전략컨설턴트를 위한 스타트업 직무 가이드 - Givers Alliance

    와이즈앱·리테일

    전략컨설턴트를 위한 스타트업 직무 가이드 - Givers Alliance