SK Networks Family AI bootcamp 강의노트

52일차 [ Fine-tuning/ Prompt, Quantization,GGUF, PEFT ]

HyunJung_Jo 2025. 4. 1. 17:09

💡 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이 빵빵하게 돌아가서였겠지... 🤔