RAG(Retrieval Augmented Generation)는 LLM이 외부 데이터를 검색하여 답변을 생성하는 기술입니다. LLM은 학습 데이터에 없는 정보나 최신 정보에 대해 답변하기 어렵지만, RAG를 사용하면 외부 문서를 참조하여 정확하고 최신의 답변을 제공할 수 있습니다.
LLM은 학습 시점까지의 데이터만 알고 있습니다. 이로 인해 다음과 같은 한계가 있습니다.
RAG는 크게 두 단계로 구성됩니다.
RAG 시스템은 다음 컴포넌트로 구성됩니다.
다양한 형식의 문서를 불러오는 역할을 합니다.
문서를 적절한 크기의 청크(chunk)로 분할합니다.
텍스트를 벡터(숫자 배열)로 변환합니다.
벡터화된 문서를 저장하고 검색합니다.
질문과 유사한 문서를 검색합니다.
외부 문서를 참조하므로 LLM 학습 이후의 최신 정보도 답변할 수 있습니다.
회사 내부 문서, 매뉴얼 등을 참조하여 특정 도메인에 특화된 답변을 생성합니다.
실제 문서를 기반으로 답변하므로 LLM이 내용을 지어내는 현상을 줄일 수 있습니다.
답변의 근거가 된 문서를 함께 제공할 수 있어 신뢰성이 높아집니다.
[Indexing 단계]
문서 → Load → Split → Embed → Store
[Query 단계]
질문 → Embed → Retrieve → Generate → 답변
| 단계 | 설명 |
|---|---|
| Load | 다양한 형식의 문서를 불러옴 |
| Split | 문서를 적절한 크기로 분할 |
| Embed | 텍스트를 벡터로 변환 |
| Store | 벡터를 데이터베이스에 저장 |
| Retrieve | 질문과 유사한 문서 검색 |
| Generate | 검색된 문서를 참조하여 답변 생성 |