A evolução e o futuro dos bancos de dados vetoriais: insights de Charles, CEO da Zilliz
Esta é a primeira parte da nossa série de blog em duas partes sobre a evolução e o futuro dos bancos de dados vetoriais e da IA.
Os bancos de dados vetoriais surgiram como uma inovação crítica na área em rápida evolução da ciência de dados e da inteligência artificial, impulsionados pelo aumento de dados complexos e não estruturados e pela ascensão dos grandes modelos de linguagem (LLMs). Esse novo tipo de banco de dados é fundamental para gerenciar e consultar semanticamente dados não estruturados por meio de embeddings vetoriais, modernizando a acessibilidade e a análise de dados e atendendo às demandas das aplicações de IA de próxima geração. Guiado por insights de Charles, CEO da Zilliz, este blog examina a evolução, a dinâmica atual e a trajetória futura dos bancos de dados vetoriais.
O que é um Banco de Dados Vetorial?
Um banco de dados vetorial é uma infraestrutura de dados de ponta projetada para gerenciar e consultar dados não estruturados, como imagens, vídeos e linguagens naturais. Podemos usar algoritmos de deep learning para transformar dados não estruturados em um novo formato de dados conhecido como embeddings vetoriais. Em seguida, armazenamos esses embeddings em um banco de dados vetorial, o que nos permite realizar consultas semânticas nesses dados. Essa capacidade é poderosa porque, ao contrário das pesquisas tradicionais baseadas em palavras-chave, ela nos permite investigar a semântica dos dados não estruturados, oferecendo uma experiência de busca mais sutil e contextualmente rica.
Os desenvolvedores usam amplamente bancos de dados vetoriais na criação de sistemas de recomendação inteligentes e personalizados, chatbots com IA e busca semântica. Com a ascensão dos LLMs, os bancos de dados vetoriais surgiram como um componente-chave da infraestrutura de Retrieval-Augmented Generation (RAG), fornecendo aos LLMs conhecimento adicional como contexto de consulta para gerar respostas altamente relevantes.
O Cenário Atual dos Bancos de Dados Vetoriais
Atualmente, o mercado é povoado por inúmeros "bancos de dados vetoriais”, incluindo bancos de dados vetoriais desenvolvidos especificamente, como Milvus, bancos de dados tradicionais com um plugin de busca vetorial, como Elasticsearch, bancos de dados vetoriais leves, como Chroma, e muitas outras tecnologias com recursos de busca vetorial, como FAISS. Embora existam tantos tipos de bancos de dados vetoriais, eles não são todos iguais.
Tecnologias de Busca Vetorial
Alguns adotam abordagens semelhantes a sistemas embarcados, como o Chroma, que se destaca como líder nesse aspecto. Sua vantagem está em sua pegada mínima, tornando-o excepcionalmente simples para os usuários configurarem e iniciarem operações. No entanto, assim como o SQLite, o Chroma não é um sistema de banco de dados completo, mas uma biblioteca de runtime. Consequentemente, ele carece do suporte a funcionalidades essenciais, como persistência de dados, recuperação de dados e, notavelmente, escalabilidade.
Bancos de dados como PGVector e Pinecone adotaram uma abordagem de escalabilidade vertical. Quando implantados em processadores mais avançados, eles alcançam desempenho superior em uma instância de nó único, gerando confiança de curto prazo em suas capacidades. No entanto, escalar verticalmente tem limitações, principalmente devido às restrições físicas impostas por uma máquina de nó único. O Pinecone, por exemplo, suporta um número substancial de pods, mas é limitado pelas chamadas de CPU em uma única arquitetura x86. Optar pelas arquiteturas de CPU mais recentes e mais caras é necessário para superar esses limites.
Outra desvantagem do modelo de escalabilidade vertical é o risco de um ponto único de falha. Em caso de falha de um nó, todos os dados associados a esse nó serão perdidos. Em contraste, uma arquitetura distribuída inerente à abordagem de escalabilidade horizontal permite mecanismos eficientes de replicação de dados e failover. Em um cenário de pior caso de perda de um nó em um sistema distribuído com, por exemplo, 16 nós, apenas uma fração (1/16) dos dados é comprometida. Recuperar essa porção menor de dados é mais gerenciável e mais rápido, minimizando o risco de perda total de dados.
Como construímos o banco de dados vetorial Milvus?
Antes de explorar nossa jornada de construção do Milvus, vamos discutir a essência dos sistemas de banco de dados. De modo geral, um sistema de banco de dados abrangente compreende uma camada de armazenamento, um formato de armazenamento especificado, uma camada de orquestração de dados responsável por posicionar ou armazenar dados em cache nos locais apropriados, um otimizador de consultas e um mecanismo de execução eficiente. O mecanismo de execução e o otimizador de consultas devem ser flexíveis para se adaptar e otimizar para um espectro mais amplo de infraestruturas de hardware, dada a proliferação de arquiteturas heterogêneas na última década. Essa flexibilidade depende de vários processadores subjacentes, abrangendo CPUs modernas, processadores ARM, GPUs e uma variedade de aceleradores projetados explicitamente para aplicações de IA. Essa integração permite a elaboração de planos de execução ideais que exploram os pontos fortes exclusivos de cada tipo de processador, aprimorando significativamente a eficiência e o desempenho da execução de consultas.
Então, qual é a nossa filosofia para construir o sistema de banco de dados vetorial Milvus?
Adotando a computação heterogênea
Desde a sua criação, o Milvus se comprometeu totalmente com a computação heterogênea, demonstrando sua versatilidade e alto desempenho em diversos processadores modernos. Ele oferece suporte a vários hardwares, de CPUs Intel e AMD a processadores ARM e GPUs Nvidia. As capacidades de integração do Milvus abrangem tarefas de processamento vetorial de IA, desde álgebra linear básica até computações complexas baseadas em grafos. Essa compatibilidade é crucial porque cada tipo de processador tem um conjunto de instruções, arquitetura de cache e modelo de execução únicos. Adaptar algoritmos e otimizar o mecanismo de execução para corresponder a esses recursos distintos maximiza o desempenho e a eficiência.
Suportando escalabilidade vertical e horizontal
À medida que os volumes de dados continuam a crescer, a escalabilidade se torna uma preocupação crítica. Projetamos o sistema Milvus para enfrentar esse desafio por meio de escalabilidade vertical (scale up) e horizontal (scale out). Essa capacidade envolve o desenvolvimento de diversos algoritmos distribuídos para facilitar a escalabilidade horizontal e a adoção de estratégias robustas para consistência, sincronização, replicação e recuperação de dados em caso de falhas inesperadas do sistema.
Oferecendo uma experiência fluida para desenvolvedores, da prototipagem à produção
Oferecemos um conjunto de modos de implantação do Milvus para atender às necessidades únicas de diferentes estágios de desenvolvimento: Milvus Lite para prototipagem rápida, Milvus Standalone para aplicações de menor escala, Milvus Cluster para escalabilidade horizontal e Zilliz Cloud (o Milvus totalmente gerenciado) para facilidade de gerenciamento. Além de manter a posição de liderança de mercado em bancos de dados vetoriais de alto desempenho, estamos comprometidos em melhorar a experiência de desenvolvedores de IA que são novos em busca. Em breve, atualizaremos o Milvus Lite para um modo de implantação ainda mais amigável para iniciantes e fácil de usar.
A filosofia central é simples: implementar o código do lado do cliente uma vez e usá-lo em qualquer estágio do desenvolvimento da sua aplicação com instâncias Milvus personalizadas, desde a prototipagem em um notebook Jupyter até um serviço de produção que atende bilhões de documentos, onde quer que a busca vetorial seja necessária.
Para um guia detalhado sobre como escolher entre as quatro diferentes versões do Milvus, consulte este blog sobre com qual versão do Milvus começar.
Como Escolher o Banco de Dados Vetorial Certo para o Seu Negócio?
Ao considerar a mudança para um banco de dados vetorial, há dois aspectos principais a avaliar:
Primeiro, avalie se o desempenho da busca vetorial é crítico para o seu negócio. Por exemplo, se você está criando uma solução de Geração Aumentada por Recuperação (RAG) que atende milhões de usuários diariamente e é central para o seu negócio, o desempenho da computação vetorial se torna fundamental. Nesse caso, optar por um sistema de banco de dados vetorial puro é recomendado. Um banco de dados vetorial especializado como Zilliz Cloud não apenas garante desempenho consistente e ideal, mas também se alinha aos seus requisitos de SLA, proporcionando tranquilidade para serviços críticos nos quais o desempenho é inegociável.
Segundo, considere o crescimento projetado no volume de dados ao longo do tempo. À medida que seu serviço é executado por um período prolongado, o volume dos seus conjuntos de dados cresce, tornando a otimização de custos uma preocupação inevitável para sua tomada de decisão. A maioria dos sistemas de banco de dados vetoriais puros no mercado oferece desempenho superior enquanto requer menos recursos, tornando-os altamente econômicos. Nesse contexto, o Milvus se destaca, demonstrando mais de 100 vezes mais custo-benefício do que alternativas como PG Vector, OpenSearch e outras soluções de banco de dados web não nativas.
Além dos fatores acima, desempenho, escalabilidade e funcionalidade estão entre as principais métricas para avaliar um banco de dados vetorial. Para um guia mais detalhado sobre a avaliação de bancos de dados vetoriais, consulte este blog de benchmarking
Quando um Banco de Dados Vetorial Distribuído e em Larga Escala é Desnecessário?
Um banco de dados vetorial completo pode ser excessivo para desenvolvedores e organizações que trabalham em protótipos ou testam soluções RAG. Eles poderiam se contentar com um banco de dados vetorial leve, executado localmente. Para oferecer aos usuários uma experiência mais otimizada, o Milvus terá maior suporte para implantação local, adaptado para uma configuração mais rápida durante os estágios iniciais de desenvolvimento.
Nosso compromisso se estende a proporcionar uma experiência unificada para desenvolvedores, independentemente da escala ou complexidade de seus projetos. Seja você alguém testando a pilha de IA em seu laptop ou procurando uma solução de busca vetorial escalável e pronta para produção, o Milvus garante uma jornada tranquila. À medida que você avança do protótipo para a produção, pode migrar facilmente para a implantação com Docker e Kubernetes para obter desempenho superior e personalização com sua arquitetura distribuída, além de se beneficiar das interfaces consistentes de SDK e API. No caminho bem iluminado, você só precisa escrever seu programa uma vez, e ele pode ser executado perfeitamente em vários ambientes, de laptops a data centers e nuvens públicas. Nosso objetivo é capacitar desenvolvedores em todas as etapas, oferecendo flexibilidade sem comprometer a experiência do usuário.
Qual é o Futuro dos Bancos de Dados Vetoriais?
Temos observado uma expansão nas funcionalidades oferecidas pelos sistemas de bancos de dados vetoriais. Nos últimos anos, esses sistemas se concentravam principalmente em oferecer uma única funcionalidade: busca aproximada de vizinhos mais próximos (busca ANN). No entanto, o cenário está evoluindo e, nos próximos dois anos, veremos uma gama mais ampla de funcionalidades.
Tradicionalmente, os bancos de dados vetoriais ofereciam suporte à busca baseada em similaridade. Agora, eles estão ampliando suas capacidades para incluir busca exata ou correspondência. Essa versatilidade permite que você analise seus dados por meio de duas lentes: uma busca por similaridade para uma compreensão mais ampla e uma busca exata para nuances. Ao combinar essas duas abordagens, os usuários podem ajustar o equilíbrio entre obter uma visão geral de alto nível e se aprofundar em detalhes específicos.
Obter um esboço dos dados pode ser suficiente em certas situações, e uma busca baseada em semântica funciona bem. No entanto, em situações em que pequenas diferenças importam, os usuários podem ampliar os dados e examinar cada entrada em busca de características sutis.
Os bancos de dados vetoriais provavelmente oferecerão suporte a cargas de trabalho adicionais de computação vetorial, como agrupamento e classificação vetorial. Essas funcionalidades não são apenas recursos adicionais, mas são particularmente relevantes e impactantes em aplicações como detecção de fraudes e detecção de anomalias. Aqui, técnicas de aprendizado não supervisionado podem ser aplicadas para agrupar ou classificar embeddings vetoriais, identificando padrões comuns e potencialmente prevenindo perdas significativas.
Na próxima parte da série do blog, compartilharei minhas percepções sobre a evolução das tecnologias de IA e como elas influenciam o futuro dos bancos de dados vetoriais. Fique ligado!
Continue lendo

Introducing Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud
We're announcing the general availability of Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud.

The Great AI Agent Protocol Race: Function Calling vs. MCP vs. A2A
Compare Function Calling, MCP, and A2A protocols for AI agents. Learn which standard best fits your development needs and future-proof your applications.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.



