RAG(검색 보강 생성)는 더 정확한 응답을 생성할 수 있도록 대규모 언어 모델(LLM)을 추가 데이터로 보강하는 데 사용되는 아키텍처입니다. LLM을 MongoDB Vector Search 기반 검색 시스템과 결합하여 생성형 AI 애플리케이션에 RAG 구현 수 있습니다.
시작하기
MongoDB Vector Search로 RAG를 빠르게 사용해 보려면 MongoDB Search 플레이그라운드에서 챗봇 데모 빌더 를 사용하세요. 자세한 학습 은 Search Playground의 챗봇 데모 빌더를참조하세요.
MongoDB Vector Search를 사용하여 자체 RAG 시스템을 구현 하려면 이 페이지의 튜토리얼 을 참조하세요.
왜 RAG를 사용해야 하나요?
LLM으로 작업할 때 다음과 같은 제한 사항이 발생할 수 있습니다.
오래된 데이터: LLM은 특정 시점까지의 정적 데이터세트에 대해 학습됩니다. 따라서 지식 기반이 제한되어 있고 오래된 데이터를 사용 중일 수 있습니다.
추가 데이터에 대한 액세스 없음: LLM은 로컬, 개인화된 또는 도메인별 데이터에 액세스 할 수 없습니다. 따라서 특정 도메인에 대한 지식이 부족할 수 있습니다.
환각: 불완전하거나 오래된 데이터에 근거한 LLM은 부정확한 응답을 생성할 수 있습니다.
이러한 제한 사항은 다음 단계를 통해 RAG를 구현하여 해결할 수 있습니다.
수집: 사용자 지정 데이터를 MongoDB 와 같은 벡터 데이터베이스 에 벡터 임베딩으로 저장합니다. 이를 통해 최신 개인화된 데이터로 지식창고를 생성할 수 있습니다.
조회: MongoDB Vector Search와 같은 검색 솔루션을 사용하여 사용자의 질문에 따라 데이터베이스에서 의미적으로 유사한 문서를 조회합니다. 이러한 문서는 추가적인 관련 데이터로 LLM을 보강합니다.
생성: LLM을 프롬프트합니다. LLM은 검색된 문서를 컨텍스트로 사용하여 더 정확하고 관련성 높은 응답을 생성하여 환각을 줄입니다.
RAG는 AI 시스템이 도메인별 개인화된 응답을 제공할 수 있도록 하므로 AI 챗봇을 구축하는 데 효과적인 아키텍처입니다. 프로덕션 환경에서 사용할 수 있는 챗봇을 만들려면 요청을 라우팅하도록 서버 구성하고 RAG 구현 위에 사용자 인터페이스를 빌드 .
MongoDB Vector Search를 사용한 RAG
MongoDB Vector Search를 사용하여 RAG 를 구현 하려면 MongoDB 에 데이터를 수집하고, MongoDB Vector Search로 문서를 조회 , LLM을 사용하여 응답을 생성합니다. 이 섹션에서는 MongoDB Vector Search를 사용한 기본 또는 순진한 RAG 구현의 구성 요소에 대해 설명합니다. 단계별 지침은 튜토리얼을 참조하세요.

