스킬캠퍼스

오늘 끝나면

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 — 기업 도입 수요 최고

모델

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

손실

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