Explorando as Maravilhas de Knowhere 2.0
Acabou de sair, o Milvus 2.3 chegou com muitas atualizações revolucionárias. Na linha de frente dessas melhorias está o Knowhere 2.0, uma atualização transformadora que promete elevar o Milvus a novos patamares.
Junte-se a nós nesta publicação do blog enquanto fazemos um mergulho profundo no Knowhere 2.0, explorando seus recursos inovadores, otimizações de desempenho e princípios de design que o tornam uma força de destaque em bancos de dados vetoriais.
O que é o Knowhere?
Knowhere é o mecanismo central de busca vetorial do Milvus. Imagine o banco de dados vetorial como o vasto Universo Marvel; Knowhere é sua sede definitiva. A principal missão do Knowhere é realizar buscas aproximadas de vizinhos mais próximos (ANNS) construindo índices com baixa latência.
Knowhere 2.0 e seus novos recursos
Estamos trabalhando na reestruturação e atualização do Knowhere desde julho de 2022. Após discussões, design, desenvolvimento e testes incansáveis, o Knowhere 2.0 estreou com o Milvus 2.3 no final de agosto de 2023. Esta nova versão traz muitas melhorias, incluindo suporte ao índice de GPU, similaridade de Cosseno, índice ScaNN e arquitetura Arm. O Knowhere atualizado beneficia usuários e desenvolvedores, tornando-o uma potência no Milvus. A seguir, vamos explorar seus principais recursos.
Suporte a índices de GPU
A Nvidia contribuiu com os índices GPU_FLAT e GPU_IVFPQ de sua biblioteca de busca vetorial, RAFT, para o Knowhere 2.0. Essa adição acelera significativamente as buscas em índices, com o Milvus alcançando melhorias notáveis de throughput na Nvidia A100, quase 70 vezes para SIFT1M.
Milvus QPS GPU vs. CPU
Para mais informações sobre o índice de GPU, consulte a documentação do Milvus.
Suporte à similaridade de Cosseno
Em versões anteriores do Knowhere, os usuários precisavam utilizar o Produto Interno e normalizar vetores antes da inserção vetorial para usar a similaridade de Cosseno. Esse processo era muito custoso, difícil de acessar e exigia maior conhecimento teórico dos usuários.
O Knowhere 2.0 oferece suporte nativo à distância de Cosseno, normaliza automaticamente os vetores recebidos dentro da biblioteca e combina os tipos de índice correspondentes, melhorando significativamente a experiência do usuário.
Suporte ao índice ScaNN
ScaNN, ou FastScan, é um índice de vizinhos mais próximos aproximados (ANN) de código aberto implementado pelo FAISS. Ele usa codificação PQ menor e conjuntos de instruções correspondentes para acessar registradores da CPU, resultando em excelente desempenho de indexação.
O Knowhere 2.0 agora oferece suporte nativo ao índice ScaNN. Com o Knowhere 2.0, o Milvus 2.3 atinge sete vezes o QPS do IVF_FLAT e 1,2 vez o do HNSW, com uma taxa de recall de aproximadamente 95% nos conjuntos de dados da Cohere.
Suporte à arquitetura ARM
A arquitetura ARM é conhecida por sua relação custo-benefício em comparação com a arquitetura x86. Embora menos poderosa, a ARM tem um design e conjuntos de instruções mais simples, tornando-se cada vez mais popular. Por exemplo, instâncias ARM com as mesmas especificações de CPU (por exemplo, 1 vCPU e 16GB de RAM) são cerca de 15% mais baratas na plataforma AWS do que instâncias x86.
Com suporte à arquitetura ARM no Knowhere 2.0, os usuários agora podem executar e criar serviços de camada superior nessa arquitetura.
Suporte à busca por intervalo
Há dois métodos para encontrar os vizinhos mais próximos: K Nearest Neighbor (KNN) e Range Search. O KNN encontra os "k" vetores mais próximos de um vetor de consulta "q" dentro de uma coleção de vetores "X." Enquanto isso, o Range Search não tem um "k" especificado; em vez disso, retorna todos os vetores dentro de uma determinada distância (raio) do vetor de consulta "q" dentro da coleção de vetores "X."
O Knowhere 2.0 oferece suporte à range search para múltiplos índices na biblioteca, como HNSW, DiskANN e índices IVF. Esse recurso permite que os usuários especifiquem a distância entre o vetor de entrada e os vetores armazenados no Milvus durante uma consulta.
Consultas com filtro otimizadas
Em consultas mistas escalares e vetoriais, você pode filtrar alguns vetores. O Knowhere 2.0 melhorou significativamente as consultas vetoriais com filtro para HNSW, resultando em aumentos de desempenho de até 6 a 80 vezes em comparação com versões anteriores.
Melhorias na estrutura de código e compilação
O Knowhere 2.0 simplifica a herança de classes C++, usa padrões proxy para integração de novos índices, refatora o módulo Config, adota o Conan como gerenciador de pacotes para compilação simplificada e aproveita o pool de threads do Folly para controle preciso de threads. Todas essas melhorias tornam o uso do Milvus mais simples.
Suporte a MMap
No passado, alguns usuários enfrentavam restrições de espaço de memória devido a seus grandes conjuntos de dados, o que afetava os índices que podiam armazenar. No entanto, com a introdução do Knowhere 2.0, o Milvus agora oferece suporte a Memory Mapping (MMap), permitindo o mapeamento automático de arquivos grandes na memória. Esse novo recurso permite que os usuários acessem dados extensos de índice apesar de memória insuficiente.
Suporte à recuperação de vetores originais
Após concluir uma busca, os usuários podem precisar acessar os vetores originais com base nos IDs retornados para cálculos personalizados adicionais ou filtragem. Com o Knowhere 2.0, os usuários podem recuperar diretamente os vetores originais do índice, reduzindo a latência em comparação com a busca em armazenamento remoto como S3.
Para mais detalhes sobre os recursos e aprimoramentos do Knowhere 2.0, consulte Notas de lançamento do Knowhere 2.0.
Bem-vindo a contribuir com o Knowhere!
O Knowhere está em constante evolução, e seu feedback é importante. Se você tiver sugestões ou ideias valiosas, não hesite em contribuir para o repositório Knowhere.
Continue lendo

How to Build an Enterprise-Ready RAG Pipeline on AWS with Bedrock, Zilliz Cloud, and LangChain
Build production-ready enterprise RAG with AWS Bedrock, Nova models, Zilliz Cloud, and LangChain. Complete tutorial with deployable code.

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving faces a data bottleneck. Learn how AI-native vector databases like Zilliz solve scale, cost, and insight challenges across AV pipelines.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.



