
RAG vs Fine-tuning: AI에게 새로운 지식을 가르치는 두 가지 방법
ChatGPT에게 우리 회사 데이터를 알려주고 싶다면? RAG와 Fine-tuning, 2026년 실무에서 가장 많이 마주치는 이 선택지를 요리사 비유와 일러스트로 명쾌하게 정리합니다.

ChatGPT에게 우리 회사 데이터를 알려주고 싶다면? RAG와 Fine-tuning, 2026년 실무에서 가장 많이 마주치는 이 선택지를 요리사 비유와 일러스트로 명쾌하게 정리합니다.
ChatGPT에게 "우리 회사 3월 매출이 얼마야?"라고 물어본 적 있으신가요? 당연히 모릅니다. GPT든 Claude든, 이 모델들은 인터넷의 공개 데이터로 학습되었을 뿐, 여러분의 사내 문서, DB, 회의록은 본 적이 없습니다.
그러면 어떻게 해야 할까요? 2026년 현재, 이 질문에 대한 답은 크게 두 갈래로 나뉩니다:
이 글에서는 이 두 접근법을 요리사 비유로 쉽게 이해하고, 실전 사례와 논문을 통해 언제 무엇을 써야 하는지 판단력을 갖추는 것을 목표로 합니다.
RAG와 Fine-tuning을 이해하려면, 먼저 LLM(대규모 언어 모델)이 지식을 저장하는 방식을 알아야 합니다.
GPT나 Claude 같은 모델은 수조 개의 토큰(텍스트 조각)으로 사전 학습됩니다. 이 과정에서 모델은 지식을 파라미터(가중치) 안에 분산 저장합니다. "대한민국의 수도는?"이라고 물으면 "서울"이라 답하는 건, 어딘가에 "수도=서울"이라고 적혀 있어서가 아니라, 수십억 개의 가중치가 만들어내는 패턴에서 나오는 것입니다.
이것을 **파라메트릭 지식(Parametric Knowledge)**이라고 합니다.
문제는 이 지식에 세 가지 한계가 있다는 것입니다:
이 세 가지 문제를 해결하는 것이 RAG와 Fine-tuning의 존재 이유입니다. 같은 문제를 완전히 다른 철학으로 접근하죠.

