RAG with MongoDB Skill Check

Russ·2026년 6월 3일
post-thumbnail

1

검색 증강 생성(RAG, Retrieval-Augmented Generation)은 AI 모델이 학습하지 않은 외부 데이터나 특정 문서(기업 내부 문서, 규정, 정책 등)를 실시간으로 '검색'하여 그 내용을 기반으로 정확한 답변을 '생성'하도록 하는 기술입니다.

3

RAG(검색 증강 생성) 시스템에서 정확한 응답을 생성하지 못하는 디버깅 상황을 다루고 있습니다. RAG 파이프라인에서 가장 먼저 선행되어야 하고 중요한 단계는 "LLM에 들어갈 관련 컨텍스트를 정확하게 검색해 오는 것"입니다.

Atlas Vector Search 기반 애플리케이션에서 검색 단계가 아예 작동하지 않거나 엉뚱한 결과를 뱉고 있다면, 가장 근본적인 원인인 벡터 검색 인덱스(Vector Search Index)가 올바르게 생성되고 데이터가 제대로 동기화(구축)되었는지를 최우선으로 검증해야 합니다. 기초 공사(인덱스)가 잘못되었다면 임베딩 모델을 바꾸거나 limit 값을 조정하는 등의 후속 조치는 아무런 의미가 없기 때문입니다.

데이터

RAG(검색 증강 생성) 시스템은 특정 데이터 형식에 국한되지 않고, 다양한 형태의 데이터 소스를 모두 통합하여 지식 베이스로 활용할 수 있습니다.

청크분할

RAG 애플리케이션을 구축할 때 원본 데이터(PDF, HTML 등)를 수집하고 마크다운으로 변환한 직후에 해야 할 가장 중요한 다음 단계는 청크 분할(Chunking)입니다.

청크 오버랩

RAG 시스템에서 긴 문서를 특정 크기(예: 500 토큰)로 자를 때, 기계적으로 텍스트를 뚝 끊어버리면 하나의 문장이나 핵심 문맥이 두 청크로 쪼개져 의미가 유실되는 문제가 발생할 수 있습니다.

이를 방지하기 위해 청크와 청크 사이에 일정 부분(예: 150 토큰) 중복(Overlap)을 핵심적으로 남겨둡니다. 이렇게 하면 앞 청크의 끝부분과 뒤 청크의 앞부분 내용이 이어지기 때문에, 인접한 청크 간의 문맥(Context)과 흐름이 끊기지 않고 자연스럽게 보존됩니다. 결과적으로 검색 성능과 LLM의 이해도를 모두 높일 수 있습니다.

검색

사용자 쿼리 벡터화: 사용자가 입력한 자연어 질문(텍스트)을 지식 베이스와 비교할 수 있도록 동일한 임베딩 모델을 사용하여 벡터(숫자 배열)로 변환해야 합니다. 이 작업은 검색을 시작하기 위한 필수 선행 단계입니다.

벡터 검색 수행: 벡터로 변환된 사용자 쿼리를 벡터 데이터베이스(예: MongoDB Atlas Vector Search)에 내보내어, 기존에 저장되어 있던 데이터 청크들의 벡터와 유사도(Cosine Similarity 등)를 비교하고 가장 연관성이 높은 문서를 찾아내는(Retrieval) 핵심 과정입니다.

생성

생성 컴포넌트(Generation Component): 대규모 언어 모델(LLM)이 중심이 되며, 검색 컴포넌트가 찾아준 맥락(Context)과 사용자의 질문을 종합하여 최종적으로 자연스럽고 정확한 '응답(답변)을 생성'하는 것을 핵심 목적으로 합니다.
사용자 쿼리 생성


폭죽 팡팡~

링크드인으로 공유하고 싶은데 어케하냐

profile
해시태그 정리하기.. 시리즈 썸네일 넣기.. 클라우드 메모 정리, 해커톤 시리즈

0개의 댓글