스킬캠퍼스
Day 21 · Fine-tuning & RAG
강의

오늘 끝나면

Fine-tuning & RAG

  • Fine-tuning & RAG의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 Fine이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

LoRA·QLoRA·RAG — 기업 도입 수요 최고 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

AI · Day 21 / 실무

모델에 지식을
넣는 두 가지 길

범용 LLM을 "우리 회사의 뇌"로 만드는 길은 둘임.
Fine-tuning(LoRA·QLoRA)은 가중치를 바꾸는 것.
RAG는 모델 밖 지식을 검색해 넣는 것.
오늘은 둘 다 바닥부터 조립함. 뭘 제안할지 고르는 프레임까지 챙김.

P.01AI · Day 21

회사 규정을 모르는 GPT

한 금융사가 사내 챗봇을 GPT-4로 만듦.
첫날 임원이 물음. "우리 퇴직연금 DC형 수수료 얼마지?"
GPT가 존재하지 않는 수수료율을 자신만만하게 답함.
챗봇은 그날로 신뢰 잃음.

이유는 단순함. 모델이 그 회사 규정을 배운 적이 없음.

범용 LLM엔 치명적 한계 셋임.
도메인 용어 모름.
학습 컷오프 이후 모름.
모르면 그럴싸하게 지어냄.

왜 지어냄?
LLM은 P(다음 토큰 | 앞 토큰)만 최대화함.
사실을 검증하는 회로가 없음.
학습 분포를 따라갈 뿐 진실의 분포는 안 따름.

그래서 해법도 두 갈래임.
가중치에 박아넣기(Fine-tuning).
생성 시점에 주입하기(RAG).

Q. 가장 먼저 던져야 할 의사결정 질문은?"이건 스타일 문제임, 지식문제임?" 톤·포맷·JSON 출력 같은 형식이면 Fine-tuning. 최신 정보·사내 문서·사실 정확도면 RAG. 둘 다면 Hybrid.
PRE-TRAINED의 3가지 한계
Pre-trainedLLM도메인내부 용어·공정·약관을 모름최신성학습 컷오프 이후 = 깜깜환각모르면 자신 있게 지어냄

세 한계의 해법 = 가중치에 박음(FT) 또는 생성 때 주입함(RAG)

P.02AI · Day 21

LoRA — 100배 싸게 튜닝

2020년, GPT-3(175B) 나옴.
기업들 "우리 도메인에 맞게 튜닝하자"며 들썩임.
근데 현실은 A100 80GB 16장에 수천만 원. 거의 불가능이었음.

2021년, Microsoft가 던진 통찰은 한 줄임.
"학습으로 생기는 가중치 변화 ΔW는 본래 저차원이다."

그래서 거대한 W는 통째로 얼림.
작은 두 행렬의 곱으로 변화만 학습함. W' = W + B·A.
A는 가우시안, B는 0으로 초기화함.
그래서 처음엔 모델이 그대로임.

숫자로 보면 충격적임.
d=k=4096, r=8이면 Full은 1,677만 개를 학습함.
근데 LoRA는 65,536개뿐. 약 256배, 즉 0.39%만 건드림.
그래도 성능은 거의 같음.

실제로 대기업 HR 챗봇 견적이 1억 2천만 원이었음.
LoRA로 1,200만 원까지 떨어진 적 있음.

W' = W + B·A (rank r)
Wfrozen4096×4096+Bd×r·Ar×kFull ΔW16,777,216LoRA (r=8)65,536약 256배 ↓

거대한 W는 얼림, 작은 B·A만 학습함 — 0.39%로 거의 같은 성능

P.03AI · Day 21

QLoRA — GPU 한 장의 시대

2023년 5월, Tim Dettmers의 QLoRA 논문이 커뮤니티를 뒤집음.
"LLaMA 65B를 A6000 48GB 한 장에서 튜닝 가능."
전엔 최소 8장 필요했던 일임.

비결은 셋임.

4bit NF4는 정규분포 분위수에 16레벨을 배치하는 것.
신경망 가중치가 정규분포 모양이라, 균등 int4보다 손실이 적음.

Double Quantization은 양자화 스케일 값마저 다시 양자화하는 것.

Paged Optimizer는 메모리가 튈 때만 CPU로 페이징하는 것.
이걸로 OOM을 막음.

결과적으로 7B 튜닝 VRAM이 약 120GB에서 약 15GB로 내려감.
RTX 3090·4090 같은 소비자급 한 장이면 충분함.
클라우드를 못 쓰는 금융·공공도 이제 서버룸 GPU 한두 장으로 자체 LLM을 가질 수 있게 됨.

파이썬 코드 보기
# QLoRA 핵심 세팅 (bitsandbytes)
cfg = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",        # 정규분포 4bit
    bnb_4bit_use_double_quant=True,   # 스케일도 양자화
    bnb_4bit_compute_dtype="bfloat16",
)
# optim="paged_adamw_8bit"  -> gradient spike만 페이징
VRAM: 120GB → 15GB
7B 메모리FullLoRAQLoRA
Base Model28GB14GB4GB
Gradients28GB0.2GB0.2GB
Optimizer56GB0.4GB0.4GB
Activations10GB10GB10GB
합계약 120약 25약 15

