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 marcação de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL .
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Como criar manualmente incorporações de vetor

Você pode armazenar incorporações de vetores junto com seus outros dados do MongoDB. Essas incorporações capturam relacionamentos significativos nos seus dados e permitem executar pesquisas semânticas e implementar o RAG.

Use o seguinte tutorial para aprender como criar incorporações vetoriais e consultá‑las usando a pesquisa vetorial. Especificamente, você executa as seguintes ações:

  1. Defina uma função que use um modelo de embedding para gerar embeddings vetoriais.

    Selecione se deseja usar um modelo proprietário ou de código aberto. Para obter incorporações de última geração, utilize a Voyage AI.

  2. Crie incorporações dos seus dados e armazene‑os no MongoDB.

    Selecione se deseja criar incorporações a partir de novos dados ou de dados existentes que você já tem em uma coleção MongoDB .

  3. Crie incorporações a partir de seus termos de pesquisa e execute uma query de pesquisa vetorial.

Para aplicativos de produção, normalmente você escreve um script para gerar incorporações vetoriais. Você pode começar com o código de amostra nesta página e personalizá-lo para seu caso de uso.

Observação

O serviço de embedding automatizada do MongoDB Vector Search é uma maneira de um clique de ativar a pesquisa semântica nos dados de texto em sua coleção. Com o Automated Embedding, você não precisa gerar, armazenar ou gerenciar vector embeddings por conta própria. Em vez disso, o MongoDB Vector Search gera e gerencia automaticamente vector embeddings para você. Para aprender mais, consulte Visão geral da embedding automatizada.

Para concluir este tutorial, você deve ter o seguinte:

Nesta seção, você cria incorporações vetoriais a partir de seus dados usando a função que você definiu e, em seguida, armazena essas incorporações em uma coleção do MongoDB.

Nesta seção, você indexa as incorporações vetoriais na sua coleção e cria uma incorporação que é usada para executar uma query de pesquisa de vetor de amostra.

A pesquisa vetorial retorna documentos cujas incorporações estão mais próximas da incorporação da sua consulta. Isso indica que eles são semelhantes em significado.

Considere os seguintes fatores ao criar incorporações vetoriais:

Para criar embeddings vetoriais, você deve usar um modelo de embedding. Modelos de embedding são algoritmos que você usa para gerar representações numéricas dos seus dados. Escolha uma das seguintes formas para acessar um modelo de embedding:

Método
Descrição

Carregue um modelo de código aberto

Se você não tiver uma chave de API para um modelo de incorporação proprietário, carregue um modelo de incorporação de código aberto localmente a partir do seu aplicativo.

Use um modelo proprietário

A maioria dos provedores de IA oferece APIs para seus modelos de embedding proprietários que podem ser usados para a criação de embeddings vetoriais. Para embeddings de última geração, use Voyage AI.

Aproveite uma integração

Você pode integrar o MongoDB pesquisa vetorial com **frameworks** de **código aberto** e serviços de **IA** para se conectar rapidamente a modelos de **embedding** de **código aberto** e proprietários e gerar **embeddings** vetoriais para o MongoDB pesquisa vetorial.

Para saber mais, consulte Integrações de IA do MongoDB.

O modelo de incorporação escolhido afeta os resultados da query e determina o número de dimensões especificadas no índice do MongoDB Vector Search . Cada modelo oferece vantagens diferentes, dependendo dos seus dados e caso de uso. Para incorporações de última geração, incluindo modelos de incorporação multimodais e específicos de domínio, use Voyage AI.

Ao escolher um modelo de incorporação para o MongoDB Vector Search, considere as seguintes métricas:

  • Dimensões de incorporação: o comprimento da incorporação do vetor.

    Embeddings menores são mais eficientes em termos de armazenamento, enquanto embeddings maiores podem capturar relacionamentos mais sutis em seus dados. O modelo que você escolher deve encontrar um equilíbrio entre eficiência e complexidade.

  • Máximo de tokens: o número de tokens que podem ser compactados em uma única incorporação.

  • Tamanho do modelo: o tamanho do modelo em gigabytes.

    Embora os modelos maiores tenham melhor desempenho, eles exigem mais recursos computacionais à medida que você dimensiona o MongoDB Vector Search para a produção.

  • Média de recuperação: uma pontuação que mede o desempenho dos sistemas de recuperação.

    Uma pontuação mais alta indica que o modelo é melhor na classificação de documentos relevantes no topo da lista de resultados recuperados. Essa pontuação é importante ao escolher um modelo para aplicativos RAG .

