Parte #1: Crie seu próprio Vector Search com o MongoDB Atlas e o Amazon SageMaker
Dominic Frei4 min read • Published Sep 18, 2024 • Updated Sep 18, 2024
Avalie esse Tutorial
Você já ouviu falar em aprendizado de máquina, modelos e AI, mas não sabe bem por onde começar? Deseja pesquisar seus dados semanticamente? Tem interesse em usar a pesquisa vetorial em seu aplicativo?
Então você veio ao lugar certo!
Esta série apresentará o MongoDB Atlas Vector Search e o Amazon SageMaker, e como usar os dois juntos para pesquisar semanticamente seus dados.
Este artigo é parte de uma série de três partes:
Esta primeira parte da série se concentrará na arquitetura de tal aplicativo — ou seja, as partes de que você precisa, como elas estão conectadas e o que elas fazem.
Em seguida, as seguintes partes da série abordarão os detalhes de como os elementos individuais apresentados nessa arquitetura funcionam (Amazon SageMaker na Parte 2 e MongoDB Atlas Vector Search na Parte 3) e sua configuração e implementação reais. Se você estiver interessado apenas em uma dessas duas implementações, dê uma olhada rápida nas imagens da arquitetura e vá para a parte correspondente da série. Mas, para obter uma compreensão profunda do Vector Search, recomendável ler a série completa.
No entanto, vamos começar com o motivo: por que você deve usar o MongoDB Atlas Vector Search e o Amazon SageMaker?
No aprendizado de máquina, um modelo de incorporação é um tipo de modelo que aprende a representar objetos - como palavras, frases ou até mesmo documentos inteiros - como vetores em um espaço de alta dimensão. Esses vetores, chamados de embeddings, capturam as relações semânticas entre os objetos.
Por outro lado, um modelo de linguagem grande, que é um termo do qual você já deve ter escutado, é projetado para entender e gerar texto semelhante ao humano. Ele descobre padrões e relacionamentos dentro da linguagem processando grandes quantidades de dados de texto. Embora também gere incorporações como uma representação interna, o objetivo principal é entender e gerar texto coerente.
Os modelos de incorporação são frequentemente usados em tarefas como processamento de linguagem natural (NLP), onde a compreensão das relações semânticas é crucial. Por exemplo, os embeddings de palavras podem ser usados para encontrar semelhanças entre palavras com base em seu uso contextual.
Em resumo, os modelos de incorporação se concentram na representação de objetos de maneira significativa em um espaço vetorial, enquanto os grandes modelos de linguagem são mais versáteis, lidando com uma ampla gama de tarefas relacionadas à linguagem, entendendo e gerando texto.
Para nossas necessidades neste aplicativo, um modelo de incorporação é suficiente. Em particular, usaremos o All MiniLM L6 v2 da Abraçando a Face.
O Amazon SageMaker não é apenas mais um serviço da AWS; é uma plataforma versátil projetada por desenvolvedores, para desenvolvedores. Ele nos permite assumir o controle de nossos projetos de aprendizado de máquina com facilidade. Ao contrário das estruturas de ML tradicionais, o SageMaker simplifica todo o ciclo de vida do ML, do pré-processamento de dados à implantação do modelo. Como engenheiros de software, valorizamos a eficiência, e o SageMaker oferece exatamente isso, permitindo que nos concentremos mais na criação de modelos inteligentes e menos no gerenciamento da infraestrutura. Ele fornece uma variedade de algoritmos pré-construídos, tornando-o acessível mesmo para aqueles que não estão familiarizados com o campo do aprendizado de máquina.
OMongoDB Atlas Vector Search é uma mudança de jogo para desenvolvedores como nós, que avaliamos o poder da simplicidade e da eficiência nas operações de banco de dados. Em vez de vasculhar queries complexas e código extensivo, o Atlas Vector Search fornece uma maneira intuitiva e direta de implementar a funcionalidade de Atlas Search baseada em vetor. Como engenheiros de software, sabemos o quão crucial é melhorar a experiência do usuário com resultados de Atlas Search rápidos e precisos. Essa tecnologia aproveita os benefícios de técnicas avançadas de indexação de vetores, tornando-a ideal para projetos que envolvem mecanismos de recomendações, similaridade de conteúdo ou até mesmo recursos relacionados a jogos. Com o MongoDB Atlas Vector Search, podemos integrar dados vetoriais em nossos aplicativos sem problemas, reduzindo significativamente o tempo e o esforço de desenvolvimento. É o ideal de qualquer desenvolvedor realizar-se – prático, eficiente e projetado para facilitar nossa vida no mundo em constante mudança do desenvolvimento de software.
Existem duas etapas para usar o Vector Search em seu aplicativo.
O primeiro passo é realmente criar vetores (também chamados de incorporações ou vetores de incorporação), bem como atualizá-los sempre que seus dados forem alterados. A maneira mais fácil de observar dados recém-inseridos e atualizados do seu aplicativo de servidor é usar MongoDB Atlas Triggers e observar exatamente esses dois eventos. Os gatilhos em si estão fora do escopo deste tutorial, mas você pode encontrar outros ótimos recursos sobre como configurá-los na Central de Desenvolvedores.
O trigger então executa um script que cria novos vetores. Isso pode, por exemplo, ser feito por meio do MongoDB Atlas Functions ou, como neste diagrama, usando o Lambda. O script em si usa o endpoint Amazon SageMaker com seu modelo desejado implantado por meio da REST API para criar ou atualizar um vetor em seu banco de dados Atlas.
A parte importante aqui que torna o uso tão fácil e o desempenho tão bom é que os dados e as incorporações são salvos dentro do mesmo banco de dados:
Os dados que pertencem juntos são salvos juntos.
Como implantar e preparar esse endpoint do SageMaker e oferecê-lo como um serviço REST para seu aplicativo será discutido em detalhes na Parte 2 deste tutorial.
A outra metade do seu aplicativo será responsável por receber consultas para semanticamente Atlas Search seus dados.
Observe que uma pesquisa deve ser feita usando a versão vetorizada da query. E a vetorização deve ser feita com o mesmo modelo que usamos para vetorizar os dados em si. O mesmo endpoint do Amazon SageMaker pode, é claro, ser usado para isso.
Portanto, sempre que um aplicativo cliente envia uma solicitação para o aplicativo servidor, duas coisas precisam acontecer.
- O aplicativo do servidor precisa chamar o serviço REST que fornece o endpoint do Amazon SageMaker (consulte a seção anterior).
- Com o vetor recebido, o aplicativo do servidor precisa executar uma pesquisa usando o Vector Search para recuperar os resultados do banco de dados.
A implementação de como consultar o Atlas pode ser encontrada na Parte 3 deste tutorial.
Esta primeira parte curta da série forneceu uma visão geral de uma arquitetura possível para usar o Amazon SageMaker e o MongoDB Atlas Vector Search para pesquisar semanticamente seus dados.
✅ Já tem uma conta AWS? O Atlas aceita pagamentos por uso por meio do AWS Marketplace (AWS MP) sem nenhum compromisso inicial — basta se inscrever no MongoDB Atlas por meio do AWS Marketplace.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.