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

Como funciona a incorporação automatizada

Você pode configurar o MongoDB Vector Search para gerar e gerenciar automaticamente incorporações vetoriais para os dados de texto em seu cluster. Você pode criar um índice de pesquisa semântica de IA com um clique em seu cluster e usar modelos de incorporação do Voyage AI, simplificando a indexação, a atualização e a query com vetores.

Quando você ativa a Incorporação automatizada, o MongoDB Vector Search gera automaticamente incorporações usando o modelo de incorporação especificado no momento do índice para o campo de texto especificado em sua coleção e no momento da query para sua cadeia de texto em sua query em relação ao campo indexado para incorporações automatizadas.

Quando você cria um índice do MongoDB Vector Search para incorporação automatizada, o MongoDB executa uma sincronização inicial para gerar incorporações para todos os documentos existentes em sua coleção:

  1. Digitaliza documentos.

    A Vector Search do MongoDB verifica todos os documentos na collection que contêm o campo de texto indexado.

  2. Gera incorporações.

    Para cada documento, o MongoDB Vector Search envia o texto do campo indexado para o modelo de incorporação Voyage AI para gerar incorporações vetoriais.

  3. Armazena incorporações.

    O MongoDB Vector Search armazena as incorporações geradas em uma coleção de sistema interno separado (__mdb_internal_search) no mesmo cluster para manter as incorporações isoladas dos dados do aplicação , mantendo a localidade dos dados.

  4. Constrói índice.

    Após as incorporações serem geradas, o MongoDB Vector Search cria o índice utilizando as incorporações geradas para habilitar a pesquisa vetorial.

Durante a sincronização inicial, o MongoDB processa documentos em lotes e usa uma camada especial de processamento de inferência Flex para otimizar a taxa de transferência.

Observação

A duração da sincronização inicial depende do número de documentos, do comprimento do texto no campo indexado e da cota limite de taxa disponível. Pode levar várias horas para concluir a sincronização inicial para coleções grandes.

Após a sincronização inicial, o MongoDB Vector Search mantém as incorporações sincronizadas automaticamente com seus dados à medida que eles são alterados.

Quando você insere um novo documento com o campo de texto indexado, o MongoDB Vector Search automaticamente:

  1. Detecta o novo documento por meio de fluxos de alteração.

  2. Gera incorporações para o campo de texto utilizando o modelo configurado.

  3. Armazena as incorporações na coleção do sistema.

  4. Atualiza o índice do MongoDB Vector Search para incluir as novas incorporações.

Quando você atualiza um documento e o campo de texto indexado é alterado, o MongoDB Vector Search automaticamente:

  1. Detecta a alteração de campo por meio de change streams.

  2. Gera novas incorporações para o texto atualizado.

  3. Substitui as antigas incorporações na collection do sistema.

  4. Atualiza o índice do MongoDB Vector Search com as novas incorporações.

Observação

A Vector Search do MongoDB não aciona a reconstrução de incorporação para atualizações de campos que não estejam indexados para Incorporação Automática.

Quando você exclui um documento, o MongoDB Vector Search remove automaticamente as incorporações correspondentes da coleção do sistema e atualiza o índice.

A incorporação automatizada usa os modelos de incorporação da Voyage AI, que são hospedados e gerenciados pelo MongoDB em um ambiente de vários inquilinos:

  • Serviço hospedado: todos os modelos de incorporação são hospedados e mantidos pelo MongoDB. A plataforma de inferência do modelo é executada na infraestrutura do MongoDB na nuvem do Google Cloud em uma região dos EUA. Você não precisa distribuir, configurar ou gerenciar nenhuma infraestrutura de modelo.

  • Acesso baseado em API: para sistemas autogerenciados configurados para usar a chave de API do Voyage AI, o MongoDB envia texto para os endpoints de API do Voyage AI para gerar incorporações. As incorporações são devolvidas ao MongoDB e armazenadas em seu cluster.

  • Arquitetura multilocatária: o serviço de incorporação é compartilhado por vários usuários. Este modelo multilocatário fornece:

    • Eficiência de custos por meio de infraestrutura compartilhada

    • Atualizações e melhorias automáticas do modelo

    • Alta disponibilidade e escalabilidade

  • O texto enviado para o serviço de Incorporação Automática é usado apenas para gerar incorporações e não é armazenado ou usado para treinamento de modelos.

  • As incorporações são retornadas ao cluster MongoDB e armazenadas em seu próprio banco de dados.

  • Toda comunicação com o serviço de Incorporação Automática ocorre por conexões criptografadas.

O serviço de incorporação é multilocatário. Portanto, o MongoDB impõe limites de taxa para garantir o uso leal em todos os clientes. Para saber mais sobre os limites de taxa e como eles afetam as operações de incorporação automatizada, consulte Limites de taxa.

