Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

자동 임베딩 작동 방식

클러스터 의 텍스트 데이터에 대한 벡터 임베딩을 자동으로 생성하고 관리 MongoDB Vector Search를 구성할 수 있습니다. 클러스터 에서 원클릭 AI 시맨틱 검색 인덱스 생성하고Voyage AI 임베딩 모델을 사용하여 벡터를 사용한 인덱싱, 업데이트 및 쿼리를 간소화할 수 있습니다.

자동 임베딩을 활성화 하면 MongoDB Vector Search는 컬렉션 의 지정된 텍스트 필드 에 대한 인덱스 타임과 자동화된 임베딩을 위해 인덱싱된 필드 에 대한 쿼리 의 텍스트 문자열 쿼리 타임에 지정된 임베딩 모델을 사용하여 임베딩을 자동으로 생성합니다.

자동 임베딩을 위한 MongoDB Vector Search 인덱스 생성하는 경우, MongoDB 초기 동기화를 수행하여 컬렉션 의 모든 기존 문서에 대한 임베딩을 생성합니다.

  1. 문서를 스캔합니다.

    MongoDB Vector Search는 인덱스된 텍스트 필드 포함하는 컬렉션 의 모든 문서를 스캔합니다.

  2. 임베딩을 생성합니다.

    각 문서 에 대해 MongoDB Vector Search는 인덱싱된 필드 의 텍스트를 Voyage AI 임베딩 모델로 전송하여 벡터 임베딩을 생성합니다.

  3. 임베딩을 저장합니다.

    MongoDB Vector Search는 생성된 임베딩을 동일한 클러스터 별도의 내부 시스템 컬렉션 (__mdb_internal_search)에 저장하여 데이터 지역성을 유지하면서 임베딩을 애플리케이션 데이터와 격리된 상태로 유지합니다.

  4. 인덱스 빌드합니다.

    임베딩이 생성된 후 MongoDB Vector Search는 생성된 임베딩을 사용하여 인덱스 를 빌드하여 벡터 검색 활성화 합니다.

초기 동기화 중에 MongoDB 문서를 배치로 처리하고 특수 Flex 추론 처리 계층 사용하여 처리량 최적화합니다.

참고

초기 동기화 기간은 문서 수, 인덱스된 필드 의 텍스트 길이, 사용 가능한 속도 제한 할당량에 따라 달라집니다. 대규모 컬렉션의 경우 초기 동기화 완료하는 데 몇 시간이 걸릴 수 있습니다.

초기 동기화 후 MongoDB Vector Search는 임베딩이 변경될 때 데이터와 자동으로 동기화된 상태를 유지합니다.

인덱스된 텍스트 필드 가 있는 새 문서 삽입하면 MongoDB Vector Search는 자동으로 다음을 수행합니다.

  1. 변경 스트림을 통해 새 문서 감지합니다.

  2. 구성된 모델을 사용하여 텍스트 필드 에 대한 임베딩을 생성합니다.

  3. 시스템 컬렉션 에 임베딩을 저장합니다.

  4. 새로운 임베딩을 포함하도록 MongoDB Vector Search 인덱스 업데이트합니다.

문서 업데이트 인덱싱된 텍스트 필드 변경되면 MongoDB Vector Search는 자동으로 다음을 수행합니다.

  1. 변경 스트림을 통해 필드 변경을 감지합니다.

  2. 업데이트된 텍스트에 대한 새 임베딩을 생성합니다.

  3. 시스템 컬렉션 의 이전 임베딩을 대체합니다.

  4. 새로운 임베딩으로 MongoDB Vector Search 인덱스 업데이트합니다.

참고

MongoDB Vector Search는 자동 임베딩을 위해 인덱싱되지 않은 필드에 대한 업데이트에 대해 임베딩 재생성을 트리거하다 하지 않습니다.

문서 삭제 하면 MongoDB Vector Search는 시스템 컬렉션 에서 해당 임베딩을 자동으로 제거하고 인덱스 를 업데이트합니다.

