Um banco de dados vetorial é um banco de dados especializado projetado para armazenar e gerenciar dados como vetores de alta dimensão. O termo vem de vetores, que são representações matemáticas de características ou atributos contidos nos dados. Em contraste com os bancos de dados tradicionais, que são adequados para lidar com dados estruturados organizados em linhas e colunas, a estrutura do banco de dados vetorial organiza as informações como representações vetoriais com um número fixo de dimensões agrupadas de acordo com sua similaridade.
Cada vetor dentro de um banco de dados vetorial consiste em um número específico de dimensões, que pode variar de algumas dezenas a vários milhares. O número de dimensões depende da complexidade e granularidade dos dados. Essa estrutura permite que os bancos de dados vetoriais lidem eficientemente com informações complexas e multifacetadas e realizem buscas e análises rápidas baseadas em similaridade.
De acordo com a International Data Corporation (IDC), 90% dos novos dados criados são dados não estruturados, como texto, imagens e vídeo. Modelos baseados em aprendizado, como redes neurais profundas, são cada vez mais usados para gerenciar esses dados não estruturados em aplicações em diversos setores, do e-commerce à saúde. Essas aplicações funcionam transformando os dados não estruturados em vetores de embedding. Uma vez que os dados são “vetorizados”, tarefas como buscas, recomendações e análises podem ser implementadas por meio de busca de IA baseada em similaridade. O gerenciamento de dados vetoriais ocorre em bancos de dados vetoriais.
Saber quando usar bancos de dados vetoriais depende dos outros processos e tecnologias que você está utilizando. Eles são um componente chave para alimentar muitos sistemas de IA, e algumas (mas não todas) aplicações de modelos de linguagem grandes (LLM) usam bancos de dados vetoriais para buscas rápidas de similaridade ou para fornecer contexto ou conhecimento de domínio. Por exemplo, eles desempenham um papel crucial na geração aumentada por recuperação (RAG), uma abordagem onde o banco de dados vetorial é usado para aprimorar o prompt passado ao LLM adicionando contexto adicional junto com a consulta.
Bancos de dados vetoriais também permitem a busca h íbrida. Essa abordagem combina a busca tradicional baseada em palavras-chave com a busca por similaridade semântica para localizar informações relevantes mesmo quando as palavras-chave não são uma correspondência exata. Bancos de dados vetoriais também podem ser usados para diversas tarefas de processamento de linguagem natural (NLP), incluindo análise semântica e de sentimento, ou no treinamento de modelos de machine learning (ML).
Um vetor é um array numérico de alta dimensão que expressa a localização de um ponto particular em várias dimensões. Imagine um espaço vetorial de palavras como uma nuvem tridimensional onde as palavras são representadas como pontos. Nesse espaço, palavras com significados relacionados se agrupam. Por exemplo, o ponto que representa “maçã” estaria posicionado mais perto de “pera” do que de “carro”. Essa organização espacial reflete as relações semânticas entre as palavras, com a proximidade indicando similaridade de significado.
Um vetor é gerado aplicando uma função de embedding aos dados brutos para transformá-los em uma representação. Essas representações são chamadas de “embeddings” porque um modelo de ML pega um agrupamento representativo e o incorpora em um espaço vetorial. Os vetores são incorporados como listas de números, facilitando para os modelos de ML realizarem operações com os dados. Na verdade, o desempenho dos métodos de ML depende criticamente da qualidade das representações vetoriais. Um parágrafo inteiro de texto ou um grupo de números pode ser reduzido a um vetor, permitindo que o modelo realize operações eficientemente.
Bancos de dados vetoriais são projetados para armazenar, indexar e consultar dados de forma eficiente por meio de embeddings vetoriais de alta dimensão. Uma vez que um usuário insere uma consulta ou solicitação no banco de dados vetorial, ele inicia a seguinte sequência de processos:
Esses processos permitem que os bancos de dados vetoriais realizem buscas semânticas e recuperações baseadas em similaridade, tornando-os ideais para aplicações como sistemas de recomendação, reconhecimento de imagem e vídeo, análise de texto e detecção de anomalias.
Bancos de dados vetoriais oferecem uma gama de benefícios:
Bancos de dados vetoriais são usados em diversas indústrias para uma ampla gama de aplicações e casos de uso. Aqui estão alguns dos exemplos mais comuns de bancos de dados vetoriais:
O surgimento de LLMs para tarefas como recuperação de informações, juntamente com a crescente popularidade de plataformas de e-commerce e recomendação, exige sistemas de gerenciamento de banco de dados vetorial que possam oferecer recursos de otimização de consulta para dados não estruturados.
Em aplicações multimodais, os dados são incorporados e armazenados em bancos de dados vetoriais, facilitando a recuperação eficiente de representações vetoriais. Quando um usuário envia uma consulta de texto, o sistema usa tanto o LLM quanto o banco de dados vetorial. O LLM fornece recursos de NLP, enquanto os algoritmos do banco de dados vetorial realizam buscas ANN. Essa abordagem pode produzir resultados melhores em comparação com o uso de qualquer um dos componentes isoladamente.
Bancos de dados vetoriais estão sendo cada vez mais aplicados a LLMs através de RAG, o que permite maior explicabilidade ao aplicar contexto às saídas de LLM. Os prompts do usuário podem ser aumentados com a inclusão de contexto para mitigar desafios centrais de LLM, como alucinação ou viés.
Bancos de dados vetoriais podem desempenhar um papel fundamental no reconhecimento de imagem, armazenando embeddings de alta dimensão de imagens geradas por modelos de ML. Como os bancos de dados vetoriais são otimizados para tarefas de busca por similaridade, isso os torna ideais para aplicações como detecção de objetos, reconhecimento facial e busca de imagens.
Bancos de dados vetoriais são ajustados para a recuperação rápida de contexto através da similaridade. Plataformas de e-commerce podem usar bancos de dados vetoriais para encontrar produtos com atributos visuais semelhantes, enquanto sites de mídia social podem sugerir imagens relacionadas aos usuários. Um exemplo ilustrativo é o Pinterest, onde os bancos de dados vetoriais impulsionam a descoberta de conteúdo, representando cada imagem como um vetor de alta dimensão. Quando um usuário fixa uma imagem de um pôr do sol costeiro, o sistema pode rapidamente pesquisar seu banco de dados vetorial para sugerir imagens visualmente semelhantes, como outras paisagens de praia ou pores do sol.
Bancos de dados vetoriais revolucionaram o NLP, permitindo o armazenamento e a recuperação eficientes de representações de palavras distribuídas. Modelos como Word2Vec, GloVe e BERT são treinados em grandes conjuntos de dados de texto para gerar embeddings de palavras de alta dimensão que capturam relações semânticas, que são então armazenados em bancos de dados vetoriais para acesso rápido.
Ao possibilitar buscas rápidas por similaridade, os bancos de dados vetoriais permitem que os modelos encontrem palavras ou frases contextualmente relevantes. Essa capacidade é particularmente valiosa para tarefas como pesquisa semântica, resposta a perguntas, classificação de texto e extração de entidades nomeadas. Além disso, os bancos de dados vetoriais podem armazenar embeddings em nível de frase, capturando contextos de palavras e permitindo uma compreensão da linguagem mais matizada.
Uma vez que um banco de dados vetorial é treinado usando um modelo de embedding, ele pode ser utilizado para gerar recomendações personalizadas. Quando um usuário interage com o sistema, seu comportamento e preferências são usados para gerar o embedding do usuário. Por exemplo, um usuário pode pedir a um LLM uma recomendação de série de TV e o banco de dados vetorial pode sugerir séries de TV que tenham enredos ou classificações semelhantes às preferências do usuário. As séries de TV com embeddings mais próximos da codificação do usuário são então recomendadas de acordo.
Instituições financeiras usam bancos de dados vetoriais para detectar transações fraudulentas. Bancos de dados vetoriais permitem que as empresas comparem vetores de transação com padrões de fraude conhecidos em tempo real. A escalabilidade dos bancos de dados vetoriais também permite que eles gerenciem riscos e adquiram novos insights sobre o comportamento do consumidor. Esses bancos de dados podem identificar padrões que indicam atividades, codificando dados de transação como vetores. Além disso, eles facilitam a avaliação da credibilidade e a segmentação de consumidores, analisando dados para melhorar o processo de tomada de decisão.
Apesar de seus muitos benefícios e casos de uso, uma compreensão completa dos bancos de dados vetoriais precisa incluir seus desafios também.
Bancos de dados vetoriais exigem pipelines eficientes de ingestão de dados onde dados brutos e não processados de várias fontes podem ser limpos, processados e incorporados com um modelo de ML antes de serem armazenados como vetores no banco de dados.
O Databricks AI Search oferece uma solução abrangente para este desafio. Ele automatiza a geração, gerenciamento e otimização de vetores, lidando com a sincronização em tempo real dos dados de origem com os índices de vetor correspondentes. O software gerencia falhas, otimiza o throughput e realiza o ajuste automático do tamanho do lote e o autoescalonamento sem a necessidade de intervenção manual.
Essa abordagem reduz a necessidade de pipelines de ingestão de dados separados, minimizando o “trabalho pesado do desenvolvedor” e permitindo que as equipes se concentrem em tarefas de nível superior que agregam valor direto ao negócio, em vez de gastar tempo na construção e manutenção de processos complexos de preparação de dados.
Bancos de dados vetoriais exigem segurança adicional, controles de acesso e governança de dados, juntamente com a manutenção e o gerenciamento necessários. Organizações empresariais exigem segurança e controles de acesso rigorosos sobre os dados para que os usuários não possam acessar modelos GenAI que se conectam a dados confidenciais.
Muitos bancos de dados vetoriais atuais não possuem controles de segurança e acesso robustos ou exigem que as organizações construam e mantenham um conjunto separado de políticas de segurança. O Databricks AI Search fornece uma interface unificada que define políticas de dados para rastrear a linhagem de dados automaticamente, sem a necessidade de ferramentas adicionais. Isso garante que os LLMs não exponham dados confidenciais a usuários que não deveriam ter acesso.
Por oferecerem poderosas capacidades para buscas por similaridade e o tratamento de dados de alta dimensão, os bancos de dados vetoriais são ferramentas essenciais para cientistas de dados que trabalham com modelos de IA e ML. O Databricks AI Search se destaca como um banco de dados vetorial serverless que elimina a necessidade de configuração manual, permitindo que os cientistas de dados se concentrem no trabalho principal em vez de na gestão de infraestrutura.
As principais vantagens do Databricks AI Search incluem integração perfeita com a arquitetura lakehouse, ingestão automatizada de dados e resultados até cinco vezes mais rápidos em comparação com outros bancos de dados vetoriais populares. Ele também é compatível com ferramentas existentes de governança de dados e segurança através do Unity Catalog, garantindo proteção e conformidade dos dados.
O Databricks AI Search oferece flexibilidade para usuários iniciantes e avançados, com escalonamento automatizado para ingestão e consulta de dados, bem como APIs plug-and-replace para aqueles que preferem mais controle sobre seus pipelines. Essa combinação de facilidade de uso e desempenho poderoso simplifica a construção de um banco de dados vetorial para cientistas de dados em todos os níveis de experiência.
Bancos de dados vetoriais organizam os dados como pontos em um espaço vetorial multidimensional. Cada ponto representa uma parte dos dados, e a localização reflete suas características em relação a outras partes dos dados. Essa estrutura de banco de dados vetorial é bem adequada para muitas aplicações de GenAI, pois os embeddings de vetor são gerados por LLMs e os dados podem ser pesquisados e recuperados facilmente.
Por outro lado, os bancos de dados de grafos organizam os dados armazenando-os em uma estrutura de grafo. As entidades são representadas como nós em um grafo, enquanto as conexões entre esses pontos de dados são representadas como arestas. A estrutura de grafo permite que os itens de dados no armazenamento sejam uma coleção de nós e arestas, com as arestas representando os relacionamentos entre os nós. A estrutura interconectada dos bancos de dados de grafos os torna bem adequados para cenários onde as conexões entre os pontos de dados são tão importantes quanto os próprios dados.
Use esta tabela para comparar rapidamente como cada tipo de banco de dados armazena dados, lida com consultas e se adapta a diferentes cargas de trabalho.
| Banco de dados vetorial | Índice vetorial | SGBDR tradicional | BD de Grafo | |
|---|---|---|---|---|
| Modelo de dados | Streaming/contínuo (segundos a minutos) | Análise proativa, impulsionada por IA | Análise proativa, impulsionada por IA | Análise proativa, impulsionada por IA |
| Tipos de consulta | Analistas, executivos | Equipes de operações, aplicativos, sistemas automatizados | Equipes de operações, aplicativos, sistemas automatizados | Equipes de operações, aplicativos, sistemas automatizados |
| Latência típica | Exploração ad-hoc, relatórios agendados | Métricas predefinidas, alertas, gatilhos automatizados | Métricas predefinidas, alertas, gatilhos automatizados | Métricas predefinidas, alertas, gatilhos automatizados |
| Escala | Interpretação humana → decisão | Gatilhos automatizados, recomendações incorporadas | Gatilhos automatizados, recomendações incorporadas | Gatilhos automatizados, recomendações incorporadas |
| Filtragem | Data warehouse, pipelines ETL | Plataformas de streaming, processamento de eventos | Plataformas de streaming, processamento de eventos | Plataformas de streaming, processamento de eventos |
| Garantias transacionais | Consistência eventual típica | Nenhuma, camada de busca somente leitura | ACID completo | ACID (varia por ferramenta) |
| Governança / segurança | Em melhoria, varia por fornecedor | Mínima, depende do sistema host | RBAC maduro, logs de auditoria, criptografia | Moderada, varia por fornecedor |
| Ferramentas comuns | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
Um índice vetorial e um banco de dados vetorial desempenham papéis distintos, mas complementares, no tratamento de dados de alta dimensionalidade.
Índice vetorial: Um índice vetorial é uma estrutura de dados especializada projetada para facilitar buscas rápidas de similaridade entre embeddings vetoriais. Ele aumenta significativamente a velocidade de busca organizando os vetores de uma forma que permite a recuperação eficiente. Exemplos de índices vetoriais incluem Facebook AI Similarity Search (FAISS), HNSW e LSH. Esses índices podem ser usados como processos algorítmicos autônomos ou integrados em sistemas maiores para otimizar operações de busca.
Banco de dados vetorial: Um banco de dados vetorial é uma solução abrangente de gerenciamento de dados que não apenas incorpora a indexação vetorial, mas também oferece funcionalidades adicionais como armazenamento de dados; operações de criação, leitura, atualização e exclusão (CRUD); filtragem de metadados e escalonamento horizontal. Ele é projetado para gerenciar e consultar embeddings vetoriais de forma eficiente, suportando operações complexas e garantindo a integridade e segurança dos dados.
A escolha do banco de dados vetorial certo depende das suas demandas específicas de carga de trabalho, do tamanho esperado do crescimento dos seus dados e de quão bem o banco de dados se encaixa na sua pilha de tecnologia existente. Uma solução que funciona perfeitamente para um pequeno protótipo pode ter dificuldades sob tráfego em escala empresarial, enquanto uma plataforma rica em recursos pode ser excessivamente complexa para casos de uso mais simples. Mantenha esses critérios em mente para escolher um banco de dados vetorial que escale com suas necessidades e se integre bem com os sistemas existentes.
Esses dois termos são frequentemente usados de forma intercambiável, mas se referem a diferentes camadas do sistema.
Escopo: Um índice vetorial é uma única estrutura de dados — como HNSW ou IVF — otimizada para acelerar a busca de vizinhos mais próximos. Em contraste, um banco de dados vetorial é um sistema completo construído em torno de um ou mais desses índices, juntamente com capacidades de armazenamento e consulta.
Suporte CRUD: Índices vetoriais frequentemente têm suporte limitado ou ineficiente para atualizações e exclusões. Bancos de dados vetoriais fornecem operações robustas de criação, leitura, atualização e exclusão sobre a camada de índice.
Escalonamento: Um índice autônomo reside na memória e não gerencia distribuição ou replicação. Um banco de dados vetorial, no entanto, lida com escalonamento horizontal, sharding e persistência em toda a infraestrutura.
Autônomo vs. integrado: Índices vetoriais podem ser incorporados diretamente no código do aplicativo (por exemplo, FAISS). Bancos de dados vetoriais são serviços com APIs, controles de acesso e ferramentas de gerenciamento integradas.
Um banco de dados vetorial é uma escolha comum para pipelines RAG de produção, mas nem sempre é necessário. A resposta certa depende da sua escala e complexidade.
Para RAG de produção em escala, um banco de dados vetorial se torna valioso quando você precisa de armazenamento persistente, filtragem de metadados, controles de acesso e a capacidade de atualizar seu conjunto de dados ao longo do tempo
Ambientes multi-tenant ou regulamentados quase sempre justificam um banco de dados vetorial, pois exigem isolamento de tenant, registro de auditoria e controles de acesso granulares que índices autônomos não fornecem
Quando seu conjunto de dados é estático e pequeno, o custo de um banco de dados vetorial pode superar os benefícios — um índice leve carregado na inicialização pode lidar com a recuperação tão bem quanto
Para prototipagem, um índice em memória como FAISS ou um simples armazenamento baseado em arquivo é frequentemente suficiente e muito mais fácil de configurar do que um banco de dados vetorial completo
A busca híbrida combina dois sinais de recuperação fundamentalmente diferentes — correspondência de palavras-chave e similaridade semântica — em um único resultado de consulta.
Bancos de dados vetoriais adicionam uma sobrecarga operacional real, e há vários cenários em que essa complexidade simplesmente não se justifica.
O recente aumento de LLMs e aplicações GenAI, de forma mais geral, contribuiu para uma adoção concomitante de bancos de dados vetoriais. À medida que as aplicações de IA continuam a amadurecer, o desenvolvimento de novos produtos e as necessidades mutáveis dos usuários decidirão a direção das tendências futuras em bancos de dados vetoriais. No entanto, existem algumas direções geralmente esperadas para esta tecnologia.
Maior integração com modelos de ML: A relação entre bancos de dados vetoriais e modelos de ML é objeto de pesquisa crescente. Esses esforços visam reduzir o tamanho e a dimensionalidade dos vetores, minimizando os requisitos de armazenamento para grandes conjuntos de dados e aumentando a eficiência computacional.
Personalização RAG: RAG é uma abordagem usada para melhorar o contexto fornecido a um LLM em casos de uso de GenAI, incluindo aplicações de chatbot e perguntas e respostas gerais. O banco de dados vetorial é usado para aprimorar o prompt passado ao LLM, adicionando contexto extra junto à consulta.
Busca multi-vetorial: Espera-se mais pesquisas sobre a melhoria das capacidades de busca multi-vetorial, o que é importante para aplicações como reconhecimento facial. As técnicas atuais frequentemente dependem da combinação de pontuações individuais, mas essa abordagem pode ser computacionalmente cara, pois aumenta o número de cálculos de distância necessários.
Busca híbrida: A evolução dos sistemas de busca levou a uma crescente adoção de abordagens híbridas que combinam métodos tradicionais baseados em palavras-chave com técnicas modernas de recuperação vetorial
Databricks AI Search é a solução de banco de dados vetorial integrada da Databricks para a Data Intelligence Platform. Este sistema totalmente integrado elimina a necessidade de pipelines de ingestão de dados separados e aplica controles de segurança e mecanismos de governança de dados, garantindo proteção consistente em todos os ativos de dados.
Databricks AI Search oferece uma experiência de alto desempenho e pronta para uso, permitindo que LLMs recuperem rapidamente resultados relevantes com latência mínima. Os usuários se beneficiam de escalabilidade e otimização automáticas, eliminando a necessidade de ajuste manual do banco de dados. Essa integração simplifica o processo de armazenamento, gerenciamento e consulta de embeddings vetoriais, tornando mais fácil para as organizações implementarem aplicações de IA, como sistemas de recomendação e buscas semânticas, mantendo os padrões de segurança e governança de dados.
Onde posso encontrar mais informações sobre bancos de dados vetoriais e busca vetorial?
Existem muitos recursos disponíveis para encontrar mais informações sobre bancos de dados vetoriais e busca vetorial, incluindo:
Entre em contato com a Databricks para agendar uma demonstração e conversar com alguém sobre seus LLMs e bancos de dados vetoriais.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.