AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

새 임베딩 모델로 마이그레이션

현재 모델이 Legacy(레거시) 또는 Deprecated(사용 중단됨) 상태에 도달하거나 최신 모델이 사용 사례 에 비해 더 나은 검색 품질, 지연 시간 또는 비용 제공하는 경우 새로운 Voyage AI 임베딩 모델로 마이그레이션합니다.

다른 모델에서 생성하는 임베딩은 비교할 수 없으므로 마이그레이션 에는 모델 이름 변경 이상의 작업이 포함됩니다. 저장된 벡터와 쿼리 벡터가 동일한 모델에서 오도록 항상 후속 모델을 사용하여 전체 코퍼스에 대한 임베딩을 다시 생성하세요.

후속 모델이 현재 모델과 동일한 차원 수와 동일한 요소 유형으로 임베딩을 생성하는 경우에도 코퍼스를 다시 생성합니다. 차원을 일치시키면 두 세트의 벡터를 수학적으로 비교할 수 있지만, Voyage AI 모델은 모델 간 관련성을 유지하도록 훈련되지 않습니다. 새 모델의 쿼리 임베딩과 이전 모델의 저장된 임베딩을 비교하면 검색 품질이 저하되고 새 모델로 마이그레이션할 때 얻을 수 있는 이점이 줄어듭니다.

수행할 단계는 임베딩이 생성되는 방식에 따라 달라집니다.

임베딩 메서드
마이그레이션 단계

자동화된 임베딩

MongoDB Vector Search는 임베딩을 생성하고 저장합니다. 인덱스 정의에서 모델을 변경하면 MongoDB Vector Search가 데이터를 다시 포함합니다.자동 임베딩으로 마이그레이션을 참조하세요.

자체 관리형 임베딩

임베딩은 직접 생성하고 저장 . Embedding and Reranking API 사용하여 코퍼스를 다시 임베드하고, 애플리케이션 을 업데이트 , 벡터 인덱스 다시 빌드합니다.자체 관리형 임베딩 마이그레이션을 참조하세요.

먼저 현재 모델 상태 표에서 현재 모델의 상태를 확인합니다. 모델이 레거시 또는 더 이상 사용되지 않는 경우 표에 해당 모델에 대해 나열된 권장 교체 모델로 마이그레이션 .

사용 가능한 모델을 비교하려면 모델 개요를 참조하세요. 대부분의 마이그레이션의 경우 다음 권장 모델 중에서 후속 모델을 선택하세요.

이러한 모델 중에서 선택할 때 다음 모델 특성을 고려하세요.

  • 모달리티. 현재 모델과 동일한 데이터 유형을 지원하는 모델로 마이그레이션합니다. 예시 들어 voyage-multimodal-3 에서 텍스트 voyage-multimodal-3.5 전용 모델이 아닌 로 마이그레이션 .

  • 차원 포함. 후속 모델이 생성하는 차원의 수를 확인합니다. 새 벡터 인덱스 해당 값을 지정해야 합니다.

  • 컨텍스트 길이입니다. 현재 모델보다 컨텍스트 길이가 짧으면 가장 긴 문서가 잘릴 수 있습니다. 모델 개요에서 후속 모델의 컨텍스트 길이를 확인합니다.

참고

voyage-4 시리즈 모델의 임베딩은 서로 호환되므로 비교할 수 있지만, Voyage AI 모델 간에 마이그레이션 때 코퍼스를 다시 생성할 것을 권장합니다.

후속 모델을 선택한 후에는 프로덕션 코퍼스를 마이그레이션 전에 자체 데이터의 대표 샘플 에서 해당 모델의 검색 품질을 평가하세요.

MongoDB Vector Search에서 자동 임베딩을 사용하는 경우 MongoDB 마이그레이션 을 관리합니다. MongoDB Vector Search 인덱스 정의를 편집하고 autoEmbed 유형 필드 정의의 model 필드 값을 후속 모델로 변경합니다.

{
"fields": [
{
"type": "autoEmbed",
"modality": "text",
"path": "<field-name>",
"model": "<successor-model>"
}
]
}

model, numDimensions 또는 quantization 설정을 변경하면 MongoDB Vector Search가 인덱스 와 임베딩을 다시 생성하므로 추가 임베딩 비용이 발생합니다. 인덱스 다시 작성되는 동안 이전 인덱스 정의에 대해 쿼리를 계속 실행 수 있습니다. 재구축이 완료되면 MongoDB Vector Search가 이전 인덱스 자동으로 대체합니다.