자동 임베딩은 멀티 테넌트 환경에서 MongoDB 가 호스팅하고 managed Voyage AI의 임베딩 모델을 사용합니다.

  • 호스팅 서비스: 모든 임베딩 모델은 MongoDB 에서 호스팅하고 유지 관리합니다. 모델 추론 플랫폼은 미국 리전 의 Google Cloud cloud 에 있는 MongoDB 인프라에서 실행됩니다. 모델 인프라를 배포, 구성 또는 관리 필요가 없습니다.

  • API 기반 액세스:Voyage AI API 키를 사용하도록 구성된 자체 관리 배포서버의 경우, MongoDB Voyage AI의 API 엔드포인트에 텍스트를 전송하여 임베딩을 생성합니다. 임베딩은 MongoDB 로 반환되어 클러스터 에 저장됩니다.

  • 멀티 테넌트 아키텍처: 임베딩 서비스는 여러 사용자가 공유합니다. 이 멀티테넌트 모델은 다음을 제공합니다.

    • 공유 인프라를 통한 비용 효율성

    • 자동 모델 업데이트 및 개선

    • 고가용성 및 확장성

  • 자동 임베딩 서비스로 전송된 텍스트는 임베딩을 생성하는 데만 사용되며 모델 교육 에 저장되거나 사용되지 않습니다.

  • 임베딩은 MongoDB cluster 로 반환되어 자체 데이터베이스 내에 저장됩니다.

  • 자동 임베딩 서비스와의 모든 통신은 암호화됨 연결을 통해 이루어집니다.

임베딩 서비스는 멀티 테넌트입니다. 따라서 MongoDB 모든 고객이 공정하게 사용할 수 있도록 요금 제한을 적용합니다. 속도 제한과 이 제한이 자동 임베딩 작업에 미치는 영향에 대해 자세히 학습 속도 제한을 참조하세요.

자동 임베딩을 사용하여 벡터 검색 쿼리 실행 MongoDB 쿼리 텍스트에 대한 임베딩 생성을 자동으로 처리합니다.

  1. 쿼리 텍스트 제출: query 미리 생성된 벡터 $vectorSearch 대신 단계의 필드 에 텍스트 문자열을 제공합니다.

  2. 임베딩 생성: MongoDB 쿼리 텍스트를 자동 임베딩 서비스로 전송하여 인덱스 에 지정된 동일한 모델(또는 옵션으로 재정의하는 경우 호환되는 model 모델)을 사용하여 임베딩을 생성합니다.

  3. 벡터 검색: 생성된 쿼리 임베딩은 구성된 유사성 함수(코사인, dotProduct 또는 유클리드)를 사용하여 인덱싱된 임베딩을 검색 데 사용됩니다.

  4. 반환된 결과: MongoDB 쿼리 와의 유사성을 기준으로 순위가 매겨진 문서를 반환합니다.

자동 임베딩을 사용하는 각 쿼리 임베딩을 생성하기 위해 API 호출이 필요하므로 자동 임베딩 속도 제한에 포함됩니다. 쿼리 처리량 및 비용 관리에 대해 자세히 학습 속도 제한을 참조하세요.

  • 대규모 컬렉션은 속도 제한에 도달하면 초기 동기화 완료하는 데 상당한 시간이 걸릴 수 있습니다.

  • MongoDB 실패한 임베딩 요청을 자동으로 재시도하고 지수 백오프를 구현합니다.

  • Atlas Search 모니터링통해 동기화 진행 상황을 모니터 할 수 있습니다.

  • 문서 업데이트는 속도 제한이 적용되는 대로 처리됩니다.

  • 업데이트가 속도 제한을 초과하는 경우 용량 사용할 수 있게 되면 대기열에 추가되어 처리됩니다.

  • 애플리케이션 계속 정상적으로 작동합니다. 임베딩 생성만 지연될 수 있습니다.

  • 쿼리 속도 제한은 수행할 수 있는 동시 검색 수에 영향을 줍니다.

  • 쿼리 속도 제한을 초과하는 경우 쿼리는 속도 제한을 초과했음을 나타내는 오류를 반환합니다.

  • 자주 사용하는 쿼리 결과를 캐싱하거나 처리량 높이려면 유료 계층 으로 업그레이드하는 것이 좋습니다.

