← 모든 글

RAG의 기본 구조: 검색한 문서를 답변의 근거로 연결하기

문서 준비, 검색, 문맥 구성, 답변 생성으로 나누어 검색 증강 생성의 흐름을 살펴봅니다.

문서 청크와 검색 인덱스를 준비하고 질문에 관련된 자료로 답변을 생성하는 RAG 흐름도

왜 검색을 먼저 할까

모델이 답변에 필요한 정보를 모두 알고 있다고 가정하기는 어렵습니다. **RAG(Retrieval-Augmented Generation)**는 질문과 관련된 외부 정보를 검색한 뒤, 그 자료를 문맥에 포함해 답변 생성을 돕는 방식입니다.

검색한 내용을 모델에 전달하는 것이며, 이 과정 자체가 모델의 가중치를 다시 학습시키는 것은 아닙니다.

문서를 검색 가능한 형태로 준비하기

한 가지 구성 예시는 다음과 같습니다.

  1. 문서에서 필요한 텍스트와 출처를 추출합니다.
  2. 문서를 검색에 적합한 크기의 청크로 나눕니다.
  3. 청크와 출처를 검색 인덱스에 저장합니다.

검색 방식은 벡터 검색, 키워드 검색 또는 둘을 결합한 방식일 수 있습니다. 벡터 데이터베이스만이 유일한 선택지는 아닙니다.

질문에서 답변까지

사용자 질문
  → 관련 문서 검색
  → 답변에 사용할 문맥 구성
  → 질문과 문맥을 모델에 전달
  → 출처와 함께 답변 표시

이 흐름을 코드의 책임으로 나누면 검색, 문맥 구성, 생성 단계를 각각 검증하기 쉽습니다.

검색과 생성을 나누어 평가하기

검색에서 필요한 문서를 놓치면 답변에 근거가 부족해집니다. 검색이 잘되었더라도 모델이 문맥을 잘못 해석할 수 있습니다. 두 단계를 구분해서 확인해야 문제를 좁힐 수 있습니다.

단계 확인할 질문
검색 필요한 문서를 후보에서 찾았는가?
문맥 구성 문서의 출처와 필요한 내용을 유지했는가?
생성 답변이 제공한 자료에 근거하는가?
표시 독자가 근거 문서를 확인할 수 있는가?

근거가 없을 때는 부족하다고 안내하는 경로도 설계합니다. 검색 결과가 있다는 사실만으로 답변의 정확성이 보장되지는 않습니다.

참고 자료