문서 메뉴

문서 홈MongoDB 실행 및 관리MongoDB Atlas

Atlas Vector Search 개요

이 페이지의 내용

  • Vector Search란 무엇입니까?
  • 주요 개념
  • Atlas Vector Search 인덱스
  • Atlas Vector Search 쿼리
  • 사용 사례
  • AI 통합

Atlas Vector Search를 사용하여 Atlas의 데이터에 대한 벡터 검색을 수행할 수 있습니다. 컬렉션에 Atlas Vector Search 인덱스를 정의하면 다른 데이터와 함께 벡터 데이터를 원활하게 인덱싱한 다음 인덱싱된 필드에 대해 벡터 검색 쿼리를 수행할 수 있습니다.

Atlas Vector Search를 사용하면 시맨틱, 하이브리드 및 생성 검색을 포함한 다양한 검색 사용 사례 를 사용할 수 있습니다. 벡터 임베딩 을 다른 데이터와 함께 Atlas에 저장하면 컬렉션의 다른 필드에 대한 시맨틱 검색 쿼리를 필터링하고 시맨틱 검색을 전체 텍스트 검색과 결합할 수 있습니다. 또한 AI 애플리케이션에서 Atlas Vector Search를 활용하고 널리 사용되는 AI 프레임워크 및 서비스와 통합할 수 있습니다.

Atlas Vector Search는 MongoDB 버전 6 를 실행하는 Atlas cluster에서 지원됩니다.0.11, 7.0.2 이상입니다.

Atlas Vector Search 시작하기

참고

최적의 성능 을 위해 워크로드 격리를 위해 별도의 검색 노드를 배포하는 것이 좋습니다. 검색 노드는 개별 쿼리 지연 시간을 개선하기 위해 동시 쿼리 실행을 지원합니다. 자세히 알아보려면 배포 옵션 검토를 참조하세요.

벡터 검색은 데이터의 시맨틱 또는 기본 의미를 기반으로 결과를 반환하는 검색 방법입니다. 일치하는 텍스트를 찾는 기존의 전체 텍스트 검색과 달리 벡터 검색은 다차원 공간에서 검색 쿼리에 가까운 벡터 를 찾습니다. 벡터가 쿼리에 가까울수록 의미가 유사합니다.

벡터 검색을 사용하면 검색 쿼리와 데이터의 의미를 해석하여 검색자의 의도와 검색 컨텍스트를 고려하여 더 관련성 높은 결과를 검색할 수 있습니다.

예를 들어 '빨간 과일'이라는 용어를 검색한 경우 전체 텍스트 검색은 이러한 키워드를 명시적으로 포함하는 데이터만 반환합니다. 그러나 시맨틱 검색은 사과나 딸기와 같이 색깔이 빨간색인 과일과 같이 의미가 유사한 데이터를 반환할 수 있습니다.

벡터

벡터는 데이터를 다차원으로 나타내는 숫자 배열입니다. 벡터는 텍스트, 이미지, 오디오 데이터부터 구조화되지 않은 데이터에 이르기까지 모든 종류의 데이터를 표현할 수 있습니다. 의미론적 유사성은 벡터 간의 거리를 측정하여 결정됩니다.

구체적으로, Atlas Vector Search는 고차원 벡터 유형인 고밀도 벡터를 사용하여 저장 공간이 더 작고 의미가 풍부합니다. 희소 벡터와 달리 고밀도 벡터는 더 많은 데이터로 압축할 수 있으므로 Atlas Vector Search에서 더 복잡한 관계를 캡처할 수 있습니다.

벡터 임베딩

벡터 임베딩 또는 벡터화는 데이터를 벡터로 변환하는 프로세스입니다. 임베딩 모델 을 통해 데이터를 전달하여 이러한 임베딩을 생성하고, 이러한 임베딩을 Atlas 컬렉션의 필드로 저장합니다.

Atlas Vector Search는 쿼리 벡터에 가장 가까운 벡터 임베딩을 식별하여 의미론적 유사성을 결정합니다. 자세히 알아보려면 Atlas Vector Search 쿼리를 참조하세요.

임베딩 모델

임베딩 모델은 복잡한 데이터를 벡터로 변환하는 알고리즘입니다. 이를 위해 임베딩 모델은 대규모 데이터 코퍼스에서 훈련된 기계 학습 모델인 LLM을 사용하여 데이터의 의미론적 의미를 캡슐화하는 벡터 임베딩을 생성합니다.

이러한 임베딩을 통해 Atlas Vector Search는 데이터의 관계를 더 잘 이해하고 시맨틱 검색 및 조회와 같은 작업을 수행할 수 있습니다. 데이터 및 작업에따라 다양한 임베딩 모델 다양한 이점을 제공합니다.