자동 임베딩은 별도의 예비 데이터베이스 사용하여 벡터 임베딩을 저장 .인덱스 에 대해 생성된 임베딩 컬렉션 찾고 생성된 임베딩 컬렉션 에서 임베딩을 조회 할 수 있습니다.

임베딩 스토리지

MongoDB 생성된 임베딩을 비동기적으로 저장하고 내부에서 생성된 임베딩 컬렉션 에 유지합니다. 이 생성된 임베딩 컬렉션 동일한 클러스터 의 이라는 전용 내부 데이터베이스 에 __mdb_internal_search 존재합니다. 클러스터 의 모든 자동 임베딩 인덱스 이 데이터베이스 내에 해당하는 생성된 임베딩 컬렉션 정확히 하나만 있습니다. 자세한 학습 은 생성된 임베딩 컬렉션을 참조하세요.

경고

__mdb_internal_search 데이터베이스 는 MongoDB 에서 만들고 managed 예약된 내부 네임스페이스 입니다. 이 데이터베이스 또는 해당 컬렉션을 조작하지 마세요. 이 예약된 네임스페이스 수정하면 인덱스 실패 및 일관되지 않은 검색 결과가 발생할 수 있습니다.

생성된 임베딩 컬렉션의 구조

생성된 임베딩 컬렉션 소스 컬렉션 문서 당 하나의 문서 포함되어 있습니다. 생성된 각 임베딩 컬렉션 문서 소스와 동일한 _id, 소스의 필터하다 필드 사본, 각 자동 임베딩 필드 에 대해 생성된 임베딩 벡터가 있습니다.

다음 필드를 볼 수 있습니다.

필드
유형
설명

_id

ObjectId

소스 문서 와 동일한 _id 입니다.

<filter-field>

Any

소스 문서 에서 필터하다 필드 의 복사본입니다.

_autoEmbed

객체

각 자동 임베딩 필드 에 대한 임베딩 벡터를 포함합니다.

_autoEmbed.
<fieldPath>

부동 소수점 또는 양자화된 벡터의 배열

자동화된 임베딩 필드 에 대해 생성된 임베딩 벡터를 포함합니다.

경고

__mdb_internal_search 데이터베이스 는 MongoDB 에서 만들고 managed 예약된 내부 네임스페이스 입니다. 이 데이터베이스 또는 해당 컬렉션을 조작하지 마세요. 이 예약된 네임스페이스 수정하면 인덱스 실패 및 일관되지 않은 검색 결과가 발생할 수 있습니다.

생성된 임베딩 컬렉션의 저장 크기를 확인하여 생성된 임베딩에서 디스크 및 인덱스 공간 사용량을 파악할 수 있습니다. 이는 용량 계획, 예기치 않은 증가 디버깅, 인덱스 삭제 또는 재정의 후 정리 유효성 검사에 유용합니다.

중요

저장 크기를 확인하기 전에 생성된 임베딩 컬렉션 이름을 찾습니다.자세한 학습 은 생성된 임베딩 컬렉션 찾기를 참조하세요.

다음 섹션에서는 자동 임베딩의 일반적인 문제를 해결하기 위한 지침 제공합니다.

인덱스 ID 와 일치하는 생성된 임베딩 컬렉션 없습니다.
인덱스 가 여전히 :guialbel`Building` 또는 Pending 상태 수 있습니다. 생성된 임베딩 컬렉션 첫 번째 쓰기 (write) 시 느리게 생성됩니다. $listSearchIndexes을(를) 사용하여 상태를 확인합니다.
출처에 대한 문서 누락 _id
지정된 문서 에 대한 임베딩이 아직 생성되지 않았거나 문서 인덱스의 필터하다 표현식 에 의해 필터링되었습니다.
인덱스 ID 와 일치하는 컬렉션 두 개 이상 있습니다.
자동 포함 필드 구성이 업데이트되었습니다. 새로 생성된 임베딩 컬렉션 생성되었지만 이전 임베딩 컬렉션은 정리될 때까지 잠시 남아 있을 수 있습니다.

돌아가기

청구 관리