수집
RAG용 데이터 수집에는 사용자 지정 데이터를 처리 하고 이를 벡터 데이터베이스 에 저장하여 검색을 준비하는 작업이 포함됩니다. MongoDB 벡터 데이터베이스 로 사용하여 기본 수집 파이프라인 만들려면 다음을 수행합니다.
데이터를 준비하세요.
데이터를 로드하고 처리하며 청크하여 RAG 애플리케이션에 대비합니다. 청크화는 최적의 검색을 위해 데이터를 더 작은 부분으로 나누는 것을 의미합니다.
데이터를 벡터 임베딩으로 변환합니다.
임베딩 모델을 사용하여 데이터를 벡터 임베딩으로 변환합니다. 자세한 내용은 벡터 임베딩을 만드는 방법을 참조하세요.
데이터와 임베딩을 MongoDB 에 저장합니다.
이러한 임베딩을 클러스터 에 저장합니다. 컬렉션 의 다른 데이터와 함께 임베딩을 필드 로 저장 .
Retrieval
검색 시스템을 구축하려면 벡터 데이터베이스 에서 가장 관련성이 높은 문서를 검색하고 반환하여 LLM을 보강해야 합니다. MongoDB Vector Search로 관련 문서를 조회 하려면 사용자의 질문을 벡터 임베딩으로 변환하고 MongoDB 컬렉션 의 데이터에 대해 벡터 검색 쿼리 실행 가장 유사한 임베딩을 가진 문서를 찾습니다.
MongoDB Vector Search를 사용하여 기본 검색을 수행하려면 다음을 수행합니다.
벡터 임베딩이 포함된 컬렉션에서 MongoDB Vector Search 인덱스 정의합니다.
사용자의 질문에 따라 문서를 검색하려면 다음 방법 중 하나를 선택하세요.
널리 사용되는 프레임워크 또는 서비스와 MongoDB Vector Search 통합 을 사용합니다. 이러한 통합에는 MongoDB Vector Search를 사용하여 검색 시스템을 쉽게 빌드 활성화 내장 라이브러리 및 도구가 포함됩니다.
나만의 검색 시스템을 구축하세요. 자체 함수와 파이프라인을 정의하여 사용 사례 에 맞는 MongoDB Vector Search 쿼리를 실행 수 있습니다.
MongoDB Vector Search를 사용하여 기본 검색 시스템을 빌드 방법을 학습하려면 튜토리얼을 참조하세요.
생성
응답을 생성하려면 검색 시스템을 LLM과 결합하세요. 벡터 검색을 수행하여 관련 문서를 검색한 후 보다 정확한 응답을 생성할 수 있도록 LLM에 컨텍스트로 관련 문서와 함께 사용자의 질문을 제공합니다.
다음 방법 중 하나를 선택하여 LLM에 연결합니다.
널리 사용되는 프레임워크 또는 서비스와 MongoDB Vector Search 통합 을 사용합니다. 이러한 통합에는 최소한의 설정으로 LLM에 연결할 수 있는 내장 라이브러리와 도구가 포함되어 있습니다.
LLM의 API를 호출합니다. 대부분의 AI 제공자는 응답을 생성하는 데 사용할 수 있는 API를 생성 모델에 제공합니다.
오픈 소스 LLM을 로드합니다. API 키나 크레딧이 없는 경우 애플리케이션 에서 로컬로 로드하여 오픈 소스 LLM을 사용할 수 있습니다. 구현 예시는 MongoDB Vector Search를 사용하여 로컬 RAG 구현 구축 튜토리얼을 참조하세요.
튜토리얼
다음 예시 MongoDB Vector Search 기반 검색 시스템으로 RAG를 구현 방법을 보여줍니다. 시작하려면 선호하는 임베딩 모델, LLM 및 프로그래밍 언어 선택하세요.
다음 단계
추가 RAG 튜토리얼은 다음 리소스를 참조하세요.
널리 사용되는 LLM 프레임워크 및 AI 서비스로 RAG를 구현 방법을 학습 MongoDB AI 통합을 참조하세요.
로컬 Atlas 배포서버 및 로컬 모델을 사용하여 RAG 를 구현 방법을 학습하려면, MongoDB Vector Search를 사용하여 로컬 RAG 구현 구축을 참조하세요.
사용 사례 기반 튜토리얼 및 대화형 Python 노트북은 Docs 도구 노트북 리포지토리 및 생성형 AI 사용 사례 리포지토리를 참조하세요.
AI 에이전트 빌드 하고 에이전트 RAG를 구현 MongoDB 로 AI 에이전트 빌드를 참조하세요.
결과 개선
RAG 애플리케이션을 최적화하려면 Voyage AI 와 같은 강력한 임베딩 모델을 사용하여 고품질 벡터 임베딩을 생성해야 합니다.
또한 MongoDB Vector Search는 고급 검색 시스템을 지원합니다. 클러스터 의 다른 데이터와 함께 벡터 데이터를 원활하게 인덱스 할 수 있습니다. 이를 통해 컬렉션 의 다른 필드를 사전 필터링 하거나 시맨틱 검색 과 전체 텍스트 검색 결과를 결합하는 하이브리드 검색 수행하여 결과를 개선할 수 있습니다.
다음 리소스를 사용할 수도 있습니다.
임베딩 모델 선택, 청크 전략, 평가에 대해 자세히 알아보려면 다음 리소스를 참조하세요.