Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Migrar para um novo modelo de incorporação

Migre para um novo modelo de incorporação do Voyage AI quando o modelo atual atingir o status Legado ou Obsoleto, ou quando um modelo mais recente oferecer melhor qualidade de recuperação, latência ou custo para o seu caso de uso.

As incorporações que modelos diferentes geram não são comparáveis, portanto, uma migração envolve mais do que alterar um nome de modelo. Sempre regenere as incorporações de todo o corpus com o modelo sucessor para que seus vetores armazenados e seus vetores de query venham do mesmo modelo.

Regenere seu corpus mesmo quando o modelo sucessor produzir incorporações com o mesmo número de dimensões e o mesmo tipo de elemento que seu modelo atual. As dimensões correspondentes criam dois conjuntos de vetores matematicamente comparáveis, mas os modelos de IA do Voyage não são treinamentos para preservar a relevância entre os modelos. Comparar as incorporações de query de um novo modelo com as incorporações armazenadas de um modelo mais antigo degrada a qualidade da recuperação e reduz os benefícios da migração para o novo modelo.

As etapas a seguir dependem de como suas incorporações são geradas:

Método de incorporação
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.

Incorporações autogerenciadas

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.

Primeiro, verifique o status do seu modelo atual na tabela Status do Modelo Atual. Se o modelo for Legado ou Preterido, 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. Para a maioria das migrações, escolha um sucessor entre os seguintes modelos recomendados:

  • Texto de uso geral. Use voyage-4-large para a melhor qualidadevoyage-4-lite de recuperação, para a menor latência e custo e voyage-4 para um equilíbrio entre qualidade e desempenho. Para saber mais, consulte Incorporações de texto.

  • Código. Use voyage-code-4 para recuperação de código e aplicativos de codificação por agentes, 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-4 para incorporar chunks que capturam o contexto completo do documento sem metadados manuais ou aumento de contexto. A qualidade da recuperação melhora mais em documentos mais longos. Ele serve como uma substituição para incorporações padrão e não requer alterações no fluxo de trabalho downstream. Para saber mais, consulte Incorporações de chunks contextualizadas.

  • Multimodal. Use voyage-multimodal-3.5 para incorporar texto intercalado e dados visuais, como capturas de tela de PDFs, apresentação de gráficos e imagens. Para saber mais, consulte Incorporações multimodais.

Ao escolher entre esses modelos, considere as seguintes características do modelo:

  • Modalidade. Migre para um modelo que suporte os mesmos tipos de dados que seu modelo atual. Por exemplo, migre de voyage-multimodal-3 para voyage-multimodal-3.5 em 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 em Visão geral de modelos.

Observação

As incorporações dos modelos da série voyage-4 são compatíveis entre si, o que as 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 sua qualidade de recuperação em uma amostra representativa de seus próprios dados antes de migrar seu corpus de produção.

Se você usar a Incorporação automatizada no MongoDB Vector Search, o MongoDB gerenciará a migração para você. Edite sua definição de índice do MongoDB Vector Search e altere o valor do campo model em 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 do model, numDimensions ou quantization, o MongoDB Vector Search regenera o índice e as incorporações, que incorrem em custos de incorporação adicionais. Enquanto o índice é reconstruído, você pode continuar executando queries em relação à definição de índice antiga. Quando a reconstrução terminar, o MongoDB Vector Search substituirá 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 sistemas autogerenciados, você não pode 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.

Se você mesmo gerar incorporações, conclua as etapas a seguir para migrar para o modelo sucessor. Para evitar o tempo de inatividade, grave as novas incorporações em um novo campo e mantenha o campo e o índice existentes até que a migração seja concluída.

Use a API de Incorporação e Reclassificação para gerar novas incorporações para seus documentos existentes com o modelo sucessor. Se você não tiver uma chave de API de modelo, consulte Criar uma chave de API.

O exemplo a seguir lê o texto de origem de cada documento em uma coleção, gera incorporações 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 lote e monitore o uso do token, porque a incorporação de um grande corpus pode esgotar seus limites de taxa. Para saber mais, consulte Gerenciar Limites de Taxa e Monitorar o Uso.

Crie um novo índice do MongoDB Vector Search no campo que contém suas novas incorporações. Defina numDimensions para 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.

Observe o nome que você dá ao novo índice. Você precisa dele quando atualizar o código do aplicação . Aguarde até que o índice atinja o status READY antes de consultá-lo.

Atualize seu aplicação para gerar incorporações de consulta com o modelo sucessor. Seus embeddings de query devem vir do mesmo modelo que seus embeddings armazenados, portanto, altere o modelo onde quer que seu aplicação chame a API de Incorporação e Reclassificação:

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

Para recuperação, defina o parâmetro input_type como query para queries e como document para texto armazenado. A IA do Voyage acrescenta um prompt específico da tarefa à sua entrada, o que melhora a precisão da recuperação.

Se você definir o nome do modelo em um arquivo de configuração ou em uma variável de ambiente, atualize esse valor. Atualize também qualquer código que dependa do número de dimensões de incorporação, 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 de incorporação e, em seguida, verifique os resultados de recuperação. Quando você confirmar que o novo índice retorna os resultados esperados, exclua o índice antigo e remova o campo de incorporação antigo dos seus documentos.

Para saber mais sobre como gerar incorporações, consulte Incorporações de texto.