Este início rápido descreve como carregar documentos de amostra que contêm embeddings vetoriais em um cluster do Atlas ou em uma implantação local do Atlas, criar um índice do Atlas Vector Search nesses embeddings e, em seguida, realizar uma pesquisa semântica para retornar documentos semelhantes à sua query.
Tempo necessário: 15 minutos
Objetivos
Neste início rápido, você conclui as seguintes etapas:
Crie uma definição de índice para a coleção
sample_mflix.embedded_movies
que indexe o campoplot_embedding_voyage_3_large
como o tipovector
. O campoplot_embedding_voyage_3_large
contém incorporações criadas utilizando o modelo de incorporaçãovoyage-3-large
da Voyage AI. A definição de índice especifica2048
dimensões vetoriais e mede a similaridade usandodotProduct
.Execute uma query do Atlas Vector Search que pesquise a coleção de amostras
sample_mflix.embedded_movies
. A query usa o estágio$vectorSearch
para pesquisar o campoplot_embedding_voyage_3_large
, que contém incorporações criadas usando o modelo de incorporaçõesvoyage-3-large
da Voyage AI. A query pesquisa o campoplot_embedding_voyage_3_large
usando incorporações vetoriais para a string viagem no tempo. Ela considera até150
vizinhos mais próximos e retorna10
documentos nos resultados.
Para saber mais, consulte Resumo do aprendizado.
Resumo do aprendizado
Este início rápido se concentrou na obtenção de documentos do cluster do Atlas que contêm texto semanticamente relacionado a uma query fornecida. No entanto, você pode criar um índice de pesquisa vetorial em incorporações que representam qualquer tipo de dados que você possa gravar em um cluster do Atlas, como imagens ou vídeos.
Dados de amostra
Este início rápido usa a coleção sample_mflix.embedded_movies
que contém detalhes sobre filmes. Em cada documento da coleção, o campo plot_embedding_voyage_3_large
contém uma incorporação de vetor que representa a string no campo plot
. Para obter mais informações sobre o esquema dos documentos na coleção, consulte Exemplo de conjunto de dados Mflix.
Ao armazenar seus dados de origem e os embeddings vetoriais correspondentes no mesmo documento, você pode aproveitar os dois campos para queries complexas ou pesquisas híbridas. Você pode até mesmo armazenar embeddings vetoriais gerados a partir de diferentes modelos de embedding no mesmo documento para otimizar seu fluxo de trabalho enquanto testa o desempenho de diferentes modelos de embedding vetorial para seu caso de uso específico.
incorporações de vetor
As inserções vetoriais na coleção sample_mflix.embedded_movies
e no exemplo de query foram criadas usando o modelo de inserção de voyage-3-large
da Voyage AI. A escolha do modelo de incorporação informa as dimensões do vetor e a função de similaridade vetorial que você utiliza no índice de pesquisa vetorial. Você pode usar qualquer modelo de incorporação que desejar, e vale a pena experimentar modelos diferentes, pois a exatidão pode variar de modelo para modelo dependendo do caso de uso.
Para aprender a criar incorporações vetoriais dos seus próprios dados, consulte Como criar incorporações vetoriais.
Definição de índice vetorial
Um índice é uma estrutura de dados que contém um subconjunto de dados dos documentos de uma coleção que melhora o desempenho do banco de dados para queries específicas. Um índice de pesquisa vetorial aponta para os campos que contêm suas incorporações vetoriais e inclui as dimensões de seus vetores, bem como a função usada para medir a similaridade entre vetores de queries e vetores armazenados no banco de dados.
Como o modelo de incorporação voyage-3-large
usado neste início rápido converte dados em incorporações vetoriais com dimensões 2048 e é compatível com a função cosine
, esse índice de pesquisa de vetor especifica o mesmo número de dimensões vetoriais e função de similaridade.
Consulta de pesquisa vetorial
A consulta executada neste início rápido é um pipeline de agregação, no qual o estágio $vectorSearch
executa uma pesquisa aproximada de vizinho mais próximo (ANN) seguida por um estágio $project
que refina os resultados. Para ver todas as opções para uma query de pesquisa vetorial , incluindo o uso do vizinho mais próximo exato (ENN) ou como estreitar o escopo da sua pesquisa vetorial com a opção filter
, consulte Executar queries de Vector Search .
Próximos passos
Para saber como criar incorporações a partir de dados e carregá-las no Atlas, consulte Criar incorporações.
Para saber como implementar a geração aumentada de recuperação (RAG), consulte Geração aumentada de recuperação (RAG) com MongoDB.
Para integrar o Atlas Vector Search com estruturas e serviços populares de IA, consulte Integrar o MongoDB com tecnologias de IA.
Para criar chatbots de IA prontos para produção usando o Atlas Vector Search, consulte o MongoDB Chatbot Framework.
Para saber como implementar RAG sem a necessidade de chaves ou créditos de API, consulte Criar uma implementação de RAG local com o Atlas Vector Search.