Quantized Llama 3.2 1B/3B 모델 소개
Meta는 새로운 양자화된 Llama 3.2 모델(1B 및 3B 버전)을 공개하여 AI를 모바일 장치와 같은 제한된 리소스 환경에서도 효율적으로 실행할 수 있도록 했습니다. 이 모델들은 기존의 Llama 모델과 동일한 품질과 안전성을 유지하면서도, 모델 크기를 평균 56% 줄이고 메모리 사용량을 41% 절감하였습니다. 특히 양자화 인지 학습(QAT) 및 SpinQuant와 같은 기술을 사용해 성능과 효율성을 높였으며, 퀄컴과 미디어텍과의 협력을 통해 주요 SoC에 최적화되었습니다.
이러한 경량화 덕분에 더 빠르고 효율적인 모바일 장치 기반 AI 경험을 가능하게 하며, 사용자 데이터를 장치 내에서 처리하여 프라이버시와 실시간 반응성을 크게 개선하였습니다
양자화 설정 (Our Quantization Setup)
Meta의 현재 양자화 설정은 PyTorch의 ExecuTorch 추론 프레임워크와 Arm CPU 백엔드를 염두에 두고 설계되었으며, 모델 품질, 프리필 및 디코딩 속도, 메모리 사용량 등의 다양한 지표를 고려하여 최적화되었습니다. 이 양자화 설정은 다음 세 가지 주요 요소로 구성됩니다.
-
트랜스포머 블록 내 선형 계층: 모든 트랜스포머 블록의 선형 계층의 가중치는 그룹 크기 32를 가진 4비트 그룹 방식으로 양자화되며, 활성화는 8비트 동적 양자화(per-token dynamic quantization)로 처리됩니다. 이러한 설정은 메모리 효율성과 정확성을 동시에 유지하기 위해 설계되었습니다.
-
분류 계층: 분류 계층은 가중치를 위해 8비트 per-channel 방식으로 양자화되고, 활성화는 8비트 per-token 동적 양자화가 적용됩니다. 이는 모델의 최종 출력 계층에서 요구되는 높은 정확도를 보장하면서 메모리 효율성을 확보하는 방식입니다.
-
임베딩 계층: 임베딩 계층의 경우 8비트 per-channel 방식으로 양자화하여 메모리 사용량을 줄이면서도 정확한 결과를 유지하도록 했습니다.
이와 같은 양자화 구성은 ExecuTorch와 ARM CPU 아키텍처에 최적화되어 있으며, 다양한 애플리케이션에 걸쳐 효율적이고 빠른 추론을 제공할 수 있습니다.
2가지 주요 양자화 기술 (Quantization Technique): QAT와 SpinQuant
Meta는 두 가지 주요 양자화 기법인 양자화 인지 학습(QAT; Quantization-Aware Training)과 사후 학습 양자화(SpinQuant) 기법들을 활용하여 Llama 모델을 경량화했습니다:
양자화 인지 학습(QAT, Quantization-Aware Training)과 로라 어댑터(LoRA Adapter)
Meta는 Llama 3.2 모델의 양자화 인지 학습(QAT, Quantization-Aware Training)을 통해 저정밀 환경에서도 최적의 성능을 발휘하도록 양자화의 효과를 학습 과정에서 시뮬레이션합니다. 이를 위해 초기 BF16 형식으로 학습된 Llama 3.2 모델 체크포인트를 활용하여, 감독 하에 미세 조정(Supervised Fine-Tuning, SFT)을 수행합니다. QAT를 초기화한 후, 전체 모델을 다시 SFT로 학습한 다음, QAT 모델의 주요 구조(백본)를 고정(freeze)합니다. 이후 로라 어댑터(LoRA, Low-Rank Adaptation)를 모든 트랜스포머 블록 레이어에 적용해 다시 한 번 SFT를 진행합니다. 이 과정에서 로라 어댑터의 가중치와 활성화는 BF16 형식으로 유지됩니다
이 접근법은 양자화 후 LoRA 어댑터를 적용하는 방식으로 QLoRA(Quantization + LoRA)라 불리며, 최종적으로 직접 선호 최적화(Direct Preference Optimization, DPO)를 사용해 백본과 로라 어댑터를 모두 미세 조정합니다. 이 결과, BF16 모델과 비교하여 경쟁력 있는 정확도를 유지하면서도 유사한 속도와 메모리 효율성을 갖춘 고효율 모델이 완성되었습니다.
Meta는 이러한 QAT를 위해 torachao API를 활용하였으며, 개발자는 이를 기본 모델로 사용하여 LoRA를 통해 Llama 모델을 맞춤형 용도로 더욱 효율적으로 미세 조정할 수 있으며, 시간과 계산 비용을 절감할 수 있습니다.
사후 학습 양자화(SpinQuant)
앞서 설명한 QAT 기법은 가장 정확한 결과를 제공하지만, 일부 사용자는 미세 조정된 1B 및 3B 모델을 다른 하드웨어에 맞추어 다양한 양자화 설정으로 적용하기를 원할 수 있습니다. 이를 위해 Meta는 최첨단 사후 학습 양자화(post-training quantization) 기법인 SpinQuant을 적용한 모델과 방법론을 추가로 제공하고 있습니다.
SpinQuant는 QAT + LoRA 방식보다 정확도가 낮을 수 있지만, 접근성 면에서 큰 장점이 있습니다. 특히 학습 데이터셋이 필요하지 않아 데이터 접근이 어려운 경우나 계산 리소스가 제한된 환경에서 유리합니다. SpinQuant는 훈련 데이터를 요구하지 않으므로, 보안상의 이유로 데이터가 비공개되어 있는 상황에서도 활용할 수 있습니다. 개발자는 오픈소스 저장소에서 ExecuTorch 및 Llama Stack과 호환되는 SpinQuant를 통해 자신이 미세 조정한 Llama 모델을 다양한 하드웨어 및 애플리케이션에 맞춰 양자화할 수 있습니다.
실험에서 Meta는 WikiText라는 작은 보정 데이터셋을 활용하여 SpinQuant에서 회전 행렬(rotation matrices)을 학습하였습니다. 이 행렬은 이상치를 완화하고 양자화의 효율성을 높이는 데 도움을 줍니다. 이후 양자화의 범위 설정 및 생성적 사후 학습 양자화(generative post-training quantization)와 같은 최적화 기법을 적용하여, SpinQuant 행렬을 QAT + LoRA와 유사한 양자화 방식에 맞춰 최적화했습니다
성능 결과
Meta는 Android OnePlus 12에서 다음과 같은 성능 향상을 확인했습니다:
- 지연 시간 감소: 디코드와 프리필의 지연 시간이 각각 2.5배, 4.2배 감소했습니다.
- 메모리 및 크기 절감: 모델 크기는 평균 56% 감소했고, 메모리 사용량은 41% 줄어들었습니다.
- 장치 호환성: ARM 기반 CPU에서 최적화된 성능을 제공하며, iOS 장치에서도 유사한 정확성을 확인하였습니다
Meta의 출시 공지 블로그
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~