Crie Busca Semântica com Rapidez
Busca semântica é uma ótima ferramenta para ajudar seus clientes — ou seus funcionários — a encontrar os produtos ou informações certos. Ela pode até revelar informações difíceis de indexar para obter melhores resultados. Dito isso, se suas metodologias semânticas não estiverem sendo implantadas para funcionar rapidamente, elas não servirão de nada. O cliente ou funcionário não vai simplesmente ficar esperando enquanto o sistema leva seu tempo para responder à consulta dele — e provavelmente outras mil estão sendo ingeridas ao mesmo tempo.
Como você pode tornar a busca semântica rápida? Uma busca semântica lenta não vai dar conta.
Felizmente, esse é o tipo de problema que a Lucidworks adora resolver. Recentemente, testamos um cluster de tamanho modesto — continue lendo para mais detalhes — que resultou em 1500 RPS (requisições por segundo) em uma coleção de mais de um milhão de documentos, com um tempo médio de resposta de aproximadamente 40 milissegundos. Isso sim é velocidade de verdade.
Implementando a Busca Semântica
Para fazer a magia ultrarrápida do aprendizado de máquina acontecer, a Lucidworks implementou a busca semântica usando a abordagem de busca vetorial semântica. Há duas partes críticas.
Parte Um: O Modelo de Aprendizado de Máquina
Primeiro, você precisa de uma maneira de codificar texto em um vetor numérico. O texto pode ser uma descrição de produto, uma consulta de busca de usuário, uma pergunta ou até mesmo uma resposta a uma pergunta. Um modelo de busca semântica é treinado para codificar texto de modo que textos semanticamente semelhantes a outros textos sejam codificados em vetores que sejam numericamente “próximos” uns dos outros. Essa etapa de codificação precisa ser rápida para dar suporte às mil ou mais possíveis buscas de clientes ou consultas de usuários que chegam a cada segundo.
Parte Dois: O Mecanismo de Busca Vetorial
Em segundo lugar, você precisa de uma maneira de encontrar rapidamente as melhores correspondências para a busca do cliente ou consulta do usuário. O modelo terá codificado esse texto em um vetor numérico. A partir daí, você precisa compará-lo a todos os vetores numéricos no seu catálogo ou listas de perguntas e respostas para encontrar essas melhores correspondências — os vetores que estão “mais próximos” do vetor da consulta. Para isso, você precisará de um mecanismo vetorial que consiga lidar com todas essas informações de forma eficaz e em velocidade relâmpago. O mecanismo poderia conter milhões de vetores e você realmente quer apenas as vinte melhores correspondências, mais ou menos, para a sua consulta. E, claro, ele precisa lidar com cerca de mil consultas desse tipo a cada segundo.
Para enfrentar esses desafios, adicionamos o mecanismo de busca vetorial Milvus em nosso lançamento do Fusion 5.3. Milvus é um software de código aberto e é rápido. O Milvus usa FAISS (Facebook AI Similarity Search), a mesma tecnologia que o Facebook usa em produção para suas próprias iniciativas de aprendizado de máquina. Quando necessário, ele pode rodar ainda mais rápido em GPU. Quando o Fusion 5.3 (ou superior) é instalado com o componente de aprendizado de máquina, o Milvus é instalado automaticamente como parte desse componente, para que você possa ativar todos esses recursos com facilidade.
O tamanho dos vetores em uma determinada coleção, especificado quando a coleção é criada, depende do modelo que produz esses vetores. Por exemplo, uma determinada coleção poderia armazenar os vetores criados a partir da codificação (por meio de um modelo) de todas as descrições de produtos em um catálogo de produtos. Sem um mecanismo de busca vetorial como o Milvus, buscas por similaridade não seriam viáveis em todo o espaço vetorial. Assim, as buscas por similaridade teriam que ser limitadas a candidatos pré-selecionados do espaço vetorial (por exemplo, 500) e teriam tanto desempenho mais lento quanto resultados de menor qualidade. O Milvus pode armazenar centenas de bilhões de vetores em várias coleções de vetores para garantir que a busca seja rápida e que os resultados sejam relevantes.
Usando a Busca Semântica
Vamos voltar ao fluxo de trabalho de busca semântica, agora que aprendemos um pouco sobre por que o Milvus pode ser tão importante. A busca semântica tem três etapas. Durante a primeira etapa, o modelo de machine learning é carregado e/ou treinado. Depois, os dados são indexados no Milvus e no Solr. A etapa final é a etapa de consulta, quando a busca propriamente dita ocorre. Vamos nos concentrar nessas duas últimas etapas abaixo.
Indexação no Milvus
Diagrama arquitetural para indexação no Milvus.
Como mostrado no diagrama acima, a etapa de consulta começa de forma semelhante à etapa de indexação, apenas com consultas chegando em vez de documentos. Para cada consulta:
- A consulta é enviada para o pipeline de indexação do Smart Answers.
- A consulta é então enviada para o modelo de ML.
- O modelo de ML retorna um vetor numérico (criptografado a partir da consulta). Novamente, o tipo de modelo determina o tamanho do vetor.
- O vetor é enviado ao Milvus, que então determina quais vetores, na coleção Milvus especificada, correspondem melhor ao vetor fornecido.
- O Milvus retorna uma lista de IDs únicos e distâncias correspondentes aos vetores determinados na etapa quatro.
- Uma consulta contendo esses IDs e distâncias é enviada ao Solr.
- O Solr então retorna uma lista ordenada dos documentos associados a esses IDs.
Teste de escala
Para provar que nossos fluxos de busca semântica estão sendo executados com a eficiência que exigimos para nossos clientes, executamos testes de escala usando scripts Gatling no Google Cloud Platform, utilizando um cluster Fusion com oito réplicas do modelo de ML, oito réplicas do serviço de consulta e uma única instância do Milvus. Os testes foram executados usando os índices FLAT e HNSW do Milvus. O índice FLAT tem 100% de recall, mas é menos eficiente – exceto quando os conjuntos de dados são pequenos. O índice HNSW (Hierarchical Small World Graph) ainda apresenta resultados de alta qualidade e tem desempenho aprimorado em conjuntos de dados maiores.
Vamos ver alguns números de um exemplo recente que executamos:
Desempenho dos índices FLAT e HNSW do Milvus em um conjunto de dados pequeno.
Desempenho dos índices FLAT e HNSW do Milvus em um conjunto de dados médio.
Desempenho dos índices FLAT e HNSW do Milvus em um conjunto de dados grande.
Introdução
Os pipelines do Smart Answers são projetados para serem fáceis de usar. A Lucidworks tem modelos pré-treinados que são fáceis de implantar e geralmente apresentam bons resultados—embora treinar seus próprios modelos, em conjunto com modelos pré-treinados, ofereça os melhores resultados. Entre em contato conosco hoje para saber como você pode implementar essas iniciativas em suas ferramentas de busca para gerar resultados mais eficazes e agradáveis.
Este blog foi republicado de: https://lucidworks.com/post/how-to-build-fast-semantic-search/?utm_campaign=Oktopost-Blog+Posts&utm_medium=organic_social&utm_source=linkedin
Continue lendo

Context Engineering Strategies for AI Agents: A Developer’s Guide
Learn practical context engineering strategies for AI agents. Explore frameworks, tools, and techniques to improve reliability, efficiency, and cost.

Why Context Engineering Is Becoming the Full Stack of AI Agents
Discover how context engineering unifies prompts, RAG, and tools to build smarter, production-ready AI agents powered by Milvus.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.



