💡 LLM 경량화 개념 총정리 | GGUF, PEFT, Quantization, Prompt Tuning 완전 정복
모델 파인튜닝이 부담스러웠다면, 이제는 프롬프트만 바꿔도 됩니다.
또, 무거운 LLM을 가볍게 만드는 경량화 기술들도 정리해볼게요!
✅ Prompt Tuning (프롬프트 튜닝)
모델 자체는 건드리지 않고, 입력에 가상의 학습 토큰만 추가해서 모델 성능을 끌어올리는 방식입니다.
- 파라미터를 거의 학습하지 않기 때문에 매우 가벼움
- 기존 모델을 유지하면서도, 특정 태스크에 최적화 가능
- 대표 기법: Prefix Tuning, P-Tuning, Prompt Tuning
📎 관련 Colab
👉 Prompt Tuning 실습
✅ Quantization (양자화)
"정밀도를 약간 희생하고, 성능을 대폭 올리자!"
양자화는 모델의 연산을 float (부동소수점) → int (정수) 로 바꾸어
모델 용량과 연산량을 확 줄이는 기법입니다.
✔️ 주요 효과
- 모델 크기 ↓
- 추론 속도 ↑
- 메모리 사용량 ↓
- 정밀도는 살짝 떨어질 수 있음
✔️ 예시
- float32 → int8 변환
- 지수와 가수 부분을 버리고 정수 연산만 사용
📎 관련 Colab
👉 Quantization 실습
📌 참고: 최근 PEFT 기법들과 GGUF 포맷에서는 양자화가 이미 적용된 모델들도 많이 사용됩니다.
✅GGUF (GPT-GGML Universal Format)
GGUF는 LLM을 가볍게 만들어주는 모델 저장 포맷입니다.
llama.cpp, text-generation-webui처럼 CPU나 저사양 GPU에서도 모델을 실행할 수 있게 해주는 도구에서 주로 사용돼요.
🧩 특징
- 다양한 정밀도 지원: fp32, fp16, int8, int4 등
- 로딩 속도가 빠르고, 메모리 효율적
- 모바일, 로컬 PC 환경에서 사용 적합
- llama.cpp 기반 툴에서 필수적으로 사용됨
📎 관련 Colab
👉 GGUF 실습
👉 Hugging Face: GGUF 모델 모음 (unsloth)
✅ PEFT (Parameter-Efficient Fine-Tuning)
"모델 전체 말고, 필요한 부분만 훈련하자!"
PEFT는 전체 모델을 학습하는 대신, 일부 파라미터만 훈련시키는 파인튜닝 기법입니다.
💡 대표 기법들
1. LoRA (Low-Rank Adaptation)
- 모델의 weight matrix에 low-rank 보조 행렬 추가
- 학습 파라미터 수 ↓
- 속도와 메모리 사용 효율 ↑
2. Prompt/Prefix Tuning
- 입력값 앞에 학습된 가상 토큰 추가
- 모델 구조는 그대로 유지됨
3. QLoRA, AdaLoRA
- LoRA의 변형으로, 더 적은 자원으로 더 높은 성능을 목표
- QLoRA는 양자화된 모델에 LoRA 적용 → 고효율
📎 관련 Colab
👉 PEFT 실습
⚙️ LoRA 설정 팁
- lora_r: 작을수록 메모리 사용 ↓ / 클수록 성능 ↑
- lora_alpha: 일반적으로 r보다 작게 설정 (과적합 방지)
🔁 GGUF + PEFT 같이 쓰기?
가능합니다!
PEFT로 튜닝한 모델을 다시 GGUF 포맷으로 변환하면,
튜닝된 성능 + 경량화된 실행이 모두 가능해요.
예: QLoRA → GGUF 변환
📌 핵심 요약
GGUF | 경량화된 모델 저장 포맷 (실행용) |
PEFT | 일부 파라미터만 학습하는 파인튜닝 기법 (학습용) |
Quantization | 연산을 float → int로 바꾸어 속도 및 메모리 최적화 |
Prompt Tuning | 프롬프트 앞에 가상의 입력 토큰을 추가하여 학습 |
✍️ 마무리 생각
면접 때 그렇게 많이 들었던 양자화, 경량화…
“결국 이런 거였구나!”
그런데 왜 회사에서는 이런 걸 안 했을까?
아마도 A100이 빵빵하게 돌아가서였겠지... 🤔
'SK Networks Family AI bootcamp 강의노트' 카테고리의 다른 글
54일차 [ LLM 평가지표/Langchain Prompt/ Fine-Tuning 실습 ] (0) | 2025.04.03 |
---|---|
53일차 [ RLHF(강화학습)/ DPO/PPO ] (0) | 2025.04.02 |
51일차 [ Fine Tuning ] (0) | 2025.03.31 |
50일차 [ huggingface trainer / SFT training/ postgresql ] (0) | 2025.03.28 |
48일차 [ HuggingFace model ] (1) | 2025.03.27 |