Atlas에서 데이터에 대해 벡터 검색을 수행하려면 Atlas Vector Search 인덱스를 생성해야 합니다. Atlas Vector Search 인덱스는 다른 데이터베이스 인덱스와 별개이며 쿼리 시점에 벡터 임베딩이 포함된 문서를 효율적으로 검색하는 데 사용됩니다. Atlas Vector Search 인덱스 정의에서 임베딩이 포함된 컬렉션의 필드를 인덱싱하여 해당 필드에 대한 벡터 검색을 활성화합니다. Atlas Vector Search는 너비가 4096 차원 이하인 임베딩을 지원합니다.

또한 컬렉션에서 Atlas Vector Search 쿼리를 실행하려는 부울, 문자열 및 숫자 필드를 인덱싱하여 데이터를 사전 필터링할 수 있습니다. 데이터를 필터링하면 검색 범위가 좁혀지고 특정 벡터 임베딩이 비교 대상으로 고려되지 않습니다.

Atlas Vector Search의 필드를 인덱싱하는 방법을 알아보려면 벡터 검색을 위한 필드 인덱싱 방법을 참조하세요 .

Atlas Vector Search는 Hierarchical Navigable Small Worlds 를 사용하여 근사 가까운 이웃(ANN ) 검색을 지원합니다. 알고리즘. ANN 은 모든 벡터를 스캔하지 않고도 다차원 공간에서 가장 유사한 벡터를 근사화하여 속도를 최적화합니다. 이 접근 방식은 대규모 벡터 데이터 세트에서 데이터를 검색할 때 특히 유용합니다.

Atlas Vector Search 쿼리는 단계가 파이프라인의 첫 번째 단계인 집계 파이프라인 $vectorSearch 단계 로 구성됩니다. 기본 Atlas Vector Search 쿼리 프로세스는 다음과 같습니다.

  1. 검색 쿼리를 나타내는 벡터 임베딩인 쿼리 벡터 를 지정합니다.

  2. Atlas Vector Search는 ANN 검색을 사용하여 데이터에서 쿼리 벡터에 가장 가까운 벡터 임베딩을 찾습니다.

  3. Atlas Vector Search는 가장 유사한 벡터를 포함하는 문서를 반환합니다.

벡터 검색 쿼리를 사용자 지정하려면 지원되는 비교 또는 애그리게이션 연산자 와 함께 MQL일치 표현식을 사용하여 인덱싱한 필드의 데이터를 사전 필터링하거나,애그리게이션 단계 를 추가하여 결과를 추가로 처리하고 구성할 수 있습니다.

Atlas Vector Search 쿼리를 만들고 실행하는 방법을 알아보려면 벡터 검색 쿼리 실행을 참조하세요.

Atlas Vector Search는 다음과 같은 유형의 벡터 검색 쿼리를 지원합니다.

Atlas를 벡터 데이터베이스 로 사용하면 Atlas Vector Search를 사용하여 자연어 처리(NLP), 머신 러닝(ML) 및 생성 형 AI 애플리케이션을 구축할 수 있습니다.

구체적으로, Atlas에 데이터를 저장하고, Atlas Vector Search를 사용하여 데이터에서 관련 문서를 검색하고,LLM 을 활용하여 데이터에 대한 질문에 답변하는 방식으로 RAG(검색-증강 생성) 를 구현할 수 있습니다. 로컬에서 RAG 를 구현하거나 Atlas Vector Search를 널리 사용되는 프레임워크 및 서비스와 통합 하여 구현할 수 있습니다. 자세한 내용은 AI 키 개념을 참조하세요.

Atlas Vector Search를 OpenAI, AWS , Google과 같은 AI 제공자의 인기 있는 채팅 및 임베딩 모델과 함께 사용할 수 있습니다. MongoDB와 파트너사는 생성형 AI 및 AI 기반 애플리케이션에서 Atlas Vector Search를 활용하는 데 도움이 되는 특정 제품 통합도 제공합니다. 이러한 통합에는 애플리케이션을 빌드하고 처음부터 끝까지 RAG 를 구현할 수 있는 기본 제공 도구 및 라이브러리가 포함됩니다.

예를 들어, Atlas Vector Search를 LangChain 과 같은 오픈 소스 프레임워크와 통합할 수 있습니다.및 LlamaIndex 를 사용하면 인기 있는 LLM외에도 데이터에 대한 질문에 답변할 수 있습니다.

자세히 알아보고 시작하려면 벡터 검색과 AI 기술 통합을 참조하세요.

← Atlas Search 변경 로그