AI 용어집 · 기초 · 언어 모델
RAG 검색 증강 생성
RAG(검색 증강 생성)는 AI가 답하기 전에 문서나 데이터베이스에서 관련 자료를 먼저 찾아보고, 찾은 내용을 근거로 답을 만드는 방식이다. 모델이 학습하지 않은 최신 정보나 회사 내부 정보도 답에 활용할 수 있다.
어떻게 작동하나
먼저 참고할 문서들을 몇백 토큰 정도의 작은 조각으로 나눈다(청킹). 각 조각을 뜻을 담은 숫자 목록인 임베딩으로 바꿔 벡터 DB에 저장해 둔다. 사용자가 질문하면 질문과 뜻이 가장 비슷한 조각들을 찾아 프롬프트에 붙여 넣는다. 그러면 대규모 언어 모델(LLM)이 이 자료를 읽고 답을 만든다. 즉 '찾기(검색)'와 '쓰기(생성)'를 한 흐름으로 묶은 구조다.
어떻게 발전해 왔나
2020년 구글 연구진의 REALM 논문은 언어 모델을 사전 학습하는 단계부터 위키백과 같은 대량 문서를 검색해 참고하도록 했다. 정답 표시 없이도 '검색기'를 함께 학습시킬 수 있다는 점을 처음 보였다. 같은 해 루이스(Patrick Lewis) 등의 논문은 '검색 증강 생성(RAG)'이라는 이름을 붙였다. 이 논문은 위키백과 검색기와 문장 생성 모델을 결합하는 범용 학습 방법을 제시했고, 생성 모델 하나만 쓸 때보다 더 구체적이고 사실에 맞는 문장을 쓴다고 보고했다. 2023년 가오(Yunfan Gao) 등의 서베이 논문은 이후 흐름을 단순한 '나이브 RAG', 검색 품질을 높인 '어드밴스드 RAG', 부품을 자유롭게 조합하는 '모듈형 RAG'로 정리했다.
왜 중요한가
LLM은 학습이 끝난 시점 이후의 정보를 모르고, 모르는 내용을 그럴듯하게 지어내는 환각을 일으키기도 한다. RAG를 쓰면 모델을 다시 학습시키지 않고 문서만 바꿔 넣어 지식을 최신으로 유지할 수 있어 비용이 적게 든다. 회사 규정이나 제품 설명서처럼 공개되지 않은 자료도 활용할 수 있다. 답과 함께 어떤 문서를 참고했는지 출처를 보여 줄 수 있어 사용자가 직접 확인하기도 쉽다.
알아 둘 점(한계)
RAG가 환각을 줄여 주지만 없애 주지는 않는다. 올바른 자료를 가져와도 모델이 맥락을 잘못 읽으면 틀린 답이 나올 수 있다. 2023년 'Lost in the Middle' 논문은 긴 입력 속 관련 정보가 처음이나 끝에 있을 때보다 중간에 있을 때 모델이 그 정보를 잘 활용하지 못한다고 보고했다. 그래서 검색 결과를 많이 붙일수록 늘 좋은 것은 아니다. 또 문서를 잘게 자르면서 앞뒤 맥락이 사라져 필요한 조각을 못 찾는 문제가 있어, 리랭커나 하이브리드 검색 같은 보완 기법이 함께 쓰인다.
예시
사내 규정을 묻는 챗봇이나 제품 설명서를 근거로 답하는 고객 지원 봇이 대표적인 RAG 활용 사례다. Anthropic은 2024년 9월 'Contextual Retrieval'이라는 방법을 소개했다. 문서를 조각낼 때 각 조각에 원래 문서의 맥락 설명을 덧붙여 검색 실패를 줄이는 방식인데, 회사는 이 방법으로 검색 실패가 49% 줄었고 리랭킹까지 더하면 67% 줄었다고 밝혔다. 같은 글에서 회사는 참고 자료가 약 20만 토큰(500쪽 분량)보다 작으면 RAG 없이 자료 전체를 프롬프트에 넣는 편이 더 간단할 수 있다고도 설명했다.
함께 보면 좋은 용어
참고
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (2020)
- REALM: Retrieval-Augmented Language Model Pre-Training (2020)
- Retrieval-Augmented Generation for Large Language Models: A Survey (2023)
- Lost in the Middle: How Language Models Use Long Contexts (2023)
- Retrieval-augmented generation - Wikipedia
- Contextual Retrieval in AI Systems (Anthropic)