Fine-tuning은 이미 학습된 모델(pre-trained model)을 추가 데이터로 재학습시키는 것입니다. 모델의 파라미터(가중치)를 직접 수정하여, 새로운 지식이나 행동 패턴을 모델 내부에 각인합니다.
요리사 비유로 말하면:
요리학교를 졸업한 셰프(사전 학습된 LLM)에게, 한식 전문 과정을 추가로 수료시키는 것입니다. 수료 후에는 레시피북 없이도 김치찌개를 끓일 수 있습니다. 레시피가 셰프의 몸에 배어있으니까요.
# Fine-tuning의 기본 흐름 (개념 코드)
from transformers import AutoModelForCausalLM, Trainer
# 1. 사전 학습된 모델 로드
model = AutoModelForCausalLM.from_pretrained("base-model")
# 2. 도메인 데이터셋 준비 (질문-답변 쌍)
dataset = [
{"input": "우리 회사 환불 정책은?",
"output": "구매 후 14일 이내 전액 환불 가능합니다."},
{"input": "연차 신청은 어떻게 하나요?",
"output": "사내 포털 > 인사 > 휴가신청에서 가능합니다."},
# ... 수천~수만 개의 예시
]
# 3. 모델 가중치를 업데이트하며 재학습
trainer = Trainer(model=model, train_dataset=dataset)
trainer.train() # 모델의 파라미터가 변경됨!
핵심은 모델의 가중치 자체가 변경된다는 것입니다. 학습이 끝나면 새로운 모델이 탄생합니다.
Fine-tuning은 딥러닝 초기부터 사용된 기법입니다. 2018년 ULMFiT(Howard & Ruder, "Universal Language Model Fine-tuning for Text Classification")이 NLP에서 전이학습(Transfer Learning) + Fine-tuning의 효과를 체계적으로 입증했고, 이후 BERT(Devlin et al., 2018)가 "사전학습 → Fine-tuning" 패러다임을 NLP의 표준으로 확립합니다.
2023~2024년에는 LoRA(Hu et al., "LoRA: Low-Rank Adaptation of Large Language Models", 2021)와 QLoRA(Dettmers et al., 2023) 같은 효율적 Fine-tuning(PEFT) 기법이 등장하며, 소비자급 GPU에서도 대형 모델을 Fine-tuning할 수 있게 되었습니다.
LoRA(Low-Rank Adaptation)는 모델의 전체 가중치를 수정하는 대신, 작은 어댑터 행렬만 학습하는 기법입니다.
70억 파라미터 모델을 Full Fine-tuning하려면 수십 GB의 GPU 메모리가 필요하지만, LoRA는 전체 파라미터의 **0.1~1%**만 학습하므로 메모리와 시간이 극적으로 줄어듭니다.
비유하면: 교과서 전체를 다시 쓰는 대신, 포스트잇을 붙여서 핵심 부분만 수정하는 것입니다.
| 상황 | 예시 |
|---|---|
| 특정 톤/스타일 학습 | 법률 문서 스타일, 고객 응대 말투, 의학 용어 |
| 특화된 태스크 성능 | 코드 생성, 감성 분석, 요약 |
| 추론 시 지연 최소화 | 외부 검색 없이 즉답 필요한 경우 |
| 소형 모델 성능 끌어올리기 | 7B 모델을 특정 도메인에서 70B급으로 |
실전 사례 — Bloomberg의 BloombergGPT (2023)
Bloomberg는 금융 뉴스, SEC 보고서, 소셜미디어 등 금융 특화 데이터 3,630억 토큰으로 LLM을 학습시켜 BloombergGPT를 만들었습니다(Wu et al., 2023). 이 모델은 금융 감성 분석, 뉴스 분류 등에서 범용 모델을 크게 앞섰습니다. 금융 용어와 맥락이 모델의 파라미터에 깊이 각인된 결과입니다.

RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 모델이 답변을 생성할 때, 외부 지식 저장소에서 관련 정보를 검색해서 프롬프트에 함께 제공하는 방식입니다. 모델의 가중치는 건드리지 않습니다.
요리사 비유로 말하면:
요리학교를 졸업한 셰프에게, 주방 옆에 거대한 레시피 라이브러리를 설치해주는 것입니다. 주문이 들어오면 셰프는 먼저 라이브러리에서 관련 레시피를 찾아보고, 그걸 참고하면서 요리합니다. 셰프의 실력(모델 가중치)은 그대로지만, 참고 자료의 힘으로 훨씬 정확한 요리를 만듭니다.
# RAG의 기본 흐름 (개념 코드)
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
# 1. 문서를 벡터로 변환하여 저장 (한 번만)
documents = load_company_docs("./data/")
vectorstore = FAISS.from_documents(documents, OpenAIEmbeddings())
# 2. 질문이 들어오면 관련 문서 검색
query = "3월 매출이 얼마야?"
relevant_docs = vectorstore.similarity_search(query, k=3)
# 3. 검색 결과를 프롬프트에 포함하여 LLM에 전달
prompt = f"""다음 자료를 참고하여 질문에 답하세요.
참고 자료:
{format_docs(relevant_docs)}
질문: {query}"""
response = llm.generate(prompt) # 모델 가중치는 변경되지 않음!
RAG라는 용어는 2020년 Meta AI(당시 Facebook AI Research)의 논문 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"(Lewis et al., 2020)에서 처음 등장합니다. 이 논문은 생성 모델에 검색 컴포넌트를 결합하면 지식 집약적 태스크(퀴즈, 팩트 확인 등)에서 성능이 크게 향상됨을 보여줬습니다.
하지만 "검색 + 생성" 아이디어 자체는 더 오래됐습니다. 정보 검색(Information Retrieval) 분야의 수십 년 연구가 기반이 되었고, 2019년 REALM(Guu et al.)이 사전학습 단계에서 검색을 통합하는 아이디어를 제시하기도 했습니다.
2023년 이후 RAG는 폭발적으로 확산됩니다. LangChain, LlamaIndex 같은 프레임워크가 RAG 구축을 쉽게 만들었고, 벡터 데이터베이스(Pinecone, Weaviate, Chroma, Qdrant) 생태계가 급성장했습니다.
텍스트를 **벡터(숫자 배열)**로 변환하면, 의미적으로 비슷한 텍스트는 벡터 공간에서 가까이 위치합니다.
예를 들어:
벡터 데이터베이스는 이런 벡터들을 효율적으로 저장하고, "이 질문과 가장 비슷한 문서 3개를 찾아줘"라는 유사도 검색을 밀리초 단위로 수행합니다.
| 상황 | 예시 |
|---|---|
| 자주 바뀌는 정보 | 제품 가격, 정책, 뉴스, 재고 |
| 출처 표시 필요 | "어떤 문서를 근거로 이 답을 했는가?" |
| 방대한 지식 베이스 | 수만 페이지의 사내 문서, 법률 DB |
| 환각 최소화 | 팩트 기반 답변이 필수인 경우 |
실전 사례 — Perplexity AI
2026년 가장 성공적인 RAG 제품 중 하나입니다. 사용자 질문에 대해 실시간 웹 검색을 수행하고, 검색 결과를 바탕으로 답변을 생성하며, 모든 문장에 출처 링크를 표시합니다. "오늘 코스피 지수"처럼 실시간 정보부터 "양자 컴퓨팅의 원리"같은 심층 질문까지, RAG 없이는 불가능한 서비스입니다.
같은 질문을 던졌을 때 두 방식이 어떻게 다르게 작동하는지 봅시다.
Fine-tuning 방식:
모델이 학습 때 본 환불 정책 데이터를 기억에서 꺼내 답변
→ "구매 후 14일 이내 전액 환불 가능합니다."
⚠️ 만약 정책이 바뀌었다면? → 옛날 정보를 답변 (재학습 필요)
RAG 방식:
벡터 DB에서 최신 환불 정책 문서를 검색해서 참고하고 답변
→ "2026년 3월 개정 기준, 구매 후 30일 이내 전액 환불 가능합니다. (출처: 환불정책_v3.2.pdf)"
✅ 정책이 바뀌면? → 문서만 업데이트하면 즉시 반영
실무에서 가장 많이 받는 질문입니다. 아래 플로우를 따라가 보세요.
"사내 챗봇을 만들고 싶어요" → 🔵 RAG
사내 문서가 수시로 바뀌고, "어떤 규정에 근거한 답변인지" 출처가 필요합니다.
"고객 응대 톤을 우리 브랜드에 맞추고 싶어요" → 🟡 Fine-tuning
"~입니다" 체, 이모지 사용 여부, 사과 표현 방식 등은 RAG로 조절하기 어렵습니다.
"의료 논문을 분석하는 AI를 만들고 싶어요" → 🟣 RAG + Fine-tuning
의학 용어 이해를 위한 Fine-tuning + 최신 논문 검색을 위한 RAG 조합이 이상적입니다.
"코드 리뷰 AI를 만들고 싶어요" → 🟡 Fine-tuning
코드 패턴 인식과 리뷰 스타일은 행동 패턴의 영역입니다.
"법률 상담 AI를 만들고 싶어요" → 🔵 RAG (+ 선택적 Fine-tuning)
법률은 개정되고, 판례는 쌓이며, 모든 답변에 근거 조문이 필요합니다.