RTX 3090·4090(24GB) 한 장으로 7B 튜닝됨 — 단일 GPU의 시대

P.04AI · Day 21

RAG — 외우지 말고 찾게 하자

2020년, Meta의 Patrick Lewis 팀이 발상을 뒤집음.
"모델이 다 외우게 하지 말고, 필요할 때 찾아보게 하자."
사람이 검색하고 요약하듯 LLM에 retrieval 단계를 붙인 거임.

파이프라인은 이렇게 흐름.
문서를 잘게 자름(Chunking).
벡터로 임베딩해 Vector DB에 넣음.
질문이 오면 코사인 유사도로 후보를 검색(Retrieval)함.
Reranker로 정밀하게 추림.
그 근거만 넣어 LLM이 답함.

그래서 환각 줄고, 최신성 생기고, 근거(citation)까지 붙음.

RAG 품질의 80%는 Chunking과 Reranking에서 나옴.
모델 바꾸기 전에 이 둘부터 튜닝할 것.

Retrieval은 Recall 위해 느슨하게 top-20 뽑음.
Reranker가 Precision 위해 top-3로 좁힘.
이 분업이 정석임. Reranker만 더해도 faithfulness가 10~20%p 오름.

Q. exact match가 중요할 땐 무엇을 더하나요?제품 코드·사번·법조문 번호처럼 정확한 토큰이 핵심이면 Hybrid Search(BM25 키워드 + Vector 의미)가 Vector 단독보다 월등함.
RAG 검색 시뮬레이터
RAG 검색 시뮬레이터 · 질문→임베딩→검색→재정렬→근거 주입
질문 (코사인으로 청크와 매칭)
Retrieval top-k (느슨하게 후보)5
코사인 유사도 — ■=검색됨(top-k), ★=최종 근거(LLM 주입), 파랑=정답
DC형 퇴직연금 운용 수수료는 연 0.4%다.
1.00
퇴직연금 DB형은 회사가 운용 위험을 진다.
0.81
급여는 매월 25일에 지급된다.
0.22
해외 출장비는 등급별 일비로 정산한다.
0.16
교육비는 연 100만 원까지 지원된다.
0.08
·
신규 채용은 분기마다 공고를 낸다.
0.01
·
연차 휴가는 입사 1년 후 15일 부여된다.
0.00
·
사내망 접속은 2차 인증(OTP)이 필수다.
0.00
precision
33%
recall
100%
faithfulness
67%
LLM 답변 (최종 근거만 보고)
근거 [#1] 기반으로 답함. 인용: "DC형 퇴직연금 운용 수수료는 연 0.4%다."
Reranker를 끄고 top-k를 키워보면: 노이즈 청크가 LLM에 같이 들어가 환각 위험이 오름. 청크를 크게 자르면 정답이 무관 문장과 섞여 점수가 희석됨. 품질의 80%가 왜 Chunking·Reranking에서 나오는지 손으로 만져짐.
P.05AI · Day 21

언제 무엇을 쓰나 — 황금률

황금률 한 줄.
"Fine-tuning은 모델의 성격을, RAG는 모델의 기억을 바꾼다."
성격은 자주 바꿀 일 아님. 근데 기억은 매일 업데이트됨.

그래서 대부분의 엔터프라이즈 프로젝트는 RAG로 시작함.

문서가 자주 바뀌는 사내 FAQ는 RAG.
브랜드 톤을 강제하는 마케팅 카피는 LoRA.
최신 판례 반영하며 법무 톤도 지켜야 하면 Hybrid.
클라우드를 못 쓰는 보안 극강 환경이면 QLoRA 온프렘 + 로컬 RAG.

마지막으로 "감"이 아니라 지표로 평가할 것.

Ragas의 세 숫자가 의사결정을 만듦.
faithfulness는 환각 여부.
context_precision은 검색 적절성.
context_recall은 누락 여부.

Q. LLaMA-2 7B를 RTX 3090(24GB) 한 장에서 튜닝하려면?QLoRA(NF4 4bit + LoRA r=16 + paged AdamW 8bit). 예상 VRAM은 약 10~15GB. batch size 2에 grad accumulation 4 정도 권함.
의사결정 매트릭스
요구FTRAGHybrid
최신 정보
환각 감소
말투·포맷
도메인 용어
구축 비용
업데이트몇 주즉시즉시

성격은 FT, 기억은 RAG — 대부분 RAG로 시작함, 필요하면 LoRA 얹음

3줄 요약

  1. 1LoRA·QLoRA·RAG — 기업 도입 수요 최고
  2. 2Fine-tuning & RAG은 준비운동 → 지도학습 → 시퀀스 → 생성모델 → 실무 적용 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

Fine

LoRA·QLoRA·RAG — 기업 도입 수요 최고

모델

입력을 받아 예측이나 출력을 만드는 계산 규칙

손실

예측이 정답에서 얼마나 빗나갔는지 재는 숫자