Skip to main content

파인튜닝 — LoRA, RLHF, PEFT

사전학습된 LLM을 특정 태스크나 도메인에 맞추는 기술


1. 파인튜닝이란

사전학습 모델(Base Model)은 범용적이지만 특정 태스크에 최적화되어 있지 않음. 파인튜닝은 소규모 태스크 데이터로 모델을 추가 학습하여 성능을 높이는 과정.


2. Full Fine-tuning vs PEFT

Full Fine-tuningPEFT (Parameter-Efficient)
학습 파라미터전체 (수십억~수조)0.1~1%만
GPU 메모리매우 많음 (A100 여러 대)적음 (단일 GPU 가능)
학습 시간길음✅ 짧음
성능최고Full의 90~95%
실전대기업/연구소✅ 대부분의 실무

3. LoRA (Low-Rank Adaptation)

3.1 핵심 원리

가중치 행렬 W를 직접 수정하지 않고, 저차원 분해 행렬(A, B)을 추가하여 학습.

기존: y = W · x           (W는 고정)
LoRA: y = W · x + B·A · x (A, B만 학습)

W: d×d 행렬 (예: 4096×4096 = 16M 파라미터)
A: d×r 행렬 (예: 4096×8 = 32K)
B: r×d 행렬 (예: 8×4096 = 32K)

r(rank) = 8이면 64K 파라미터만 학습 → 원래의 0.4%
항목설명
rank (r)저차원 크기. 보통 4~64. 클수록 표현력 ↑, 비용 ↑
alpha스케일링 팩터. 보통 rank의 2배
target modules어떤 레이어에 LoRA를 적용할지. Q, K, V, O 프로젝션이 일반적

3.2 QLoRA

LoRA + 양자화. 모델을 4-bit로 양자화한 상태에서 LoRA 학습.

  • 7B 모델을 **단일 24GB GPU(RTX 4090)**에서 파인튜닝 가능
  • 성능은 Full Fine-tuning의 90%+ 수준
  • 개인/소규모 팀의 실전 표준

4. 기타 PEFT 방법

방법원리특징
Adapter레이어 사이에 작은 네트워크 삽입LoRA 이전의 PEFT
Prefix Tuning입력 앞에 학습 가능한 가상 토큰 추가프롬프트 수준
Prompt TuningSoft Prompt를 학습가장 가벼움
LoRA저차원 분해 행렬 추가현재 표준

5. RLHF (Reinforcement Learning from Human Feedback)

5.1 왜 RLHF인가

SFT(Supervised Fine-tuning)만으로는 모델이 **"정확하지만 유해한 답변"**이나 **"형식은 좋지만 내용이 틀린 답변"**을 생성할 수 있음. RLHF는 인간의 선호도를 학습하여 더 유용하고 안전한 모델을 만듦.

5.2 RLHF 파이프라인

단계:

  1. SFT: 질문-답변 쌍으로 지시를 따르도록 학습
  2. Reward Model: 같은 질문에 대한 여러 답변을 인간이 순위 매김 → 보상 모델 학습
  3. PPO: 보상 모델의 점수를 최대화하도록 정책 최적화

5.3 DPO (Direct Preference Optimization)

RLHF의 단순화 버전. Reward Model과 PPO 단계를 건너뛰고, 선호도 데이터로 직접 모델을 최적화함.

RLHFDPO
단계SFT → RM → PPO (3단계)SFT → DPO (2단계)
복잡도높음 (PPO 불안정)✅ 낮음
성능높음RLHF와 유사
현재 추세연구/대기업실전 표준 전환 중

6. Instruction Tuning

"지시를 따르는 모델"을 만드는 파인튜닝. ChatGPT의 기반.

데이터 형태예시
(지시, 입력, 출력)("요약해줘", "긴 문서...", "요약 결과")
(질문, 답변)("파이썬 리스트 정렬 방법은?", "sorted() 또는...")

대표 데이터셋: Alpaca, Dolly, OpenAssistant, LIMA


7. 파인튜닝 데이터셋 구축

원칙설명
품질 > 양LIMA 논문: 1,000개 고품질 데이터로도 충분
다양성같은 유형 반복보다 다양한 태스크/난이도
일관성포맷과 스타일이 일관되어야 함
도메인 특화목표 태스크와 유사한 데이터가 가장 효과적

8. 파인튜닝 vs RAG vs 프롬프트 엔지니어링

파인튜닝RAG프롬프트 엔지니어링
비용높음 (GPU)중간 (Vector DB)✅ 낮음
지식 업데이트재학습 필요✅ DB 업데이트만프롬프트 수정
행동 변경✅ 가장 효과적제한적
도메인 특화약간
추천 순서3순위2순위1순위 (먼저 시도)

다음 글

Embedding & Vector DB


📝 참고 자료