2026년 실무에서 가장 흔한 패턴은 RAG와 Fine-tuning을 함께 쓰는 것입니다. 이건 양자택일이 아니라 레이어입니다.
2024년 Microsoft Research의 논문 "RAG vs Fine-Tuning: Pipelines, Tradeoffs, and a Case Study on Agriculture"(Balaguer et al.)은 농업 도메인에서 세 가지 접근법을 체계적으로 비교합니다:
이 결과는 많은 후속 연구에서도 반복적으로 확인됩니다. 특히 전문 도메인에서 하이브리드 접근이 개별 방법 대비 일관되게 우수합니다.
Fine-tuning 레이어:
• 의학 용어를 정확히 이해하고 사용
• 환자 대상 설명 시 쉬운 말로 변환
• 진단 추론 패턴 (증상 → 감별 진단)
RAG 레이어:
• 최신 임상 가이드라인 검색 (수시 업데이트)
• 약물 상호작용 DB 조회
• 관련 논문 인용 및 출처 표시
가드레일:
• "확실하지 않으면 반드시 전문의 상담을 권유"
• 생명에 관련된 조언은 면책 문구 포함
2025~2026년의 RAG는 단순 검색을 넘어서 에이전트 기반으로 진화하고 있습니다. 모델이 스스로 "이 질문에 답하려면 어떤 정보가 필요한지" 판단하고, 여러 소스를 조합하며, 검색 결과의 품질을 자체 평가합니다.
LoRA, QLoRA에 이어 2025~2026년에는 서비스형 Fine-tuning이 일반화됩니다. OpenAI, Anthropic, Google 모두 API를 통한 Fine-tuning을 제공하며, GPU 인프라 없이도 자사 데이터로 모델을 커스터마이징할 수 있게 되었습니다.
특히 **합성 데이터(Synthetic Data)**를 활용한 Fine-tuning이 주목받고 있습니다. 대형 모델(GPT-4, Claude)의 출력을 소형 모델의 학습 데이터로 활용하는 지식 증류(Knowledge Distillation) 패턴이 보편화되고 있죠.
Claude의 100K → 200K, Gemini의 1M+ 토큰 컨텍스트 윈도우 확장은 흥미로운 질문을 던집니다: 컨텍스트 윈도우가 무한해지면 RAG가 필요 없어지는 건 아닐까?
정답은 "아직은 아니다"입니다. 2024년 논문 "Lost in the Middle"(Liu et al.)은 긴 컨텍스트에서 LLM이 중간에 위치한 정보를 무시하는 경향이 있음을 보여줬습니다. 또한 비용 측면에서도, 수만 페이지를 매번 컨텍스트에 넣는 것보다 필요한 부분만 검색하는 RAG가 훨씬 경제적입니다.
하지만 간단한 RAG를 롱 컨텍스트가 대체하는 경우는 늘어나고 있습니다. 문서 수가 적고 구조가 단순하다면, 벡터 DB를 구축하는 대신 통째로 프롬프트에 넣는 것이 더 간편할 수 있습니다.
RAG와 Fine-tuning은 경쟁이 아니라 도구 상자의 서로 다른 도구입니다. 못을 박을 땐 망치를, 나사를 조일 땐 드라이버를 쓰듯, 문제의 성격에 맞는 도구를 고르세요.
2026년의 AI 엔지니어에게 정말 중요한 역량은:
"우리 AI가 새로운 걸 알게 하고 싶다"라는 동일한 욕구에서 출발했지만, Fine-tuning은 모델 자체를 변화시키고, RAG는 모델의 환경을 변화시킵니다. 어떤 것이 더 낫다가 아니라, 어떤 문제를 풀고 있느냐가 답을 결정합니다.
그리고 확신이 없다면? RAG부터 시작하세요. 구축이 빠르고, 결과가 즉시 보이며, 실패해도 모델을 망가뜨리지 않습니다. 거기서 부족한 부분이 보이면 그때 Fine-tuning을 추가하면 됩니다.
가장 좋은 요리사는 레시피를 외우기도 하고, 필요할 때 책을 펼칠 줄도 아는 사람이니까요.