본문으로 건너뛰기

파인튜닝과 LoRA (기술 심화)

:::note 전제 04. 어떻게 학습되나와 09. 파인튜닝 vs RAG의 큰 그림 위에서, 이 문서는 파인튜닝이 실제로 가중치를 어떻게 바꾸는지, 그리고 왜 LoRA가 효율적인지를 다룹니다. :::

1. 파인튜닝이란 — 가중치 갱신​

사전학습된 모델의 가중치 W를, 새 데이터의 손실을 줄이도록 경사하강법으로 조정하는 것입니다.

W_new = W - η · ∇W(Loss) # η: 학습률, ∇: 기울기

전체 파인튜닝(Full fine-tuning) 은 모든 파라미터를 갱신합니다. 문제:

  • 70B 모델이면 수백 GB의 옵티마이저 상태·기울기 저장 → 막대한 GPU 메모리
  • 태스크마다 전체 모델 사본이 생김 → 저장·배포 부담

2. PEFT — 일부만 효율적으로​

PEFT(Parameter-Efficient Fine-Tuning) 는 소수의 파라미터만 학습해 비용을 줄입니다. 대표가 LoRA입니다.

3. LoRA (Low-Rank Adaptation)​

핵심 아이디어: 가중치 변화량 ΔW가 사실 저차원(low-rank) 으로 근사된다는 관찰.

원래 가중치는 그대로 얼리고(freeze), 변화량만 두 개의 작은 행렬 곱으로 학습합니다.

기존 : h = W · x # W: d×d (고정)
LoRA : h = W · x + (B · A) · x # A: r×d, B: d×r, r ≪ d
ΔW = B · A (rank = r, 예: r=8,16)
  • 학습하는 건 A, B뿐 → 파라미터가 수백 분의 1~수천 분의 1
  • 추론 시 B·A를 W에 합쳐(merge) 추가 지연 없이 사용 가능
  • 초기화: A는 랜덤, B는 0 → 학습 시작 시 ΔW=0(원모델과 동일)에서 출발

왜 되는가: 특정 태스크 적응에 필요한 "방향"은 전체 차원이 아니라 몇 개의 저차원 부분공간이면 충분하다는 것.

4. QLoRA — 양자화 + LoRA​

더 적은 메모리로:

① 기반 모델을 4비트로 양자화(NF4)해 메모리 ↓
② 그 위에 LoRA 어댑터(고정밀)만 학습
→ 단일 GPU에서도 수십B 모델 파인튜닝 가능

5. 비교​

방식학습 파라미터메모리특징
Full FT전체(100%)매우 큼최대 성능, 비용 큼
LoRA0.11%작음어댑터만 저장·교체, 가성비
QLoRA0.11%가장 작음양자화로 단일 GPU 가능

:::tip 어댑터의 장점 태스크별로 작은 어댑터 파일(수 MB~수백 MB)만 저장·교체하면 됩니다. 하나의 기반 모델에 여러 어댑터를 갈아끼우는 운영이 가능합니다. :::

6. 언제 파인튜닝인가 (vs RAG·프롬프트)​

목적적합
최신·내부 "지식" 주입RAG (심화)
형식·말투·태스크 "행동" 고정파인튜닝
가벼운 조정프롬프트/few-shot

→ 지식은 RAG, 행동은 파인튜닝이 일반 원칙. 둘을 함께 쓰기도 합니다.

7. 정렬(Alignment) 학습 — 한 줄​

사전학습 후 모델을 "지시를 잘 따르고 안전하게" 만드는 단계:

  • SFT(지도 미세조정) → RLHF(사람 선호 기반 강화학습) 또는 DPO(선호쌍 직접 최적화)

8. 요약​

Full FT : W 전체 갱신 (비쌈)
LoRA : W 고정 + ΔW=B·A (저차원)만 학습 (가성비)
QLoRA : 4비트 양자화 + LoRA (단일 GPU)