Atlas Vector Search 개요
Atlas Vector Search를 사용하여 Atlas의 데이터에 대해 벡터 검색을 수행할 수 있습니다. 컬렉션에서 Atlas Vector Search 인덱스를 정의하면 다른 데이터와 함께 벡터 데이터를 원활하게 인덱싱한 다음 인덱싱된 필드에 대해 벡터 검색 쿼리를 수행할 수 있습니다.
Atlas Vector Search는 의미론 검색, 하이브리드 검색, 생성적 검색을 비롯한 다양한 검색 사용 사례를 지원합니다. 벡터 임베딩을 다른 데이터와 함께 Atlas에 저장하면 컬렉션의 다른 필드에서 검색 쿼리를 필터링하고 시맨틱 검색과 전체 텍스트 검색을 결합할 수 있습니다. Atlas를 벡터 데이터베이스로 사용하면 AI 애플리케이션에서 벡터 검색을 활용하고 널리 사용되는 AI 프레임워크 및 서비스와 통합할 수도 있습니다.
Atlas Vector Search는 MongoDB 버전 6.0.11, 7.0.2 또는 ANN 검색 및 MongoDB 버전 6.0.16, 7.0.10, 7.3.2, 의 경우 그 이후 또는 ENN 검색의 경우 그 이후를 실행하는 Atlas 클러스터에서 지원됩니다.
참고
최적의 성능을 위해서는 워크로드 격리를 위한 별도의 검색 노드를 배포하는 것이 좋습니다. 검색 노드는 개별 쿼리 지연 시간을 개선하기 위해 동시 쿼리 실행을 지원합니다. 자세히 알아보려면 배포 옵션 검토를 참조하세요.
Vector Search란 무엇입니까?
벡터 검색은 데이터의 의미론적 또는 기본 의미를 기반으로 결과를 반환하는 검색 방법입니다. 일치하는 텍스트를 찾는 기존의 전체 텍스트 검색과 달리 벡터 검색은 다차원 공간에서 검색 쿼리에 가까운 벡터를 찾습니다. 벡터가 쿼리에 가까울수록 의미가 더 유사합니다.
벡터 검색은 검색 쿼리와 데이터의 의미를 해석함으로써 검색자의 의도와 검색 컨텍스트를 고려하여 보다 관련성 높은 결과를 검색할 수 있도록 합니다.
예를 들어, 'red fruit(빨간 과일)'이라는 용어를 검색한 경우, 전체 텍스트 검색은 이 키워드가 명시적으로 포함된 데이터만 반환합니다. 그러나 시맨틱 검색은 사과나 딸기와 같이 색깔이 빨간색인 과일과 같이 의미가 유사한 데이터를 반환할 수 있습니다.
주요 개념
- 벡터
벡터는 데이터를 여러 차원으로 표현하는 숫자 배열입니다. 벡터는 텍스트, 이미지, 오디오 데이터부터 비정형 데이터까지 모든 종류의 데이터를 표현할 수 있습니다. 의미적 유사성은 벡터 사이의 거리를 측정하여 결정됩니다.
벡터의 차원 수는 벡터를 만드는 데 사용된 임베딩 모델에 의해 결정됩니다. 또한 벡터의 차원 수는 벡터의 유사성을 결정하기 위해 벡터가 그려지는 벡터 공간의 차원 수와 같습니다.
특히, Atlas Vector Search는 더 작은 저장 용량과 의미적 풍부함을 선호하는 일종의 고차원 벡터인 고밀도 벡터를 사용합니다. 고밀도 벡터는 희소 벡터와 달리 더 많은 데이터를 담을 수 있으므로 Atlas Vector Search가 더 복잡한 관계를 포착할 수 있습니다.
- 벡터 임베딩
벡터 임베딩 또는 벡터화는 데이터를 벡터로 변환하는 프로세스입니다. 이러한 임베딩을 통해 데이터의 의미 있는 관계를 캡처하고 시맨틱 검색 및 조회와 같은 작업이 가능해집니다. Atlas를 벡터 데이터베이스로 사용하려면 임베딩 모델을 통해 데이터를 전달하여 임베딩을 만들고, 해당하는 임베딩을 문서의 필드로 저장하세요.
Atlas Vector Search는 쿼리 벡터와 가장 가까운 거리에 있는 벡터 임베딩을 식별하여 의미적 유사성을 결정합니다.
자세한 내용은 벡터 임베딩을 만드는 방법을 참조하세요.
- 임베딩 모델
임베딩 모델은 데이터를 벡터 임베딩으로 변환하는 데 사용하는 알고리즘입니다. 이를 위해 임베딩 모델은 대규모 데이터 코퍼스에 대해 학습된 머신 러닝 모델인 LLM을 사용하여 데이터의 의미를 포착하는 벡터 임베딩을 생성합니다.
선택한 임베딩 모델에 따라 Atlas Vector Search 인덱스 구성 방법이 결정되고 임베딩 모델이 학습된 방식에 따라 쿼리 결과에 영향을 미칩니다. 따라서 데이터와 사용 사례에 따라 다양한 모델이 다양한 장점을 제공합니다.
자세한 내용은 임베딩 모델 선택을 참조하세요.
Atlas Vector Search 인덱스
Atlas에서 데이터의 벡터 검색을 수행하려면 Atlas Vector Search 인덱스를 만들어야 합니다. Atlas Vector Search 인덱스는 다른 데이터베이스 인덱스와 별개이며 쿼리 시점에 벡터 임베딩을 포함하는 문서를 효율적으로 조회하는 데 사용됩니다. Atlas Vector Search 인덱스 정의에서 임베딩이 포함된 컬렉션의 필드를 인덱싱하여 해당 필드에 대한 벡터 검색을 활성화합니다. Atlas Vector Search는 길이가 4096 차원 이하인 임베딩을 지원합니다.
또한 Atlas Vector Search 쿼리를 실행하려는 컬렉션의 부울, 날짜, 숫자, objectId, 문자열 및 UUID 필드를 인덱싱하여 데이터를 사전 필터링할 수도 있습니다. 데이터를 필터링하면 검색 범위가 좁아지고 특정 벡터 임베딩이 비교 대상으로 고려되지 않습니다.
Atlas Vector Search를 위해 필드를 인덱싱하는 방법에 대한 자세한 내용은 벡터 검색을 위해 필드를 인덱싱하는 방법을 참조하세요.
Atlas Vector Search 쿼리 정보
Atlas Vector Search는 계층적 탐색 가능한 작은 세계 알고리즘 및 정확한 근사 최근접 이웃(ENN) 검색을 사용한 근사 최근접 이웃(ANN) 검색을 지원합니다.
가장 유사한 벡터를 찾기 위해 Atlas Vector Search는 모든 벡터 임베딩을 스캔하지 않고 ANN 검색을 수행하며, 인덱싱된 모든 벡터 임베딩에 대해 ENN 검색을 철저하게 진행합니다. 자세한 내용은 vectorSearch 정의를 참조하세요.
Atlas Vector Search 쿼리는 단계가 파이프라인의 첫 번째 단계인 $vectorSearch
집계 파이프라인 단계 로 구성됩니다. 기본 Atlas Vector Search 쿼리 프로세스는 다음과 같습니다.
ANN 또는 ENN 검색을 선택하고 검색 쿼리를 나타내는 벡터 임베딩인 쿼리 벡터를 지정합니다.
Atlas Vector Search는 데이터에서 쿼리 벡터에 가장 가까운 벡터 임베딩을 찾습니다.
Atlas Vector Search는 가장 유사한 벡터가 포함된 문서를 반환합니다.
벡터 검색 쿼리를 사용자 지정하려면, 지원되는 쿼리 또는 집계 연산자와 함께 MQL일치 표현식을 사용하여 인덱싱한 필드에 대한 데이터를 사전 필터링하거나 집계 단계를 추가하여 결과를 추가로 처리하고 구성할 수 있습니다.
Atlas Vector Search 쿼리를 생성하고 실행하는 방법을 알아보려면 벡터 검색 쿼리 실행을 참조하세요.
사용 사례
Atlas Vector Search는 다음과 같은 유형의 벡터 검색 쿼리를 지원합니다.
시맨틱 검색: ANN 또는 ENN 검색 알고리즘을 사용하여 의미적 유사성을 기반으로 벡터 임베딩을 쿼리합니다.
자세한 내용은 시맨틱 검색 수행 방법 및 벡터 검색 쿼리 실행 방법을 참조하세요.
하이브리드 검색: 의미론적 검색과 전체 텍스트 검색 쿼리의 결과를 결합합니다. 자세히 알아보려면 Atlas Vector Search 및 Atlas Search를 사용한 하이브리드 검색 수행을 참조하세요.
Atlas를 벡터 데이터베이스로 사용하면 자연어 처리(NLP), 머신 러닝(ML) 및 생성형 인공지능 애플리케이션을 강화하는 데 Atlas Vector Search를 사용할 수 있습니다.
특히 Atlas에 데이터를 저장하고 Atlas Vector Search를 사용하여 데이터에서 관련 문서를 검색하며 LLM을 활용하여 데이터에 대한 질문에 답함으로써 검색 증강 생성(RAG)을 구현할 수 있습니다. RAG를 로컬로 구현하거나 Atlas Vector Search를 널리 사용되는 프레임워크 및 서비스와 통합하여 구현할 수도 있습니다. 자세한 내용은 Atlas Vector Search를 사용한 검색 증강 생성(RAG)을 참조하세요.
AI 통합
OpenAI, AWS, Google과 같은 AI 제공자가 제공하는 인기 있는 채팅 및 임베딩 모델에 Atlas Vector Search를 사용할 수 있습니다. 또한 MongoDB와 파트너는 AI 기반 애플리케이션에서 Atlas Vector Search를 활용할 수 있도록 특정 제품 통합을 제공합니다. 이러한 통합에는 Atlas를 벡터 데이터베이스로 사용하고, 생성형 인공지능 애플리케이션을 빌드하고, 처음부터 끝까지 RAG를 구현할 수 있는 내장 도구 및 라이브러리가 포함됩니다.
예를 들어 Atlas Vector Search를 LangChain 및 LlamaIndex 같은 오픈 소스 프레임워크와 통합하면 널리 사용되는 LLM 외에도 데이터에 대한 질문에 답변하는 애플리케이션을 빌드할 수 있습니다.
자세히 알아보고 시작하려면 벡터 검색과 AI 기술 통합을 참조하세요.
다음 단계
Atlas Vector Search 인덱스를 만들고 샘플 데이터에 대해 Atlas Vector Search 쿼리를 실행하는 실습을 해보고 싶다면 MongoDB University의 Atlas Search 교육 과정과 다음 페이지의 튜토리얼을 참조하세요.