Migre para um novo modelo de embedding do Voyage AI quando seu modelo atual atingir o status de legado ou obsoleto, ou quando um modelo mais recente oferecer melhor qualidade de recuperação, latência ou custo para seu caso de uso.
Os embeddings que diferentes modelos geram não são comparáveis, portanto, uma migração envolve mais do que alterar um nome de modelo. Sempre regenere o embedding para todo o seu corpus com o modelo sucessor para que seus vetores armazenados e seus vetores de query venham do mesmo modelo.
Regenerar seu corpus mesmo quando o modelo sucessor produz embedding com o mesmo número de dimensões e o mesmo tipo de elemento que seu modelo atual. Dimensões correspondentes tornam dois conjuntos de vetores matematicamente comparáveis, mas os modelos do Voyage AI não são treinados para preservar a relevância entre os modelos. A comparação de embeddings de query de um novo modelo contra embeddings armazenados de um modelo mais antigo degrada a qualidade de recuperação e reduz os benefícios de migrar para o novo modelo.
As etapas que você segue dependem de como seu embedding é gerado:
Método de embedding | Etapas de migração |
|---|---|
Incorporação automatizada | O MongoDB Vector Search gera e armazena as incorporações para você. Altere o modelo em sua definição de índice e o MongoDB Vector Search incorporará seus dados novamente.Consulte Migrar com incorporação automatizada. |
embedding autogerenciado | Você mesmo gera e armazena as incorporações. Incorpore novamente seu corpus com a API de incorporação e reclassificação , atualize seu aplicação e reconstrua seu índice vetorial .Consulte Migrar incorporações autogerenciadas. |
Identificar um Modelo Sucessor
Primeiro, verifique o status do seu modelo atual na tabela de status do modelo atual. Se o modelo for legado ou obsoleto, migre para a substituição recomendada que a tabela lista para esse modelo.
Para comparar os modelos disponíveis, consulte Visão geral dos modelos de incorporação e reclassificação do Voyage AI. Para a maioria das migrações, escolha um sucessor entre os seguintes modelos recomendados:
Texto de uso geral. Use
voyage-4-largepara a melhor qualidade de recuperação,voyage-4-litepara a menor latência e custo, evoyage-4para um equilíbrio entre qualidade e desempenho. Para aprender mais, consulte Embeddings de texto.Código. Use
voyage-code-4para recuperação de código e aplicativos de codificação agente, como agentes de codificação e documentação de programação. Para comparar os modelos para domínios especializados, consulte Modelos específicos de domínio.Documentos mais longos. Use
voyage-context-4para incorporar partes que capturam o contexto completo do documento sem metadados manuais ou aumento de contexto. A qualidade de recuperação melhora mais em documentos mais longos. Serve como um substituto direto para embedding padrão e não exige nenhuma alteração no fluxo de trabalho downstream. Para aprender mais, consulte embedding de parte contextualizado.Multimodal. Use
voyage-multimodal-3.5para incorporar texto intercalado e dados visuais, como capturas de tela de PDFs, slides, tabelas e figuras. Para aprender mais, consulte embedding multimodal.
Ao escolher entre esses modelos, considere as seguintes características do modelo:
Modalidade. Migrar para um modelo que suporte os mesmos tipos de dados que o seu modelo atual. Por exemplo, migrar de
voyage-multimodal-3paravoyage-multimodal-3.5em vez de para um modelo somente de texto.Incorporando dimensões. Observe o número de dimensões que o modelo sucessor produz. Seu novo índice vetorial deve especificar esse valor.
Comprimento do contexto. Um comprimento de contexto mais curto do que o seu modelo atual pode truncar seus documentos mais longos. Verifique o comprimento do contexto do modelo sucessor na Visão geral dos modelos de incorporação e reclassificação do Voyage AI.
Observação
embedding dos modelos da série voyage-4 são compatíveis entre si, o que os torna comparáveis, mas a Voyage AI ainda recomenda que você regenere seu corpus ao migrar entre eles.
Depois de selecionar um modelo sucessor, avalie a qualidade de recuperação em uma amostra representativa de seus próprios dados antes de migrar seu corpus de produção.
Migrar com Embedding automatizado
Se você usar o embedding automatizado no MongoDB Pesquisa Vetorial, o MongoDB gerencia a migração para você. Edite sua definição de índice de pesquisa vetorial do MongoDB e altere o valor do campo model na sua definição de campo do tipo autoEmbed para o modelo sucessor:
{ "fields": [ { "type": "autoEmbed", "modality": "text", "path": "<field-name>", "model": "<successor-model>" } ] }
Quando você altera as configurações model, numDimensions ou quantization, o MongoDB pesquisa vetorial regenera o índice e os embeddings, o que gera custos adicionais de embedding. Durante a reconstrução do índice, você pode continuar a executar queries usando a definição antiga do índice. Quando a reconstrução terminar, o MongoDB pesquisa vetorial substitui o índice antigo automaticamente.
Para saber mais sobre como editar um índice, consulte Editar um índice de Vector Search do MongoDB. Para os modelos compatíveis com a incorporação automatizada,consulte Modelos para incorporação automatizada.
Observação
Em implantações autogerenciadas, não é possível modificar um campo do tipo autoEmbed depois de criar o índice. Para migrar, crie um novo índice que especifique o modelo sucessor e, em seguida, exclua o índice antigo.
Migrar embedding autogerenciado
Se você mesmo gerar o embedding, conclua as seguintes etapas para migrar para o modelo sucessor. Para evitar interrupções, gravar os novos embedding em um novo campo e mantenha seu campo e índice existentes até que a migração seja concluída.
Reincorporar Seu Corpus
Use a Embedding and Reranking API para gerar novos embedding para seus documentos existentes com o modelo sucessor. Se você não tiver uma chave API de modelo, consulte Criar uma chave API.
O exemplo a seguir lê o texto de origem de cada documento em uma coleção, gera embedding em lotes com o modelo sucessor e grava os resultados em um novo campo:
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)
Agrupe suas solicitações em lotes e monitore o uso de seus tokens, porque re-embedding um grande corpus pode esgotar seus limites de taxa. Para aprender mais, consulte Gerenciar limites de taxa e Monitorar uso.
Reconstruir Seu Índice de Vector
Crie um novo índice de pesquisa vetorial do MongoDB no campo que contém seus novos embeddings. Defina numDimensions como o número de dimensões que o modelo sucessor produz:
{ "fields": [ { "type": "vector", "path": "<new-embedding-field>", "numDimensions": "<successor-model-dimensions>", "similarity": "dotProduct" } ] }
Para saber como criar o índice, consulte Criar um índice de Vector Search do MongoDB . Para obter a sintaxe completa da definição de índice, consulte Como indexar campos para o Vector Search.
Anote o nome que você dá ao novo índice. Você precisa disso quando atualiza o código do seu aplicativo. Aguarde o índice atingir o status READY antes de fazer uma query nele.
Atualizar o código do seu aplicativo
Atualize seu aplicativo para gerar embedding de query com o modelo sucessor. Seus embedding de query devem vir do mesmo modelo que seus embedding armazenados, portanto, altere o modelo onde quer que seu aplicativo chame a Embedding and Reranking API:
result = vo.embed( [query_text], model="<successor-model>", input_type="query" )
Para recuperação, defina o parâmetro input_type como query para query e como document para texto armazenar. Voyage AI adiciona um prompt específico da tarefa ao início do seu input, o que melhora a precisão da recuperação.
Se você definir o nome do modelo em um arquivo de configuração ou uma variável de ambiente, atualize esse valor em vez disso. Também atualize qualquer código que dependa do número de dimensões de embedding, como validação de esquema ou configurações de armazenamento de vetor.
Atualize suas queries para usar o novo nome do índice e o novo caminho do campo embedding, em seguida, verifique seus resultados de recuperação. Quando você confirmar que o novo índice retorne os resultados que você espera, exclua o índice antigo e remova o campo de embedding antigo de seus documentos.
Para saber mais sobre a geração de embedding, consulte embedding de texto.