
RAFT 특집: 시험 공부하듯 AI를 훈련시키는 법 — RAG와 파인튜닝의 황금 교차점
RAG만으로는 부족하고, 파인튜닝만으로는 한계가 있다. UC Berkeley가 제안한 RAFT는 '오픈북 시험 준비'라는 직관적 비유로 두 기법을 결합한다. 7B 모델이 GPT-3.5를 이기는 비결, 방해 문서 훈련과 인용 기반 추론의 원리를 파헤친다.

RAG만으로는 부족하고, 파인튜닝만으로는 한계가 있다. UC Berkeley가 제안한 RAFT는 '오픈북 시험 준비'라는 직관적 비유로 두 기법을 결합한다. 7B 모델이 GPT-3.5를 이기는 비결, 방해 문서 훈련과 인용 기반 추론의 원리를 파헤친다.
당신이 의대생이라고 상상해보자. 일주일 뒤에 해부학 기말시험이 있다.
세 가지 전략이 있다:
어떤 전략이 가장 좋을까? 당연히 3번이다. 그런데 놀랍게도, 2024년까지 대부분의 AI 시스템은 1번 아니면 2번만 하고 있었다.
2024년 3월, UC Berkeley 연구팀이 이 문제를 정면으로 해결하는 논문을 발표했다.

RAFT(Retrieval Augmented Fine-Tuning)는 이름부터 직관적이다 — RAG(검색 증강 생성)과 Fine-Tuning(파인튜닝)을 결합한 훈련 레시피다. 아키텍처를 바꾸거나 새로운 모델을 만드는 것이 아니라, 기존 모델을 더 똑똑하게 훈련시키는 방법이다.
이 글에서는 RAFT가 왜 등장했는지, 어떤 원리로 작동하는지, 그리고 2026년 지금 어떤 의미를 갖는지 깊이 파고들어 본다.
모든 것은 2020년 NeurIPS에서 시작됐다. Patrick Lewis 등의 연구팀이 발표한 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"는 AI 역사의 분기점이었다.
핵심 아이디어는 단순했다: LLM의 파라미터에 저장된 지식(parametric memory)과 외부 문서 데이터베이스(non-parametric memory)를 하나의 시스템으로 결합하자.

이전까지 LLM은 훈련 시점에 본 데이터만 알 수 있었다. 2023년에 일어난 사건을 물으면 2021년까지의 데이터로 훈련된 모델은 "모르겠습니다"라고 답하거나, 더 나쁜 경우 그럴듯한 거짓말(hallucination)을 만들어냈다.
RAG는 이 문제를 우아하게 해결했다. 질문이 들어오면 먼저 관련 문서를 검색하고, 그 문서를 컨텍스트로 넣어서 답변을 생성한다. 마치 시험 중에 교과서를 펼쳐보는 것과 같다.
RAG는 폭발적으로 채택됐다. ChatGPT의 등장(2022.11)과 함께 "RAG 파이프라인"은 엔터프라이즈 AI의 사실상 표준이 되었다. 기업들은 자사 문서를 벡터 데이터베이스에 저장하고, LLM에 검색 결과를 주입하는 시스템을 앞다투어 구축했다.
그러나 실전에서 RAG는 예상보다 많은 문제를 드러냈다:
한편, 파인튜닝은 다른 방향의 한계를 가졌다:
도메인 특화 파인튜닝(Domain-Specific Fine-tuning, DSF)은 모델을 특정 분야의 전문가로 만들 수 있었다. 의료 문헌으로 파인튜닝하면 의료 지식이 올라가고, 법률 데이터로 훈련하면 법률 추론 능력이 높아진다.
그런데 역설적인 문제가 발생한다: 파인튜닝한 모델에 RAG를 붙이면 오히려 성능이 떨어지는 경우가 있었다.
이것이 RAFT가 해결하려는 핵심 문제다. RAG와 파인튜닝을 따로 쓰면 각각 한계가 있고, 단순히 합치면 오히려 역효과가 난다. 그렇다면 처음부터 두 기법이 협력하도록 훈련하면 어떨까?
RAFT 논문의 가장 강력한 무기는 직관적인 비유다. 연구진은 LLM 훈련을 시험 준비에 비유하며 세 가지 시나리오를 제시한다:

모델에게 질문-답변 쌍만 보여주고 훈련한다. 문서는 제공하지 않는다. 이 모델은 모든 것을 외워야 한다.
문제점: 시험(추론 시)에 문서가 주어져도 활용할 줄 모른다. 외운 내용과 문서 내용이 다르면 오히려 혼란스러워진다.
모델에게 사전 훈련된 지식만 있고, 추론 시에 검색된 문서를 컨텍스트로 제공한다. 교과서는 있지만 어디에 뭐가 있는지 모른다.
문제점: 방해 문서에 쉽게 속고, 긴 문서에서 핵심을 찾는 데 서툴다. 특히 전문 도메인에서는 용어 자체를 이해하지 못해 교과서가 있어도 무용지물이다.
모델을 훈련할 때 문서와 함께 질문-답변을 학습한다. 더 중요한 것은, 훈련 데이터에 방해 문서(distractor)를 섞어서 "노이즈 속에서 정답 찾기"를 연습시킨다.
결과: 시험장에서 교과서를 펼쳤을 때, 어느 페이지의 어느 단락이 중요한지 즉시 파악하고, 정확히 인용하며, 체계적으로 추론한다.
RAFT의 핵심은 훈련 데이터를 구성하는 방식에 있다. 각 훈련 예시는 다음 요소로 구성된다:
여기서 핵심적인 트릭이 두 가지 있다:
모든 훈련 예시에 오라클 문서만 넣으면 모델이 "첫 번째 문서가 항상 정답"이라는 편향(shortcut)을 학습한다. 실제 검색 엔진은 완벽하지 않으므로, 훈련 시에도 불완전한 검색 환경을 시뮬레이션해야 한다.
RAFT는 전형적으로 1개의 오라클 문서 + 4개의 방해 문서 = 총 5개 문서를 사용한다. 모델은 5개 문서 중 어떤 것이 정답을 포함하는지 스스로 판단해야 한다.

더 놀라운 것은, 훈련 데이터의 일부(1-P%)에서는 오라클 문서를 아예 빼버린다. 이 경우 모델은 방해 문서만 보고도 답을 내야 한다 — 즉, 암기된 지식에 의존해야 한다.
이것이 왜 중요할까? 모델이 "문서에 답이 있으면 인용하고, 없으면 내가 아는 것을 바탕으로 답한다"는 유연한 전략을 학습하기 때문이다.
RAFT의 또 다른 핵심은 답변 형식이다. 단순히 "정답은 X다"가 아니라, 추론 과정 전체를 포함한다:
##begin_quote##와 ##end_quote##로 감싼 원문 직접 인용이 핵심이다. 이 형식으로 훈련하면:
RAFT 논문의 가장 충격적인 결과는 LLaMA2-7B(70억 파라미터) 모델이 GPT-3.5+RAG를 대부분의 도메인에서 능가했다는 것이다. 모델 크기가 수십 배 작은데도 말이다.

