RAG와 파인튜닝은 서로 다른 문제를 푼다
LLM 시스템을 만들 때 자주 하는 실수는 모든 문제를 파인튜닝으로 해결하려는 것이다. 하지만 파인튜닝은 모델 안에 지식을 저장하는 방법으로는 안정적이지 않다. 학습 시점 이후의 정보는 반영하기 어렵고, 잘못 학습된 내용은 수정 비용도 크다.
최신 문서, 사내 규정, 상품 정보, 법률 조항처럼 자주 바뀌는 지식은 RAG가 더 적합하다. RAG는 사용자의 질문과 관련된 문서를 먼저 검색한 뒤, 그 문서를 근거로 답변을 생성하는 방식이다. 지식은 모델이 아니라 외부 문서 저장소에 둔다.
반대로 파인튜닝은 모델의 행동을 교정하는 데 강하다. 예를 들어 답변 형식, 말투, 업무 절차, 금지해야 할 응답 방식, 특정 도메인에서의 판단 기준을 반복적으로 학습시킬 수 있다. 핵심은 간단하다. 지식 주입은 RAG로, 행동 교정은 파인튜닝으로 나눈다.

검색 품질이 답변 품질을 결정한다
RAG의 성능은 모델보다 검색 단계에서 더 크게 흔들릴 때가 많다. 관련 없는 문서가 들어오면 모델은 그럴듯하지만 틀린 답을 만들 수 있다.
먼저 임베딩이 중요하다. 임베딩은 문장의 의미를 숫자 벡터로 바꾸는 과정이다. 질문과 문서가 같은 의미 공간에서 잘 가까워져야 정확한 검색이 가능하다. 도메인 용어가 많은 경우에는 일반 임베딩 모델보다 해당 분야에 강한 임베딩 모델을 검토해야 한다.
벡터DB는 이 임베딩을 저장하고 빠르게 찾는 역할을 한다. 검색 속도, 필터링 기능, 메타데이터 관리가 중요하다. 문서의 작성일, 부서, 제품명, 권한 정보를 함께 저장하면 더 안전하고 정확한 검색이 가능하다.
청킹도 품질을 좌우한다. 청킹은 긴 문서를 작은 조각으로 나누는 작업이다. 너무 짧으면 맥락이 사라지고, 너무 길면 불필요한 정보가 섞인다. 보통 문단이나 의미 단위로 나누고, 제목과 상위 섹션 정보를 함께 붙이면 검색 정확도가 높아진다.
마지막으로 리랭킹을 고려한다. 리랭킹은 1차로 검색된 후보 문서를 다시 정렬하는 단계다. 벡터 검색이 빠르게 후보를 찾고, 리랭커가 질문과 더 잘 맞는 문서를 위로 올린다. 중요한 업무일수록 이 단계가 답변의 신뢰도를 높인다.
검색 문서를 바탕으로 답하게 학습시키기
RAG를 붙였다고 해서 모델이 항상 문서를 충실히 따르는 것은 아니다. 모델이 기존 지식이나 추측으로 답하는 경우가 있다. 이때 파인튜닝을 활용하면 "검색된 근거를 우선한다"는 행동을 학습시킬 수 있다.
학습 데이터는 질문, 검색 문서, 정답의 세 부분으로 구성한다. 예를 들면 다음과 같은 형태다.
입력: 사용자 질문
컨텍스트: 검색된 문서 조각 2~5개
출력: 문서에 근거한 답변, 필요한 경우 출처 표시
여기서 중요한 것은 정답을 만들 때 검색 문서 밖의 내용을 넣지 않는 것이다. 문서에 없는 내용은 "제공된 자료만으로는 확인할 수 없습니다"라고 답하게 해야 한다. 이 패턴을 반복해서 학습하면 모델은 모르는 내용을 꾸며내는 대신 근거 부족을 말하는 방향으로 조정된다.
또한 좋은 예시만 넣는 것으로는 부족하다. 실패를 줄이려면 어려운 예시도 포함해야 한다. 관련 문서가 없는 질문, 서로 충돌하는 문서가 검색된 질문, 최신 문서와 오래된 문서가 함께 들어온 질문을 넣는다. 모델은 이 데이터를 통해 검색 결과를 무조건 따르는 것이 아니라, 날짜와 우선순위, 신뢰도까지 고려하는 법을 배운다.
도메인 챗봇의 운영 구조
도메인 전용 챗봇에서는 보통 RAG와 LoRA 어댑터를 함께 운영한다. 기본 모델은 범용 언어 능력을 담당한다. LoRA 어댑터는 조직의 응답 스타일, 업무 절차, 출력 형식, 안전 규칙을 담당한다. RAG는 최신 지식과 사내 문서를 제공한다.
실제 흐름은 다음과 같다. 사용자가 질문하면 먼저 권한과 의도를 확인한다. 그다음 벡터DB에서 관련 문서를 검색하고, 필요하면 리랭킹으로 상위 문서를 고른다. 선택된 문서와 사용자 질문을 프롬프트에 넣고, LoRA가 적용된 모델이 답변을 생성한다. 마지막으로 출처, 금지어, 개인정보 노출 여부를 검수한 뒤 사용자에게 응답한다.
이 구조의 장점은 분리 가능성이다. 문서가 바뀌면 벡터DB만 갱신하면 된다. 답변 태도나 형식을 바꾸고 싶으면 LoRA 어댑터를 다시 학습하면 된다. 여러 부서가 있다면 같은 기본 모델 위에 부서별 어댑터와 문서 저장소를 따로 둘 수도 있다.
함께 쓸 때의 기준
RAG와 파인튜닝을 함께 쓸 때는 역할을 섞지 않는 것이 중요하다. 제품 가격, 정책 날짜, 계약 조건처럼 바뀌는 정보는 문서 검색으로 처리한다. 답변을 짧게 요약하는 방식, 고객에게 사과하는 문장 구조, 내부 규정 위반 질문을 거절하는 방식은 파인튜닝으로 학습한다.
평가도 따로 해야 한다. RAG는 "정답 문서를 잘 찾았는가"를 본다. 파인튜닝은 "찾은 문서를 근거로 원하는 방식으로 답했는가"를 본다. 두 기준을 분리하면 문제가 검색에 있는지, 모델 행동에 있는지 빠르게 알 수 있다.
좋은 LLM 시스템은 많은 것을 모델에 외우게 하지 않는다. 필요한 지식은 밖에서 찾고, 모델은 그 지식을 올바르게 사용하는 법을 배운다. RAG와 파인튜닝의 결합은 이 원칙을 실무적으로 구현하는 가장 안정적인 방법이다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.