Se você tiver um grande número de vetores de ponto flutuante e quiser reduzir o armazenamento e a pegada do WiredTiger (como uso de disco e memória) em mongod, compacte suas incorporações convertendo-as em vetores binData.

BinData é um tipo de dados BSON que armazena dados binários. O tipo padrão para incorporações vetoriais é uma array de flutuantes de 32bits (float32). Os dados binários são mais eficientes em armazenamento do que o formato de array padrão e, portanto, exigem três vezes menos espaço em disco.

Armazenar vetores binData melhora o desempenho das consultas, pois menos recursos são necessários para carregar um documento no conjunto de trabalho. Isso pode melhorar significativamente a velocidade de consulta para queries vetoriais onde você está retornando mais de 20 documentos. Se você compactar suas incorporações float32, poderá consultá-las com vetores float32 ou binData.

O tutorial nesta página inclui uma função de exemplo que você pode usar para converter seus vetores float32 em vetores binData.

BSON Os vetores BinData são compatíveis com os seguintes drivers:

Vetores de ponto flutuante são tipicamente difíceis de compactar porque cada elemento no array possui seu próprio tipo (apesar de a maioria dos vetores ser uniformemente digitada). Por essa razão, converter a saída do vetor float de um modelo de incorporação em um vetor binData com subtipo float32 é um esquema de serialização mais eficiente. Vetores binData armazenam um único descritor de tipo para o vetor inteiro, o que reduz a sobrecarga de armazenamento.

Considere as seguintes estratégias para garantir que suas incorporações estejam corretas e ideais:

Aprenda as melhores práticas ao criar incorporações.

Considere as seguintes melhores práticas ao gerar e consultar suas incorporações:

  • Teste suas funções e scripts.

    Gerar incorporações leva tempo e recursos computacionais. Antes de criar incorporações a partir de grandes conjuntos ou coleções de dados, teste se suas funções ou scripts de incorporação funcionam conforme o esperado em um pequeno subconjunto de seus dados.

  • Criar incorporações em lotes.

    Se você quiser gerar embeddings a partir de um grande conjunto de dados ou de uma collection com muitos documentos, crie-os em lotes para evitar problemas de memória e otimizar o desempenho.

  • Avalie o desempenho.

    Execute queries de teste para verificar se os resultados da pesquisa são relevantes e classificados com precisão.

    Para saber mais sobre como avaliar seus resultados e ajustar o desempenho de seus índices e queries, consulte Como medir a precisão dos resultados da sua query e Benchmark para Vector Search do MongoDB.

Aprenda estratégias para solucionar problemas nas suas incorporações.

Considere as seguintes estratégias se você encontrar problemas em suas incorporações:

  • Verifique seu ambiente.

    Verifique se as dependências necessárias estão instaladas e atualizadas. Versões de bibliotecas conflitantes podem causar comportamento inesperado. Certifique-se de que não existam conflitos criando um novo ambiente e instalando apenas os pacotes necessários.

    Observação

    Se você estiver usando o CoLAB, certifique-se de que o endereço IP da sessão do bloco de anotações esteja incluído na lista de acessodo projeto do Atlas.

  • Monitore o uso da memória.

    Se você tiver problemas de desempenho, verifique a utilização da RAM, da CPU e do disco para identificar possíveis gargalos. Para ambientes hospedados, como notebooks Colab ou Jupyter, garanta que sua instância seja provisionada com recursos suficientes e faça upgrade da instância se necessário.

  • Garanta dimensões consistentes.

    Verifique se a definição do índice do MongoDB Vector Search corresponde às dimensões das embeddings armazenadas no MongoDB e se as incorporações de query correspondem às dimensões das embeddings indexadas. Caso contrário, você poderá encontrar erros ao executar consultas de pesquisa vetorial.

Para solucionar problemas específicos, consulte Solução de problemas.

Depois de aprender a criar embeddings e consultar suas embeddings com o MongoDB Vector Search, comece a criar aplicativos de IA generativa implementando a geração aumentada de recuperação (RAG):

Você também pode quantizar suas 32-bit float vector embeddings em menos bits para reduzir ainda mais o consumo de recursos e melhorar a velocidade da query. Para saber mais, consulte Sobre Quantization.