한 줄 정의
RAG(Retrieval-Augmented Generation)는 AI한테 오픈북 시험을 치르게 하는 거야. 답변하기 전에 관련 자료부터 찾아보고, 그걸 보면서 대답하게 만드는 기법이거든.
작동 원리
도서관에서 레포트 쓴다고 생각해봐. 머릿속 기억만으로 쓰면 틀린 내용이 섞이잖아. 그래서 도서관 가서 관련 책 먼저 찾고, 그걸 펼쳐놓고 쓰는 거지. RAG가 딱 이거야.
- 검색(Retrieval): 사용자가 질문하면, 그 질문을 벡터(숫자 배열)로 바꿔서 벡터 데이터베이스에서 비슷한 문서 조각들을 가져와. 도서관에서 관련 책 뽑아오는 단계인 셈이지.
- 생성(Generation): 찾아온 문서 조각들을 프롬프트에 붙여서 LLM한테 넘겨. LLM은 이 자료를 옆에 펼쳐놓고 답변을 만들어.
여기서 중요한 건 뭐냐면, LLM이 자기 머릿속(파라미터)에 든 것만 쓰는 게 아니라 실시간으로 외부 자료를 참고한다는 거야. 회사 내부 문서, 오늘 나온 뉴스, 기술 매뉴얼 같은 걸 모델 재학습 없이 바로 쓸 수 있어.
왜 중요한가
LLM의 치명적인 약점이 두 가지 있거든. 학습 데이터 이후 정보를 모른다는 것(GPT-4의 학습 데이터 컷오프는 2023년 12월이야), 그리고 모르는 걸 자신 있게 지어낸다는 것. RAG는 이 두 문제를 동시에 줄여줘.
파인튜닝이랑 비교하면 비용 차이가 꽤 커. 파인튜닝은 모델을 다시 학습시켜야 하니까 GPU 비용이 수백~수천 달러 드는데, RAG는 검색 대상 문서만 업데이트하면 끝이거든. 그래서 기업용 챗봇이나 사내 지식 검색에서 사실상 표준 패턴이 됐어. 2024년 기준 엔터프라이즈 AI 프로젝트의 약 80%가 RAG를 쓰고 있다는 조사도 있고.
근데 “쓰레기가 들어가면 쓰레기가 나온다”는 건 여기서도 마찬가지야. 검색이 엉뚱한 문서를 가져오면? 답변도 엉뚱해져. 임베딩 모델 선택, 문서를 어떻게 자르느냐(청킹 전략), 검색 결과 순서를 다시 매기느냐(리랭킹) 같은 세부 설계가 실제 성능을 좌우해.