RAG가 있는데 굳이 비싼 Fine-Tuning을 왜 할까? 프로젝트 구조와 데이터 예시를 통해 두 기술의 결정적 차이를 분석합니다.
데이터를 수정하기 용이하고 재사용하기 좋은 **RAG(검색 증강 생성)**가 있는데, 왜 굳이 정적인 **Fine-Tuning(파인튜닝)**을 하는 걸까요?
처음 이 두 개념을 접하면 "도메인 특화 모델을 만든다"는 목적이 같아 보입니다. 하지만 이 둘은 해결하려는 문제의 본질이 다릅니다.
핵심 쟁점은 데이터를 모델에게 어떻게 가르치느냐에 있습니다.
가장 직관적인 비유로 두 기술의 차이를 이해해 봅시다.
개발자 관점에서 두 기술은 프로젝트의 폴더 구조와 데이터 관리 방식부터 다릅니다.
RAG는 **외부 지식 저장소(Vector DB)**가 핵심입니다. 모델은 거들 뿐, 데이터는 외부에 존재합니다.
RAG로 해결되지 않는, 파인튜닝이 반드시 필요한 3가지 상황이 있습니다.
RAG는 '정보'를 주지만 '말투'는 통제하기 어렵습니다. 반면 파인튜닝은 모델의 행동 양식을 교정합니다.
예시: 감정 분석 결과를 특정 JSON으로만 출력해야 할 때
RAG는 매번 프롬프트에 예시를 넣어줘야 하므로 토큰 비용이 듭니다.
[System]
너는 감정 분석기야. 무조건 JSON으로 대답해.
예시: {"sentiment": "positive", "score": 0.9}
[User]
이 영화 진짜 재밌네!
RAG는 복잡한 도메인 지식을 설명하기 위해 매번 수천 토큰의 문맥(Context)을 프롬프트에 포함해야 합니다. 이는 API 비용 증가와 응답 속도 저하로 이어집니다.
파인튜닝된 모델은 문맥 없이 짧은 질문만으로도 의도를 파악하므로, 장기적으로 운영 비용이 절감됩니다.
단순히 정보를 찾는 게 아니라, 의료 진단이나 법률 판례 분석처럼 특수한 논리 구조를 따라야 할 때가 있습니다.
일반 모델은 잘 못하는 특정 분야의 사고 과정(Chain of Thought) 자체를 학습시켜 전문가스러운 추론을 가능하게 합니다.
두 기술은 상호 배타적이지 않습니다. 상황에 따라 장단점을 따져보아야 합니다.
최근 트렌드는 "RAG로 최신 지식을 가져오고, Fine-Tuning 된 모델로 예쁘게 답변하는" 하이브리드 방식을 채택하고 있습니다. 지식은 외부(DB)에 맡기고, 모델은 언어 능력(Skill)에 집중시키는 것이 가장 효율적입니다.