Docs Menu
Docs Home
/ /

벡터 필드를 인덱스하는 방법

유형을 사용하여 벡터 임베딩을 인덱스 수 있습니다. 벡터 필드 다음 유형의 vector 숫자 배열 이 포함되어야 합니다.

  • BSON int32, int64 또는 double 데이터 유형

  • BSON double 데이터 유형

단계와 유사한 vectorSearch 연산자 집계 파이프라인 $vectorSearch $search 에서 사용하여 vector 유형으로 인덱싱된 필드를 쿼리 할 수 있습니다.

다음과 같은 제한 사항이 적용됩니다:

  • 객체 배열( MongoDB Search embeddedDocuments 유형)이 있는 필드는 vector 유형으로 인덱스 할 수 없습니다.

  • 유형을 포함하는 인덱스 정의에서는 storedSource를true vector include 설정하다 수 없습니다. 대신 mongot exclude 를 사용하여 vector 에 저장 필드를 지정하거나 를 사용하여 유형의 필드 저장 에서 제외합니다.

  • $vectorSearch 단계를 사용하여 vector 유형으로 인덱싱된 필드를 쿼리 할 수 없습니다.

MongoDB Search vector 유형은 다음 매개 변수를 사용합니다.

옵션
유형
필요성
설명

type

vector

필수 사항

이 토크나이저 유형을 식별하는 사람이 읽을 수 있는 레이블입니다. 값은 vector이어야 합니다.

numDimensions

Int

필수 사항

MongoDB Search가 인덱스 시점과 쿼리 시점에 시행하는 벡터 차원의 수입니다. 이 필드 vector유형 필드에 대해서만 설정하다 수 있습니다. 8192보다 작거나 같은 값을 지정해야 합니다.

양자화된 벡터 또는 BinData를 인덱싱 하려면 다음 값 중 하나를 지정할 수 있습니다.

  • 1 수집을 위한 int8 벡터의 경우 8192 로 설정합니다.

  • 수집을 위한 int1 벡터에 대한 8 의 배수입니다.

  • 1 binData(float32) 의 경우 8192, 자동 스칼라 양자화의 경우 array(float32) 벡터입니다.

  • 자동 이진 양자화를 위한 binData(float32)array(float32) 벡터에 대한 8 의 배수입니다.

선택한 임베딩 모델에 따라 벡터 임베딩의 차원 수가 결정되며, 일부 모델에는 출력되는 차원 수에 대한 여러 옵션이 있는 경우도 있습니다. 자세한 학습은 임베딩 생성 방법 선택을 참조하세요.

similarity

문자열

필수 사항

상위 K-최근접 이웃을 검색 데 사용하는 벡터 유사성 함수입니다. 이 필드 vector유형 필드에 대해서만 설정하다 수 있습니다.

다음 값 중 하나를 지정할 수 있습니다.

  • euclidean - 벡터의 끝과 끝 사이의 거리를 측정합니다.

  • cosine - 벡터 사이의 각도를 기준으로 유사성을 측정합니다.

  • dotProduct - cosine와(과) 같이 유사성을 측정하지만 벡터의 크기를 고려합니다.

자세한 학습 유사성 함수 정보를 참조하세요.

quantization

문자열

옵션

벡터에 대한 자동 벡터 양자화 유형입니다. 임베딩이 float 또는 double 벡터인 경우에만 이 설정을 사용합니다.

다음 값 중 하나를 지정할 수 있습니다.

  • none - 벡터 임베딩에 대한 자동 양자화를 수행하지 않음을 나타냅니다. 수집을 위해 사전에 양자화된 벡터가 있는 경우 이 설정을 사용합니다. 생략하면 이 값이 기본값 입니다.

  • scalar - 값을 1 바이트 정수로 변환하는 스칼라 양자화를 나타냅니다.

  • binary - 값을 단일 비트로 변환하는 이진 양자화를 나타냅니다. 이 값을 사용하려면 numDimensions 이 8의 배수여야 합니다.

    정밀도가 중요한 경우 binary 대신 none 또는 scalar 를 선택합니다.

자세한 학습 은 벡터 양자화를 참조하세요.

hnswOptions

객체

옵션

Hierarchical Navigable Small Worlds 그래프 구성에 사용할 매개변수입니다. 생략하면 maxEdgesnumEdgeCandidates 매개변수에 기본값 을 사용합니다.

중요: 이 기능은 미리보기 기능 으로 사용할 수 있습니다. 기본값 을 수정하면 MongoDB Search 인덱스 및 쿼리에 부정적인 영향 수 있습니다.

hnswOptions.
maxEdges

Int

옵션

Hierarchical Navigable Small Worlds 그래프에서 노드가 가질 수 있는 최대 간선(또는 연결) 수입니다. 값은 16 에서 64 사이일 수 있으며 둘 다 포함합니다. 생략하면 기본값은 16입니다. 예시 16 들어 값의 경우, 각 노드 Hierarchical Navigable Small Worlds 그래프 의 각 레이어에서 나가는 가장자리를 최대 16개 가질 수 있습니다.

숫자가 높을수록 그래프 더 잘 연결되어 있으므로 리콜(검색 결과의 정확도)이 향상됩니다. 그러나 이렇게 하면 그래프 노드 당 평가할 이웃 수가 증가하여 쿼리 및 인덱싱 시간도 늘어나고, Hierarchical Navigable Small Worlds 그래프 에서 각 연결에 대해 추가 노드를 저장 데 더 많은 메모리가 필요합니다.

hnswOptions.
numEdgeCandidates

Int

옵션

쿼리 시 numCandidates와 유사하게, 이 매개변수는 새 노드에 연결할 가장 가까운 노드를 찾기 위해 평가할 최대 노드 수를 제어합니다. 값은 100~ 3200일 수 있으며, 두 값 모두 포함됩니다. 이를 생략하는 경우 기본값은 100입니다.

숫자가 클수록 연결이 고품질인 그래프 제공하여 검색 품질(리콜)을 개선할 수 있지만 쿼리 지연 시간 도 증가할 수 있습니다.

다음 sample_mflix.embedded_movies 인덱스 정의 예시 샘플 데이터에서 컬렉션 사용합니다.컬렉션 로드한 후 다음 예시 plot_embedding_voyage_3_large vector vectorSearch 사용하여( MongoDB Search 연산자)를 사용하여 쿼리를 실행 위해 필드 를 유형으로 인덱스 할 수 있습니다. 이 인덱스 에 대해 실행 샘플 쿼리 는 예제를 참조하세요.

이 인덱스 정의는 기본값 를 사용하여 동적으로 인덱싱할 수 있는 모든 필드를 typeSet 자동으로 plot_embedding_voyage_3_large 인덱싱하고 vector 다음 설정을 사용하여 필드 유형으로 인덱싱합니다.

  • 2048 차원 수

  • dotProduct 유사성 함수

  • scalar 양자화

돌아가기

uuid

이 페이지의 내용