중요
text 유형의 MongoDB Vector Search 인덱스는 비공개 미리보기에서 공개 미리보기로의 전환을 준비하는 과정에서 더 이상 사용되지 않습니다. 자세히 학습하려면 미리 보기 기능을 참조하세요.
클러스터 의 텍스트 데이터에 대한 벡터 임베딩을 자동으로 생성하고 관리 MongoDB Vector Search를 구성할 수 있습니다. M10 이상의 Atlas cluster 에서 원클릭 AI 시맨틱 검색 인덱스 생성하고Voyage AI 임베딩 모델을 사용하여 벡터를 사용한 인덱싱, 업데이트 및 쿼리를 간소화할 수 있습니다.
자동 임베딩을 활성화 하면 MongoDB Vector Search는 Atlas 컬렉션 의 지정된 텍스트 필드 에 대한 인덱스 타임과 자동화된 임베딩을 위해 인덱싱된 필드 에 대한 쿼리 의 텍스트 문자열에 대한 쿼리 타임에 지정된 임베딩 모델을 사용하여 임베딩을 자동으로 생성합니다.
고려 사항
중요
모든 클라우드 공급자 의 M10 이상 클러스터 에서 MongoDB Vector Search 자동 임베딩을 사용할 수 있습니다. 그러나 벡터 임베딩을 생성하기 위한 추론 프로세스 처리하는 서비스는 Google Cloud에서 실행됩니다. 즉, 클러스터의 클라우드 공급자 와 관계없이 임베딩 생성 및 검색을 위해 데이터가 Google Cloud로 전송됩니다. 엔터프라이즈 급 보안을 제공하므로 데이터는 클러스터 에만 저장됩니다.
임베딩 모델은 공유된 멀티 테넌트 추론 플랫폼에서 실행 . 따라서 미리 보기 기간 동안에는 문서 100k 미만인 데이터 세트를 사용해야 하며 부하 테스트가 아닌 기능 평가를 위해서만 쿼리를 실행 . 한도가 더 높은 사용 사례 있는 경우 계정 팀 문의하세요.
워크로드 에 대한 엄격한 요금 제한은 없지만 전역 제한이 있습니다. 쿼리가 속도 제한 오류(오류 409)를 반환하면 백오프를 수행하고 애플리케이션 코드에서 다시 시도합니다. 이를 통해 애플리케이션 속도 제한을 정상적으로 처리하다 하고 지속적인 기능을 보장할 수 있습니다.
전제 조건
자동 임베딩을 사용하여 벡터 검색 활성화 하려면 다음이 필요합니다.
M10또는 더 높은 클러스터자동화된 임베딩을 위해 인덱스 하려는 텍스트 필드 있는 컬렉션 입니다.
다음 클라이언트 중 하나:
Atlas UI를 사용한 인덱스 생성
mongosh인덱스 생성 및 쿼리 실행인덱스 생성 및 쿼리 실행 위한노드 드라이버 이상 6.6.0
인덱스 생성 및 쿼리 실행 위한Python 드라이버 이상 4.7
자동화된 임베딩을 위한 MongoDB Vector Search 인덱스
다음 섹션에서는 텍스트 필드에 대한 임베딩을 자동으로 생성하기 위한 MongoDB Vector Search 인덱스 구문과 필드에 대해 설명하고 자동 임베딩을 위해 인덱스 구성하는 단계를 안내합니다.
필요한 액세스 권한
MongoDB Vector Search 인덱스를 생성하고 관리 하려면 Project Data Access Admin 이상의 역할 필요합니다.
인덱스 구문
다음은 임베딩 자동 생성을 활성화하는 구문입니다.
1 { 2 "fields": [ 3 { 4 "type": "text", 5 "path": "<field-name>", 6 "model": "voyage-3-large | voyage-3.5 | voyage-3.5-lite" 7 } 8 ] 9 }
인덱스 필드
인덱스 정의에는 다음 필드가 필요합니다.
필드 | 유형 | 설명 |
|---|---|---|
| 문자열 | 필드 의 유형입니다. 자동 임베딩의 경우 이 값이 |
| 문자열 | 자동 임베딩을 위해 인덱스 하려는 컬렉션 필드 의 이름입니다. |
| 문자열 | 인덱스를 위한 임베딩을 생성할 때 사용할 Voyage AI 임베딩 모델입니다. 다음 모델 중 하나를 지정할 수 있습니다.
인덱스 생성한 후 이후에 임베딩 모델을 변경하면 MongoDB Vector Search는 데이터 세트에 대한 새 임베딩을 생성합니다. MongoDB Vector Search가 임베딩을 생성하는 동안 이전 임베딩을 사용하여 계속 쿼리 할 수 있습니다. 이전 임베딩이 새 임베딩 모델의 임베딩으로 대체되면 MongoDB Vector Search는 이전 임베딩을 제거합니다. |
고려 사항
자동 임베딩의 인덱스 필드는 다음 vector 유형 인덱스 필드와 상호 배타적입니다.
numDimensionssimilarityquantization
컬렉션에 이미 임베딩이 있는 경우 vector 필드 유형을 사용하여 임베딩을 인덱싱해야 합니다. 임베딩을 사용하여 필드를 인덱싱하는 방법에 대해 자세히 알아보려면 벡터 검색을 위해 필드를 인덱스하는 방법을 참조하세요.
임베딩을 자동으로 생성하기 위해 텍스트 필드 인덱스 하고 자체 임베딩으로 필드 인덱스 하려는 경우 text 및 vector 유형을 모두 사용하여 인덱스 만들 수 있습니다. MongoDB Vector Search는 text 유형으로 인덱싱된 필드 대해서만 쿼리에 대한 임베딩을 자동으로 생성합니다. vector 유형으로 인덱싱된 필드 검색하려면 쿼리 에 임베딩을 지정해야 합니다.
필드를 인덱스 MongoDB Vector Search filter 유형을 사용하여 데이터를 사전 필터링할 수도 있습니다.
중요
필터링된 쿼리는 일반적으로 이에 상응하는 필터링되지 않은 쿼리 보다 느립니다.
데이터 사전 필터링에 대해 자세히 학습하려면 filter 유형 정보를 참조하세요.
자동 임베딩을 위한 인덱스 만들기
다음 절차에서는 MongoDB Vector Search 인덱스 에서 자동화된 임베딩을 활성화하는 단계를 안내합니다. sample_mflix.movies 데이터 세트를 로드한 경우 절차의 예시 컬렉션 의 fullplot 필드 에 대해 자동 임베딩을 활성화 방법을 보여줍니다.
자동 임베딩을 사용하는 MongoDB 벡터 검색 쿼리
자동 임베딩이 적용된 인덱스를 생성한 후에는 인덱싱된 필드를 대상으로 텍스트 쿼리를 실행할 수 있습니다. MongoDB Vector Search는 인덱스에 지정된 동일한 임베딩 모델을 사용하여 쿼리 내 텍스트 스트링에 대한 임베딩을 자동으로 생성합니다. 이 기능은 지정된 쿼리 텍스트와 의미적으로 유사한 문서를 인덱스에서 검색하기 위해 임베딩을 사용합니다.
다음 섹션에서는 쿼리 텍스트에 대한 임베딩을 자동으로 생성하기 위한 $vectorSearch 파이프라인 구문 및 필드를 설명하고, 자동 임베딩을 위해 인덱싱된 필드에 대해 시맨틱 검색 쿼리를 실행하는 방법을 보여 줍니다.
쿼리 구문
다음 구문은 자동 임베딩을 위해 인덱싱된 필드 에 대해 쿼리 실행 방법을 보여줍니다.
1 { 2 "$vectorSearch": { 3 "index": "<index-name>", 4 "limit": <number-of-results>, 5 "numCandidates": <number-of-candidates>, 6 "path": "<field-to-search>", 7 "query": "<query-string>" 8 } 9 }
쿼리 필드
자동화된 임베딩을 사용하는 MongoDB Vector Search 쿼리 에는 다음 필드가 필요합니다.
필드 | 유형 | 필요성 | 설명 |
|---|---|---|---|
| 부울 | 조건부 |
ENN 또는 ANN 검색을 실행할지 여부를 지정하는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
생략하는 경우 기본값은 |
| 문자열 | 필수 사항 | 사용할 MongoDB Vector Search 인덱스 의 이름입니다. 인덱스 이름의 철자가 잘못되었거나 지정된 인덱스 클러스터 에 없는 경우 MongoDB Vector Search는 결과를 반환하지 않습니다. |
| 숫자 | 필수 사항 | 결과에 반환할 문서 수( |
| 숫자 | 조건부 |
검색 중에 사용할 가장 가까운 이웃의 수입니다. 값은 ( |
| 문자열 | 필수 사항 | 검색할 인덱싱된 벡터 유형 필드입니다. |
| 문자열 | 필수 사항 | 임베딩을 자동으로 생성하고 시맨틱 검색을 수행할 텍스트입니다. |
고려 사항
인덱싱된 필드 대해 ANN 또는 ENN 쿼리 실행 수 있습니다. 자세히 알아보려면 근사 최근접 이웃 검색하다 및 등가 최근접 이웃 검색하다를 참조하세요.
자동 임베딩을 위해 인덱싱된 필드에 대해서는 쿼리 에서 벡터 임베딩을 지정할 수 없습니다. 대신 필드 에 대해 언어 쿼리 실행 해야 합니다. 자동 임베딩을 위해 인덱싱된 필드 에 대해 언어 쿼리 실행 하면 MongoDB Vector Search는 인덱싱된 필드 와 동일한 임베딩 모델을 사용하여 쿼리 텍스트에 대한 임베딩을 자동으로 생성합니다. 그런 다음 생성된 임베딩을 사용하여 인덱싱된 필드 에 대해 시맨틱 검색 수행합니다.
선택적으로 쿼리 에 filter 필드를 지정하여 MongoDB Vector Search가 시맨틱 검색 수행하는 문서를 사전 필터링할 수 있습니다. 자세한 학습 은 MongoDB 벡터 검색 사전 필터링을 참조하세요.
선택적으로 결과에서 문서의 점수를 조회 할 수도 있습니다. 자세한 학습 은 MongoDB Vector Search 점수 산정을 참조하세요.