Quando você executa uma query de pesquisa vetorial usando a Incorporação automatizada, o MongoDB lida automaticamente com a geração de incorporação para seu texto de query:

  1. Envio de Texto de Query: Você fornece uma string de texto no query campo do estágio em vez de um vetor $vectorSearch pré-gerado.

  2. Geração de incorporação: o MongoDB envia seu texto de query para o serviço de Incorporação automatizada para gerar incorporações usando o mesmo modelo especificado no índice (ou um modelo compatível se você o substituir pela model opção).

  3. Vector Search: as embeddings de query geradas são usadas para pesquisar as embeddings indexadas usando a função de similaridade configurada (cosine, dotProduct ou euclidean).

  4. Resultados retornados: o MongoDB retorna documentos classificados por similaridade com sua query.

Cada query que usa a Incorporação automatizada conta para os seus limites de taxa de Incorporação automatizada porque requer uma chamada de API para gerar incorporações. Para saber mais sobre como gerenciar a taxa de transferência e os custos da query, consulte Limites de taxa.

  • Collections grandes podem levar um tempo significativo para concluir a sincronização inicial se você atingir os limites de taxa.

  • O MongoDB tenta novamente automaticamente solicitações de incorporação com falha e implementa backoff exponencial.

  • Você pode monitorar o progresso da sincronização por meio do monitoramento do Atlas Search .

  • As atualizações de documentos são processadas à medida que ocorrem, sujeitas a limites de taxa.

  • Se as atualizações excederem os limites de taxa, elas serão enfileiradas e processadas quando a capacidade ficar disponível.

  • Seu aplicação continua funcionando normalmente; apenas a geração incorporada pode ser adiada.

  • Os limites da taxa de query afetam o número de pesquisas simultâneas que você pode realizar.

  • Se você exceder os limites de taxa de query, as consultas retornarão um erro indicando que o limite de taxa foi excedido.

  • Considere armazenar em cache os resultados de consulta usados com frequência ou atualizar para uma camada paga para maior taxa de transferência.

A incorporação automatizada usa um banco de dados de reserva separado para armazenar incorporações vetoriais. Você pode localizar a coleção de incorporações gerada para um índice e recuperar as incorporações da coleção de incorporações gerada.

Armazenamento de incorporações

O MongoDB armazena as incorporações geradas de forma assíncrona e as persiste em uma coleção de incorporações geradas internas. Esta coleção de incorporações gerada existe em um banco de dados interno dedicado denominado __mdb_internal_search no mesmo cluster. Cada índice de incorporação automática no cluster tem exatamente uma coleção de incorporações gerada correspondente dentro desse banco de dados. Para saber mais, consulte Coleção de incorporações geradas.

Aviso

O banco de dados __mdb_internal_search é um namespace interno reservado criado e gerenciado pelo MongoDB. Não manipule este banco de dados ou suas coleções. Se você modificar esse namespace reservado, isso poderá resultar em falhas de índice e resultados de pesquisa inconsistentes.

Estrutura da collection de incorporações gerada

A coleção de incorporações gerada contém um documento por documento de coleção de origem. Cada documento de collection de incorporação gerado tem o mesmo _id que a origem, cópias dos campos de filtro da origem e o vetor de incorporação gerado para cada campo de Incorporação automatizada.

Você pode visualizar os seguintes campos:

Campo
Tipo
Descrição

_id

ObjectId

O mesmo _id do documento de origem.

<filter-field>

Any

cópia do campo de filtro do documento de origem.

_autoEmbed

Objeto

Contém o vetor de incorporação para cada campo de Incorporação automatizada .

_autoEmbed.
<fieldPath>

Array de vetores flutuantes ou quantizados

Contém o vetor de incorporação gerado para o campo Incorporação automatizada.

Aviso

O banco de dados __mdb_internal_search é um namespace interno reservado criado e gerenciado pelo MongoDB. Não manipule este banco de dados ou suas coleções. Se você modificar esse namespace reservado, isso poderá resultar em falhas de índice e resultados de pesquisa inconsistentes.

Você pode verificar o tamanho do armazenamento das collections de incorporações geradas para entender o consumo de espaço em disco e índice a partir das incorporações geradas. Isso é útil para planejar a capacidade, depurar crescimento inesperado e validar a limpeza após descartar ou redefinir um índice.

Importante

Antes de verificar o tamanho do armazenamento, localize o nome da collection de incorporações gerada. Para saber mais, consulte Localizar a Coleção de Incorporações Geradas.

As seções a seguir fornecem orientações para solucionar problemas comuns com a incorporação automatizada.

Nenhuma coleção de incorporações gerada corresponde ao ID do índice
Seu índice ainda pode estar em :guialbel'Building' ou Pending estado. A coleção de incorporações gerada é criada preguiçosamente na primeira escrita. Verifique o status usando o $listSearchIndexes.
Documento ausente para uma fonte _id
A incorporação para o documento especificado ainda não foi gerada ou o documento foi filtrado pela expressão de filtro do índice.
Mais de uma collection corresponde ao ID do índice
A configuração do campo de incorporação automática foi atualizada. Embora uma nova collection de incorporações gerada tenha sido criada, a antiga pode permanecer brevemente até a limpeza.

Voltar

Gerencie o faturamento