O Elasticsearch está morto, viva a pesquisa lexical
Neste momento, toda a gente sabe que a pesquisa híbrida melhorou a qualidade da pesquisa RAG (Retrieval-Augmented Generation). Embora a pesquisa com incorporação densa tenha mostrado capacidades impressionantes na captura de relações semânticas profundas entre consultas e documentos, ainda tem limitações notáveis. Estas incluem a falta de explicabilidade e um desempenho subóptimo com consultas de cauda longa e termos raros.
Muitas aplicações RAG têm dificuldades porque os modelos pré-treinados carecem frequentemente de conhecimentos específicos do domínio. Em alguns cenários, a simples correspondência de palavras-chave BM25 supera estes modelos sofisticados. É aqui que a pesquisa híbrida preenche a lacuna, combinando a compreensão semântica da recuperação de vectores densos com a precisão da correspondência de palavras-chave.
Porque é que a pesquisa híbrida é complexa na produção
Embora estruturas como LangChain ou LlamaIndex facilitem a construção de um recuperador híbrido de prova de conceito, o escalonamento para produção com conjuntos de dados massivos é um desafio. As arquitecturas tradicionais requerem bases de dados vectoriais e motores de pesquisa separados, o que leva a vários desafios importantes:
Elevados custos de manutenção da infraestrutura e complexidade operacional
Redundância de dados em vários sistemas
Gestão difícil da consistência dos dados
Segurança e controlo de acesso complexos entre sistemas
O mercado precisa de uma solução unificada que suporte a pesquisa lexical e semântica, reduzindo a complexidade e o custo do sistema.
Os pontos problemáticos do Elasticsearch
O Elasticsearch tem sido um dos projectos de pesquisa open-source mais influentes da última década. Criado com base no Apache Lucene, ganhou popularidade graças ao seu elevado desempenho, escalabilidade e arquitetura distribuída. Embora tenha adicionado a pesquisa ANN vetorial na versão 8.0, as implementações de produção enfrentam vários desafios críticos:
Altos custos de atualização e indexação: A arquitetura do Elasticsearch não dissocia totalmente as operações de gravação, a criação de índices e a consulta. Isso leva a uma sobrecarga significativa de CPU e E/S durante as operações de gravação, especialmente em atualizações em massa. A contenção de recursos entre a indexação e a consulta afeta o desempenho, criando um grande gargalo para cenários de atualização de alta frequência.
Fraco desempenho em tempo real: Como um mecanismo de busca "quase em tempo real", o Elasticsearch introduz uma latência percetível na visibilidade dos dados. Essa latência se torna particularmente problemática para aplicações de IA, como sistemas Agent, em que interações de alta frequência e tomadas de decisão dinâmicas exigem acesso imediato aos dados.
Difícil gerenciamento de shards: Embora o Elasticsearch use sharding para arquitetura distribuída, o gerenciamento de shards apresenta desafios significativos. A falta de suporte a sharding dinâmico cria um dilema: muitos shards em conjuntos de dados pequenos levam a um desempenho ruim, enquanto poucos shards em conjuntos de dados grandes limitam a escalabilidade e causam distribuição desigual de dados.
Arquitetura não nativa da nuvem: Desenvolvido antes de as arquiteturas nativas da nuvem se tornarem predominantes, o design do Elasticsearch une fortemente o armazenamento e a computação, limitando sua integração com a infraestrutura moderna, como nuvens públicas e Kubernetes. A ampliação de recursos exige aumentos simultâneos no armazenamento e na computação, reduzindo a flexibilidade. Em cenários de várias réplicas, cada fragmento deve criar seu índice de forma independente, aumentando os custos computacionais e reduzindo a eficiência dos recursos.
Baixo desempenho de pesquisa vetorial: Embora o Elasticsearch 8.0 tenha introduzido a pesquisa vetorial ANN, seu desempenho fica significativamente atrás do desempenho de mecanismos vetoriais dedicados, como o Milvus. Com base no kernel do Lucene, sua estrutura de índice se mostra ineficiente para dados de alta dimensão, com dificuldades para atender aos requisitos de busca vetorial em grande escala. O desempenho torna-se particularmente instável em cenários complexos que envolvem filtragem escalar e multi-tenancy, o que torna difícil suportar cargas elevadas ou necessidades empresariais diversas.
Consumo excessivo de recursos: O Elasticsearch impõe demandas extremas de memória e CPU, especialmente ao processar dados em grande escala. Sua dependência da JVM exige ajustes frequentes no tamanho do heap e no ajuste da coleta de lixo, afetando severamente a eficiência da memória. As operações de pesquisa vetorial exigem cálculos intensivos otimizados para SIMD, para os quais o ambiente JVM está longe de ser ideal.
Essas limitações fundamentais se tornam cada vez mais problemáticas à medida que as organizações ampliam sua infraestrutura de IA, tornando o Elasticsearch particularmente desafiador para aplicações modernas de IA que exigem alto desempenho e confiabilidade.
Apresentando o Sparse-BM25: Reimaginando a pesquisa lexical
O Milvus 2.5 introduz o suporte nativo à pesquisa lexical por meio do Sparse-BM25, com base nos recursos de pesquisa híbrida introduzidos na versão 2.4. Essa abordagem inovadora inclui os seguintes componentes principais:
Tokenização avançada e pré-processamento via Tantivy
Gestão distribuída do vocabulário e da frequência dos termos
Geração de vectores esparsos utilizando TF do corpus e TF-IDF da consulta
Suporte a índices invertidos com o algoritmo WAND (Block-Max WAND e suporte a índices gráficos em desenvolvimento)
Em comparação com o Elasticsearch, o Milvus oferece vantagens significativas em termos de flexibilidade de algoritmos. O seu cálculo de semelhança baseado na distância vetorial permite uma correspondência mais sofisticada, incluindo a implementação do TW-BERT (Term Weighting BERT) com base na investigação "End-to-End Query Term Weighting". Esta abordagem demonstrou um desempenho superior em testes no domínio e fora do domínio.
Outra vantagem crucial é a eficiência de custos. Ao tirar partido do índice invertido e da compressão de incorporação densa, o Milvus consegue quintuplicar o desempenho com menos de 1% de degradação da recuperação. Através da poda de cauda e da quantização de vectores, a utilização de memória foi reduzida em mais de 50%.
A otimização de consultas longas destaca-se como um ponto forte particular. Enquanto os algoritmos WAND tradicionais têm dificuldades com consultas mais longas, o Milvus se destaca pela combinação de embeddings esparsos com índices gráficos, proporcionando uma melhoria de desempenho dez vezes maior em cenários de pesquisa de vetores esparsos de alta dimensão.
Milvus: A melhor base de dados vetorial para RAG
O Milvus é a primeira escolha para aplicações RAG graças ao seu conjunto abrangente de funcionalidades. As principais vantagens incluem:
Suporte rico de metadados com capacidades de esquema dinâmico e opções de filtragem poderosas
Multitenancy de nível empresarial com isolamento flexível através de colecções, partições e chaves de partição
Suporte de índice de vetor de disco pioneiro no setor com armazenamento em vários níveis, da memória ao S3
Escalabilidade nativa da nuvem com suporte para escalonamento contínuo de 10 milhões a mais de 1 bilhão de vetores
Recursos de pesquisa abrangentes, incluindo agrupamento, intervalo e pesquisa híbrida
Integração profunda do ecossistema com LangChain, LlamaIndex, Dify e outras ferramentas de IA
As diversas capacidades de pesquisa do sistema abrangem metodologias de pesquisa de agrupamento, de intervalo e híbridas. A profunda integração com ferramentas como LangChain, LlamaIndex e Dify, bem como o suporte a vários produtos de IA, coloca o Milvus no centro do ecossistema moderno de infraestrutura de IA.
Olhando para o futuro
À medida que a IA passa do POC para a produção, a Milvus continua a evoluir. Concentramo-nos em tornar a pesquisa vetorial mais acessível e rentável, melhorando simultaneamente a qualidade da pesquisa. Quer se trate de uma startup ou de uma empresa, a Milvus reduz as barreiras técnicas ao desenvolvimento de aplicações de IA.
Este compromisso com a acessibilidade e a inovação levou-nos a dar mais um grande passo em frente. Embora a nossa solução de código aberto continue a servir de base a milhares de aplicações em todo o mundo, reconhecemos que muitas organizações necessitam de uma solução totalmente gerida que elimine as despesas operacionais.
Zilliz Cloud: A Solução Gerenciada
Nos últimos três anos, criámos o Zilliz Cloud, um serviço de base de dados vetorial totalmente gerido, baseado no Milvus. Através de uma reimplementação nativa da nuvem do protocolo Milvus, oferece maior usabilidade, eficiência de custos e segurança.
Com base na nossa experiência na manutenção dos maiores clusters de pesquisa vetorial do mundo e no suporte a milhares de programadores de aplicações de IA, o Zilliz Cloud reduz significativamente as despesas gerais e os custos operacionais em comparação com as soluções auto-hospedadas.
Pronto para experimentar o futuro da pesquisa vetorial? Comece hoje mesmo a sua avaliação gratuita com até $200 em créditos, sem necessidade de cartão de crédito.
- Porque é que a pesquisa híbrida é complexa na produção
- Os pontos problemáticos do Elasticsearch
- Apresentando o Sparse-BM25: Reimaginando a pesquisa lexical
- Milvus: A melhor base de dados vetorial para RAG
- Olhando para o futuro
- Zilliz Cloud: A Solução Gerenciada
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word