🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI

HomeBlogsO Elasticsearch está morto, viva a pesquisa lexical

O Elasticsearch está morto, viva a pesquisa lexical

  • Engineering
December 17, 2024
James Luan

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.

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.

Like the article? Spread the word

Continue Lendo