대규모 언어 모델(LLM)은 자연어 처리, 텍스트 생성, 번역, 챗봇 등 다양한 분야에서 뛰어난 성능을 보여주지만, 몇 가지 한계가 존재한다.
이러한 한계를 보완하기 위해 검색(Retrieval)과 생성(Generation)을 결합하는 방식이 등장했다. RAG는 LLM 앞에 검색기를 붙인 구조라고 보면 되는데, 검색은 크게 두 가지, 웹 검색과 문서 검색으로 나누어 이해할 수 있다.
웹 검색은 인터넷에서 최신 정보를 실시간으로 조회하는 것이다. 모델이 학습하지 못한 업데이트된 사실을 바로 반영이 가능하며, LLM의 지식 업데이트 지연 문제를 보완한다.
문서 검색은 내부 DB, PDF, 논문 등 희소 정보(sparse knowledge)나 전문 지식을 찾아 제공하는 것이다. 학습 데이터에 거의 등장하지 않는 정보도 정확하게 제공이 가능하며, LLM의 희소 정보 취약 문제를 보완한다.
이렇게 검색과 생성을 결합한 구조가 RAG(Retreval Augmented Generation)이며, LLM의 한계를 극복하는 핵심 기술로 자리잡고 있다. 무엇보다 RAG는 기업 실무 도입 시 필수적인 기술인데 그 이유는 다음과 같다.
RAG 시스템의 전체 흐름은 다음과 같다.
- 문서 수집
- 문서 분할 (Chunking)
- Embedding 생성
- Vector DB 저장
- 사용자 질문 임베딩
- 유사 문서 검색 (Top-K 추출)
- LLM에 Context 제공
- 답변 생성