핵심 발견들:
| 모델 | PubMed | HotpotQA | HuggingFace | Torch Hub | TF Hub |
|---|---|---|---|---|---|
| LLaMA2-7B (0-shot) | 56.50 | 0.54 | 0.22 | 0 | 0 |
| LLaMA2-7B + RAG | 58.80 | 0.03 | 26.43 | 8.60 | 43.06 |
| DSF (파인튜닝) | 59.70 | 6.38 | 61.06 | 84.94 | 86.56 |
| DSF + RAG | 71.60 | 4.41 | 42.59 | 82.80 | 60.29 |
| GPT-3.5 + RAG | 71.60 | 41.50 | 29.08 | 60.21 | 65.59 |
| RAFT (LLaMA2-7B) | 73.30 | 35.28 | 74.00 | 84.95 | 86.86 |
주의: 녹색 강조(highlight)는 각 열에서 최고 성능을, 주황색(warn)은 역효과가 나는 경우를 표시한다. RAFT가 5개 벤치마크 중 5개 모두에서 최고 성능을 기록했다.
연구진은 CoT(Chain-of-Thought) 답변을 빼고 훈련한 ablation 실험도 수행했다:
HuggingFace API 문서에서 +14.93%p의 향상은 엄청나다. API 문서처럼 정확한 매개변수 이름과 형식이 중요한 도메인에서는, "근거를 인용하며 추론하는 능력"이 결정적인 차이를 만든다.
흥미로운 발견: 오라클 문서를 포함하는 비율 P%의 최적값이 데이터셋에 따라 달랐다.
| 데이터셋 | 최적 P% | 해석 |
|---|---|---|
| Natural Questions | 40% | 일반 지식은 암기도 중요 → 오라클 없는 훈련이 상당 부분 필요 |
| TriviaQA | 60% | 균형 잡힌 접근이 최적 |
| HotpotQA | 100% | 멀티홉 추론은 항상 문서가 필요 → 오라클 항상 제공이 최적 |
이것은 직관적으로도 이해된다. 단순 사실 질문(Natural Questions)은 외우고 있으면 빠르게 답할 수 있으므로 암기 훈련의 비중이 높아야 하고, 여러 문서를 교차 참조하는 복잡한 질문(HotpotQA)은 항상 문서를 보며 연습해야 한다.
훈련 시 방해 문서 수도 성능에 영향을 미친다:
병원의 AI 시스템이 의사의 질문에 답하는 상황을 생각해보자.
RAFT 훈련을 받은 모델은 PubMed 데이터에서 73.30%의 정확도를 보여, GPT-3.5+RAG의 71.60%를 능가했다. 의료 분야에서 1.7%p의 차이는 잘못된 진단 조언을 줄이는 의미가 있다.
개발자가 "이미지 분류에 적합한 HuggingFace 모델을 찾아줘"라고 질문하는 경우:
74% vs 29% — 2.5배 이상의 정확도 차이다. RAFT로 훈련된 7B 모델이 GPT-3.5보다 API 문서를 훨씬 잘 이해하고 활용한다는 뜻이다.
DSF 모델은 질문의 구조를 제대로 파악하지 못하고 영화 제목을 답했지만, RAFT 모델은 두 문서를 교차 참조하여 정확한 인물명을 추출했다.
RAFT를 자신의 도메인에 적용하는 과정은 다음과 같다:
# 저장소 클론
git clone https://github.com/ShishirPatil/gorilla.git
cd gorilla/raft
# 의존성 설치
pip install -r requirements.txt
# RAFT 데이터셋 생성 (OpenAI API 사용)
python raft.py \
--datapath ./my_documents/ \
--output ./raft_dataset \
--distractors 4 \
--p 0.6 \
--chunk_size 512 \
--questions 5
# 로컬 모델로 생성 (API 없이)
python raft_local.py \
--datapath ./my_documents/ \
--output ./raft_dataset
| 하이퍼파라미터 | 권장값 | 비고 |
|---|---|---|
| 정밀도 | 16-bit (FP16/BF16) | 메모리 효율과 품질의 균형 |
| 에포크 | 최대 3 | 과적합 방지. 중간 체크포인트 저장 |
| 학습률 | 사전훈련의 1/10 | 기존 지식 보존 |
| 배치 크기 | 가능한 크게 | 학습 안정성 향상 |
| P% (오라클 비율) | 40–80% | 도메인별 실험 필요 |
| 방해 문서 수 | 3–4개 | 일반적으로 D* + 4개가 효과적 |
RAFT는 RAG 기술 진화의 한 가지 중요한 갈래를 열었다. 2026년 현재, RAG 생태계는 다음과 같이 분화했다:
##begin_quote## 인용 형식은 엔터프라이즈 컴플라이언스(금융, 의료, 법률)에서 필수 요구사항인 근거 추적을 자연스럽게 지원한다| 분야 | 적용 방식 | 효과 |
|---|---|---|
| 의료 AI | PubMed/임상 문서로 RAFT 훈련 | 진단 보조 정확도 향상, 근거 추적 가능 |
| 법률 AI | 판례/법령으로 RAFT 훈련 | 관련 조문 정확 인용, 다중 법원 판결 교차 참조 |
| 개발자 도구 | API 문서로 RAFT 훈련 | 코드 어시스턴트 정확도 2.5배 향상 |
| 고객 서비스 | 제품 매뉴얼/FAQ로 RAFT 훈련 | 정확한 답변 + 매뉴얼 페이지 인용 |
| 금융 분석 | 재무제표/보고서로 RAFT 훈련 | 수치 정확성 향상, 출처 명시 의무 충족 |
RAFT가 주는 가장 큰 교훈은 단순하다:
참고서를 곁에 두고 시험을 본다면, 참고서를 곁에 두고 공부도 해야 한다.
이것은 너무나 당연한 말 같지만, 2024년까지 AI 분야에서는 이 당연한 원칙이 적용되지 않고 있었다. 파인튜닝은 "참고서 없이 암기"시키고, RAG는 "공부 없이 참고서만 줬다." RAFT는 이 두 세계를 하나로 합쳤다.
핵심을 다시 정리하면:
RAFT는 "어떤 새로운 것을 만들었다"기보다 "기존 기법들을 올바르게 결합하는 방법을 발견했다"에 가깝다. 그리고 종종 가장 강력한 혁신은 복잡한 새 기술이 아니라, 당연한 것을 처음으로 제대로 한 것에서 나온다.
2026년의 AI 시스템을 구축하고 있다면, RAFT의 교훈을 기억하자: AI가 실전에서 하는 것을 훈련에서도 하게 하라.