본문 바로가기
Data & Research

[LLM & RAG] RAG Procedure

by 물박사의 저장공간 2025. 4. 1.

1. Indexing

:  외부 지식 소스를 효과적으로 검색할 수 있도록 미리 준비하는 단계
대규모 문서 집합(예: 위키백과, 뉴스 데이터, 논문 등)을 수집
각 문서를 작은 청크(예: 문장, 단락)로 나누고, 개별 벡터 임베딩으로 변환
벡터 DB(예: FAISS, ANNoy, Elasticsearch 등)에 저장
→ 빠르고 효율적인 검색을 위해 벡터 기반 색인(index) 구축


2. User Input (사용자 입력)

: 사용자의 질의(질문, 문장 등)를 모델이 처리할 수 있는 형태로 변환
사용자가 자연어 형태로 질문을 입력 (예: “Who discovered penicillin?”)
입력된 텍스트를 벡터 임베딩(예: BERT, DPR, OpenAI embedding 등)으로 변환
→ 사용자의 질문이 숫자로 표현된 벡터(고차원 공간의 점)로 변환

 

3. Retrieval (검색)

: 사용자 입력과 가장 관련성이 높은 문서를 색인에서 찾아냄
변환된 사용자 입력 벡터와 색인된 문서 벡터 간 유사도 계산 (ex: 코사인 유사도, dot product 등)
가장 유사한 문서 상위 N개(예: 5~10개) 검색 및 반환
검색된 문서를 RAG 모델의 컨텍스트로 사용
→ 질문과 관련된 문서들 추출

 

4. Generation (생성)

: 검색된 문서를 기반으로 최종 답변을 생성
RAG-Sequence: 검색된 문서를 입력으로 받아 한 번에 응답 생성
RAG-Token: 문장을 한 단어씩 생성하며, 매 스텝마다 다른 문서를 참조 가능
Transformer 기반의 생성 모델(예: BART, T5)이 문맥을 종합해 자연스러운 답변을 생성
→ 사용자 질의에 대해 신뢰할 수 있는 정보 기반의 답변이 생성됨

https://pub.towardsai.net/a-taxonomy-of-retrieval-augmented-generation-a39eb2c4e2ab