인덱스 편집에 대해 자세히 학습 MongoDB 벡터 검색 인덱스 편집을 참조하세요. 자동 임베딩이 지원하는 모델에 대해서는 자동 임베딩을 위한 모델을 참조하세요.

참고

자체 관리형 배포에서는 인덱스 생성한 후에는 autoEmbed 유형 필드 수정할 수 없습니다. 마이그레이션 하려면 후속 모델을 지정하는 새 인덱스 만든 다음 이전 인덱스 삭제 .

임베딩을 직접 생성하는 경우 다음 단계를 완료하여 후속 모델로 마이그레이션 . 다운타임을 방지하려면 새 필드 에 새 임베딩을 쓰기 (write) 하고 마이그레이션 완료될 때까지 기존 필드 와 인덱스 제자리에 유지합니다.

임베딩 및 순위 재지정 API 사용하여 후속 모델로 기존 문서에 대한 새 임베딩을 생성합니다. 모델 API 키가 없는 경우 API 키 생성을 참조하세요.

다음 예시 컬렉션 의 각 문서 에서 소스 텍스트를 읽고 후속 모델을 사용하여 일괄적으로 임베딩을 생성하고 결과를 새 필드 에 씁니다.

import os
import voyageai
from pymongo import MongoClient, UpdateOne
SUCCESSOR_MODEL = "<successor-model>"
TEXT_FIELD = "<source-text-field>"
NEW_EMBEDDING_FIELD = "<new-embedding-field>"
BATCH_SIZE = 100
vo = voyageai.Client()
# This automatically uses the VOYAGE_API_KEY environment variable.
client = MongoClient(os.environ["MONGODB_URI"])
collection = client["<database>"]["<collection>"]
def process_batch(documents):
texts = [document[TEXT_FIELD] for document in documents]
result = vo.embed(
texts,
model=SUCCESSOR_MODEL,
input_type="document"
)
collection.bulk_write([
UpdateOne(
{"_id": document["_id"]},
{"$set": {NEW_EMBEDDING_FIELD: embedding}}
)
for document, embedding in zip(documents, result.embeddings)
])
batch = []
for document in collection.find({}, {TEXT_FIELD: 1}):
batch.append(document)
if len(batch) == BATCH_SIZE:
process_batch(batch)
batch = []
if batch:
process_batch(batch)

요청을 일괄 처리하고 토큰 사용량을 모니터 . 큰 코퍼스를 다시 임베딩하면 요금 한도가 소진될 수 있기 때문입니다. 자세한 학습 은 요금 제한 관리 및 사용량 모니터링을 참조하세요.

새 임베딩을 보유하는 필드 에 새 MongoDB Vector Search 인덱스 생성합니다. numDimensions을 후속 모델이 생성하는 차원 수로 설정합니다.

{
"fields": [
{
"type": "vector",
"path": "<new-embedding-field>",
"numDimensions": "<successor-model-dimensions>",
"similarity": "dotProduct"
}
]
}

인덱스 만드는 방법을 학습 보려면 MongoDB 벡터 검색 인덱스 만들기를 참조하세요. 전체 인덱스 정의 구문은 벡터 검색을 위한 필드 인덱싱 방법을 참조하세요.

새 인덱스 에 지정한 이름을 확인합니다. 애플리케이션 코드를 업데이트 때 필요합니다. 인덱스를 쿼리 전에 인덱스 READY 상태에 도달할 때까지 기다립니다.

애플리케이션 업데이트하여 후속 모델로 쿼리 임베딩을 생성합니다. 쿼리 임베딩은 저장된 임베딩과 동일한 모델에서 가져와야 하므로 애플리케이션 에서 Embedding and Reranking API 호출할 때마다 모델을 변경하세요.

result = vo.embed(
[query_text],
model="<successor-model>",
input_type="query"
)

조회하려면 input_type 매개 변수를 쿼리의 경우 query 로 설정하다 저장된 텍스트의 경우 document 로 설정합니다. Voyage AI 입력에 작업별 프롬프트를 추가하여 검색 정확도를 향상시킵니다.

구성 파일 이나 환경 변수에 모델 이름을 설정하다 경우 해당 값을 대신 업데이트 . 또한 스키마 유효성 검사 또는 벡터 저장 설정과 같이 임베딩 차원 수에 의존하는 모든 코드를 업데이트 .

새 인덱스 이름과 새 임베딩 필드 경로 사용하도록 쿼리를 업데이트한 다음 검색 결과를 확인합니다. 새 인덱스 예상한 결과를 반환하는지 확인하면 이전 인덱스 삭제 하고 문서에서 이전 임베딩 필드 제거 .

임베딩 생성에 대해 자세히 학습 텍스트 임베딩을 참조하세요.