현재 모델이 레거시 또는 사용 중단 상태에 도달하거나 최신 모델이 사용 사례에 대해 더 나은 검색 품질, 지연 시간 또는 비용을 제공하는 경우 새로운 Voyage AI 임베딩 모델로 마이그레이션합니다.
다른 모델이 생성하는 임베딩은 비교할 수 없습니다. 따라서 마이그레이션에는 모델 이름 변경 이외에도 다른 것이 포함됩니다. 다음 모델로 전체 코퍼스의 임베딩을 항상 다시 생성하여 저장된 벡터와 쿼리 벡터가 동일한 모델에서 온 것이 될 수 있도록 합니다.
후속 모델이 현재 모델과 동일한 차원 수와 동일한 요소 형식의 임베딩을 생성하는 경우에도 코퍼스를 재생성합니다. 동일한 차원을 가지면 두 벡터 세트는 수학적으로 비교 가능하게 됩니다. 하지만 Voyage AI 모델은 모델 간에서 유용성을 유지하도록 훈련되지 않았습니다. 새 모델의 쿼리 임베딩과 이전 모델의 저장된 임베딩을 비교하면 검색 품질이 저하되고 새 모델로 마이그레이션하는 것의 이점을 상쇄시키는 결과를 초래합니다.
수행할 단계는 임베딩이 생성되는 방식에 따라 달라집니다.
임베딩 방법 | 마이그레이션 단계 |
|---|---|
자동화된 임베딩 | MongoDB Vector Search generates and stores the embeddings for you. Change the model in your index definition and MongoDB Vector Search re-embeds your data. See Migrate with Automated Embedding. |
자체 관리형 임베딩 | You generate and store the embeddings yourself. Re-embed your corpus with the Embedding and Reranking API, update your application, and rebuild your vector index. See Migrate Self-Managed Embeddings. |
후속 모델 식별
먼저, 현재 모델 상태 표에서 현재 모델의 상태를 확인합니다. 모델이 레거시 또는 더이상 사용되지 않는 경우, 해당 모델에 대해 표에 제시된 권장 대체로 마이그레이션하세요.
사용 가능한 모델을 비교하려면 Voyage AI 임베딩 및 모델 재순위 지정 개요를 참조하세요. 대부분의 마이그레이션의 경우 다음 권장 모델 중에서 후속 모델을 선택하세요.
범용 텍스트. 최고의 검색 품질을 위해
voyage-4-large을 사용하고, 최저 지연 시간과 비용을 위해voyage-4-lite을 사용하며, 품질과 성능 간의 균형을 위해voyage-4를 사용합니다. 자세한 내용은 텍스트 임베딩을 참조하세요.코드.
voyage-code-4을(를) 사용하여 코딩 에이전트 및 프로그래밍 문서 등의 코드 검색 및 에이전틱 코딩 애플리케이션에 활용할 수 있습니다. 특정 도메인에 대한 모델을 비교하려면 도메인별 모델을 참조하십시오.더 긴 문서.
voyage-context-4을(를) 사용하여 수동 메타데이터 또는 컨텍스트 증강 없이 전체 문서 컨텍스트를 캡처하는 청크를 임베딩할 수 있습니다. 검색 품질은 긴 문서에서 가장 많이 향상됩니다. 이는 표준 임베딩을 바로 대체 가능한 기능을 제공합니다. 후속 워크플로우를 변경할 필요가 없습니다. 더 자세한 내용은 상황별 청크 임베딩을 참조하세요.멀티모달.
voyage-multimodal-3.5을 사용하여 PDF, 슬라이드, 표, 그림 등의 스크린샷과 같이 인터리브 처리된 텍스트와 시각 데이터를 임베딩할 수 있습니다. 더 자세한 내용은 멀티모달 임베딩을 참조하세요.
이 모델들 중에서 선택할 때, 다음 모델 특성을 고려하십시오:
모달리티. 현재 모델과 동일한 데이터 유형을 지원하는 모델로 마이그레이션하세요. 예시, 텍스트 전용 모델로 마이그레이션하는 대신
voyage-multimodal-3에서voyage-multimodal-3.5로 마이그레이션합니다.Embedding dimensions. Note the number of dimensions that the successor model produces. Your new vector index must specify that value.
컨텍스트 길이입니다. 현재 모델보다 컨텍스트 길이가 짧으면 가장 긴 문서가 잘릴 수 있습니다.Voyage AI 임베딩 및 모델 재순위 지정 개요에서 후속 모델의 컨텍스트 길이를 확인하세요.
참고
voyage-4 시리즈 모델의 임베딩은 서로 호환되어 비교할 수 있습니다. 하지만 Voyage AI는 여전히 이들 간에서 마이그레이션할 때 코퍼스를 다시 생성할 것을 권장합니다.
후속 모델을 선택한 후 프로덕션 코퍼스를 마이그레이션하기 전에 자체 데이터의 대표 샘플에 대해 검색 품질을 평가합니다.
자동 임베딩 마이그레이션
MongoDB 벡터 검색에서 자동 임베딩을 사용하면 MongoDB가 마이그레이션을 관리해 줍니다. MongoDB 벡터 검색 인덱스 접의를 편집하고, autoEmbed 유형 필드 정의에서 model 필드의 값을 후속 모델로 변경합니다.
{ "fields": [ { "type": "autoEmbed", "modality": "text", "path": "<field-name>", "model": "<successor-model>" } ] }
model, numDimensions, quantization 설정을 변경하면 MongoDB 벡터 검색이 인덱스와 임베딩을 다시 생성합니다. 이로 인해 추가 임베딩 비용이 발생합니다. 인덱스가 다시 생성되는 동안, 이전 인덱스 정의를 사용하여 쿼리를 계속 실행할 수 있습니다. 재구성이 완료되면, MongoDB 벡터 검색이 이전 인덱스를 자동으로 대체합니다.
To learn more about editing an index, see Edit a MongoDB Vector Search Index. For the models that Automated Embedding supports, see Models for Automated Embedding.
참고
자체 관리형 배포서버에서는 인덱스를 생성한 후에는 autoEmbed 유형 필드를 수정할 수 없습니다. 마이그레이션하려면 후속 모델을 지정하는 새 인덱스를 생성한 다음 이전 인덱스를 삭제합니다.
자체 관리형 임베딩 마이그레이션
임베딩을 직접 생성하는 경우, 후속 모델로 마이그레이션하려면 다음 단계를 완료하세요. 다운타임을 방지하려면 새 임베딩을 새 필드에 쓰기 (write)하고 마이그레이션이 완료될 때까지 기존 필드와 인덱스를 그대로 유지합니다.
코퍼스 재임베딩
Embedding and Reranking API를 사용하여 후속 모델과 함께 기존 문서에 대한 새로운 임베딩을 생성합니다. 모델 API 키가 없는 경우, API 키 만들기를 참조하세요.
다음 예시는 컬렉션의 각 문서에서 소스 텍스트를 읽어 후속 모델로 배치로 임베딩을 생성하고 결과를 새 필드에 쓰기 (write)합니다:
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 벡터 검색 인덱스를 생성합니다. numDimensions을(를) 후속 모델이 생성하는 차원의 수로 설정하세요:
{ "fields": [ { "type": "vector", "path": "<new-embedding-field>", "numDimensions": "<successor-model-dimensions>", "similarity": "dotProduct" } ] }
To learn how to create the index, see Create a MongoDB Vector Search Index. For the full index definition syntax, see How to Index Fields for Vector Search.
새 인덱스에 부여하는 이름을 기억하세요. 애플리케이션 코드를 업데이트할 때 이것이 필요합니다. 인덱스를 쿼리하기 전에 인덱스가 READY 상태에 도달할 때까지 기다립니다.
애플리케이션 코드 업데이트
애플리케이션을 업데이트하여 후속 모델을 사용하여 쿼리 임베딩을 생성하도록 하세요. 쿼리 임베딩은 저장된 임베딩과 동일한 모델에서 가져와야 합니다. 따라서 애플리케이션이 Embedding and Reranking API를 호출하는 모든 곳에서 모델을 변경합니다.
result = vo.embed( [query_text], model="<successor-model>", input_type="query" )
검색 시, 쿼리에 대해 input_type 매개변수를 query (으)로 설정하고 저장된 텍스트에 대해서는 document (으)로 설정합니다. Voyage AI는 입력 앞에 작업별 프롬프트를 추가하여 검색 정확도를 향상시킵니다.
설정 파일이나 환경 변수에서 모델 이름을 설정한 경우 대신 해당 값을 업데이트. 또한 스키마 유효성 검사 또는 벡터 저장 설정과 같이 임베딩 차원 수에 따라 달라지는 모든 코드를 업데이트합니다.
쿼리를 업데이트하여 새 인덱스 이름과 새 임베딩 필드 경로를 사용하도록 한 다음 검색 결과를 확인합니다. 새 인덱스가 예상한 결과를 반환하는지 확인되면 이전 인덱스를 삭제하고 문서에서 이전 임베딩 필드를 제거합니다.
임베딩 생성에 대해 더 자세히 알아보려면, 텍스트 임베딩.을 참조하세요.