Sabe quando você consegue se lembrar dos detalhes aproximados de algo, mas não conseguiu lembrar o nome? Tipo quando você sabe a sinopse de um filme, mas não consegue lembrar o nome dele… Então, isso acontece com alguma recorrência, portanto, ser capaz de pesquisar semanticamente em vez de pesquisas de texto em termos exatos, se torna muito importante.
É aqui que o Atlas Vector Search se torna extremamente útil. Ele permite que você execute pesquisas semânticas em incorporações de vetores em seus documentos armazenados no MongoDB Atlas. Como os dados embedados são armazenados no Atlas, você pode criar os vetores de busca em qualquer tipo de dados, estruturados e não estruturados.
Portanto, para aqueles que buscam elevar suas capacidades de consulta, o Atlas Vector Search oferece uma solução robusta que integra técnicas de aprendizado de máquina para efetuar buscas baseadas em vetores. Este artigo proporciona uma visão detalhada do funcionamento técnico do Atlas Vector Search, com links úteis para a documentação oficial, possibilitando uma compreensão aprofundada e aplicação em cenários complexos de dados.
Observação: Como você provavelmente já sabe, o MongoDB Atlas oferece suporte à full text search desde 2020, permitindo que você faça pesquisas em rich text em seus dados do MongoDB. A principal diferença entre a pesquisa vetorial e a pesquisa de texto é que a pesquisa vetorial consulta o significado em vez de texto explícito e, portanto, também pode pesquisar dados além do texto.
Principais casos de uso para o Atlas Vector Search
O Atlas Vector Search permite pesquisar dados não estruturados. Você pode criar incorporações vetoriais com modelos de aprendizado de máquina, como OpenAI e Hugging Face, e armazená-los e indexá-los no Atlas para recuperação aprimorada de geração (RAG), semantic search, mecanismos de recomendação, personalização dinâmica e outros casos de uso.
Ou seja, você consegue conectar um “ChatGPT” na base do MongoDB e fazer que a Inteligência Artificial olhe para os seus dados e consiga dar respostas baseadas nas “perguntas” feitas para ela. É quase como se fosse conectar o ChatGPT no seu banco de dados e fazer perguntas direto pra ele. Obviamente, este foi um exemplo muito raso da aplicação de uso, mas com certeza deu pra entender um pouquinho do que isso significa na prática, certo?
Fundamentos Técnicos do Vector Search
O Atlas Vector Search transforma dados complexos—sejam eles textuais, imagéticos ou sonoros—em vetores numéricos que representam as características essenciais desses dados em um espaço multidimensional. Essa transformação é realizada por meio de modelos avançados de aprendizado de máquina, como BERT para textos ou CNNs para imagens, facilitando assim a quantificação de similaridades e diferenças. A busca efetiva nesses espaços é realizada por meio de índices vetoriais utilizando técnicas como o método HNSW (Hierarchical Navigable Small World), que estrutura os dados baseadas em grafos. Para explorar mais sobre essas técnicas, a documentação sobre o Atlas Vector Search oferece um guia completo.
Como o Atlas Vector Search Amplia o Atlas Search
Enquanto o MongoDB Atlas Search oferece funcionalidades abrangentes para buscas de texto completo, o Atlas Vector Search complementa isso ao adicionar a capacidade de indexar e buscar dados baseados em representações vetoriais. Essas representações são ideais para capturar nuances em dados complexos que não são facilmente descritos em palavras-chave ou atributos específicos, como a textura de uma imagem ou o timbre de uma gravação de voz.
Configuração e Otimização
A escolha do modelo para a transformação de dados em vetores é uma das decisões mais importantes no uso do Atlas Vector Search. Modelos pré-treinados, como os fornecidos por bibliotecas populares de PLN ou visão computacional, são acessíveis e podem ser eficazes, mas modelos personalizados treinados em datasets específicos geralmente oferecem maior precisão. Esta personalização pode ser fundamental para alcançar resultados de busca altamente relevantes e precisos, conforme detalhado na documentação oficial do MongoDB sobre vetores.
Entendendo os LLMs (Large Language Models)
Antes de falarmos sobre LLM’s é importante citar que 1. Eu não sou especialista no assunto, na verdade me considero bem leigo sobre; 2. Este não é o intuito do artigo, então vamos falar o mínimo, apenas para que você saiba mais ou menos do que estou tentando te explicar sobre o Vector Search.
No campo do processamento de linguagem natural, os Large Language Models (LLMs) como GPT e BERT representam um avanço significativo. Os Modelos de Linguagem de Grande Escala (Large Language Models ou LLMs) são um tipo de modelo de Inteligência Artificial criado para entender e gerar texto.
Esses modelos são treinados em grandes volumes de dados da internet, aprendendo padrões sobre como as palavras e frases são comumente usadas juntas. Quando alimentado com uma nova entrada de texto, um LLM tentará prever ou gerar a continuação mais provável desse texto com base no que aprendeu durante o treinamento. Embora os LLMs já existam há algum tempo, ganharam a mídia através do ChatGPT, interface de chat para modelos LLM GPT-3 e GPT-4.
Esses modelos são capazes de entender e gerar linguagem humana com um alto grau de complexidade, sendo treinados em extensos conjuntos de dados textuais. Eles são particularmente úteis no Atlas Vector Search para transformar texto em vetores que capturam contextos semânticos profundos, permitindo uma análise e busca mais nuanceada de conteúdo textual.
Benefícios da pesquisa vetorial
Compreensão semântica: em vez de procurar correspondências exatas, a pesquisa vetorial permite a pesquisa semântica. Isso significa que mesmo que as palavras de consulta não estejam presentes no índice, mas os significados das frases sejam semelhantes, elas ainda serão consideradas uma correspondência.
Escalável: a pesquisa vetorial pode ser feita em grandes conjuntos de dados, tornando-a perfeita para casos de uso onde você tem muitos dados.
Flexível: Diferentes tipos de dados, incluindo texto, mas também dados não estruturados, como áudio e imagens, podem ser pesquisados semanticamente.
Alguns casos de uso com Vector Search
O potencial do Atlas Vector Search se estende a uma variedade de aplicações industriais e comerciais. Na área da saúde, por exemplo, pode ser usado para análise de dados médicos complexos, como imagens de ressonância magnética ou padrões de prescrição, para ajudar na identificação de diagnósticos ou tratamentos similares. No setor financeiro, pode facilitar a análise de fraude ao comparar transações suspeitas com padrões conhecidos de fraude.
- Recomendações Personalizadas em E-commerce: No comércio eletrônico, o Atlas Vector Search pode analisar vetores representando as características dos produtos e as preferências dos usuários para fazer recomendações personalizadas. Por exemplo, se um cliente visualiza frequentemente produtos de uma categoria específica com características visuais semelhantes, o sistema pode recomendar produtos novos ou não explorados que compartilham esses atributos vetoriais.
- Gestão de Conteúdo Digital: Plataformas que lidam com grandes volumes de conteúdo digital, como bibliotecas de mídia ou arquivos de notícias, podem utilizar o Atlas Vector Search para categorizar e recomendar conteúdos baseados em semelhanças conceituais ou visuais extraídas através de vetores. Isso pode facilitar a descoberta de conteúdo relevante por usuários, baseando-se na “similaridade” de temas ou estilos, não apenas em metadados simples.
- Análise de Sentimento e Engajamento de Cliente: Empresas que monitoram feedback de clientes através de redes sociais ou outros canais podem usar o Atlas Vector Search para entender melhor os sentimentos e opiniões expressos em comentários e avaliações. Vetores que representam o sentimento podem ser comparados para identificar tendências de satisfação ou insatisfação, permitindo respostas mais rápidas e informadas a questões emergentes.
- Detecção de Fraude e Anomalias: No setor financeiro, onde a precisão e a velocidade são cruciais para a detecção de fraudes, o Atlas Vector Search pode ser utilizado para comparar transações em andamento com históricos de transações fraudulentas conhecidas. Vetores que caracterizam transações permitem identificar padrões suspeitos rapidamente, reduzindo o risco e minimizando perdas.
- Pesquisa e Desenvolvimento em Saúde: Instituições médicas e de pesquisa podem se beneficiar do Atlas Vector Search para análise de dados biomédicos, como imagens de ressonância magnética ou padrões genéticos. Vetores que representam características médicas podem ajudar na identificação de padrões correlatos a diagnósticos ou na correlação entre genótipos e fenótipos, contribuindo para avanços em diagnósticos e tratamentos personalizados.
Perguntas frequentes
- Como o Atlas Vector Search difere do Atlas Search?
- Enquanto o Atlas Search é focado em buscas de texto completo e filtros de consulta, o Atlas Vector Search é especializado em lidar com buscas baseadas em semelhança vetorial. Isso o torna ideal para aplicações que requerem análise e comparação de dados complexos, como imagens e documentos de texto sem estrutura clara.
- Existem limitações ou considerações especiais ao usar o Atlas Vector Search?
- Uma das principais considerações ao usar o Atlas Vector Search é a escolha e a implementação do modelo de vetorização. Modelos inadequados podem não capturar a essência dos dados eficazmente, resultando em buscas menos precisas. Além disso, a configuração dos parâmetros do índice vetorial pode impactar o desempenho das buscas, exigindo um equilíbrio entre precisão e tempo de resposta.
- O que é KNN e ANN?
- KNN significa “Vizinhos Mais Próximos”, que é o algoritmo frequentemente usado para encontrar vetores próximos um do outro.
- ANN significa “Vizinhos Mais Próximos Aproximados” e é uma abordagem para encontrar vetores semelhantes que prioriza o desempenho em detrimento da precisão.Este é um dos algoritmos fundamentais usados para impulsionar o Atlas Vector Search. Nosso algoritmo para pesquisa de vizinho mais próximo aproximado usa o Hierarchical Navigable Small World (HNSW) gráficos.
- Que tipos de dados o Vector Search suporta?
- Sim, o Atlas Vector Search pode consultar qualquer tipo de dados que possam ser transformados em uma incorporação (o famoso embedding). Um dos benefícios do modelo de documento é que você pode armazenar suas incorporações ao lado de seus dados avançados em seus documentos. Ou seja, dá pra fazer busca em imagens e aúdios também, algo que o full text search não conseguia fazer.
Conclusão
O Atlas Vector Search é uma ferramenta extremamente poderosa no arsenal do desenvolvedor MongoDB, oferecendo capacidades avançadas de busca que podem transformar o manejo de dados complexos. Com uma compreensão clara das suas capacidades técnicas e uma implementação cuidadosa, os desenvolvedores podem utilizar o Atlas Vector Search para desbloquear novos insights e otimizar a eficiência das aplicações. Para mais informações e guias detalhados, visite a documentação completa do MongoDB.
Acredito que cobrimos tudo o que precisávamos de parte teórica sobre Atlas Search e os próximos artigos dessa série serão com bastante código e demonstrações, prometo!