Ir para o conteúdo principal

Banco de dados vetorial

O que é um banco de dados vetorial?

Um banco de dados vetorial é um banco de dados especializado projetado para armazenar e gerenciar dados como vetores de alta dimensionalidade. O termo tem sua origem em vetores, que são representações matemáticas de recursos ou atributos contidos nos dados. Em contraste com 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 informações como representações vetoriais com um número fixo de dimensões agrupadas de acordo com sua similaridade.

Cada vetor em um banco de dados vetorial consiste em um número específico de dimensões, podendo variar de apenas algumas dezenas a vários milhares. O número de dimensões depende da complexidade e da granularidade dos dados. Essa estrutura permite que bancos de dados vetoriais processem informações complexas e multifacetadas de forma eficiente e realizem buscas e análises rápidas baseadas em similaridade.

Continue explorando

Em que situação eu deveria usar um banco de dados vetorial?

Segundo a International Data Corporation (IDC), 80% dos novos dados criados mundialmente até 2025 serão dados não estruturados, como texto, imagens e vídeos. Modelos baseados em aprendizado, como redes neurais, são cada vez mais utilizados para gerenciar esses dados não estruturados em aplicações em diversas indústrias, desde o comércio eletrônico até a saúde. Essas aplicações transformam os dados não estruturados em embeddings vetoriais. Uma vez que os dados tenham sido "vetorizados", tarefas como buscas, recomendações e análises podem ser implementadas por meio de um Vector Search baseado 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 representam um componente crucial para o funcionamento de muitos sistemas de IA, e algumas (mas não todas) aplicações de grandes modelos de linguagem (LLM) usam bancos de dados vetoriais para pesquisas rápidas de similaridade ou para fornecer contexto ou conhecimento de domínio. Por exemplo, eles desempenham um papel fundamental na geração aumentada de recuperação (RAG), uma abordagem em que o banco de dados vetorial é usado para aprimorar o prompt passado para o LLM, incluindo contexto adicional junto à query.

As bancos de dados vetoriais também possibilitam uma pesquisa híbrida. Esta abordagem combina a busca tradicional baseada em palavras-chave com a busca por similaridade semântica para encontrar informações relevantes, mesmo quando as palavras-chave não correspondem exatamente. Bancos de dados vetoriais também podem ser usados em diversas tarefas de processamento de linguagem natural (PLN), incluindo a análise semântica e de sentimentos, ou no treinamento de modelos de machine learning (ML).

O que é um vetor?

Um vetor é uma matriz numérica de alta dimensão que expressa a posição de um ponto específico em várias dimensões. Imagine um espaço vetorial de palavras como uma nuvem tridimensional onde as palavras são representadas como pontos. Neste espaço, palavras com significados relacionados se agrupam. Por exemplo, o ponto que representa “maçã” estaria mais próximo do ponto que representa “pera” do que o de “carro”. Esse arranjo espacial reflete as relações semânticas entre palavras, onde a proximidade indica similaridade de significado.

O que é embedding de vetor?

Um vetor é gerado ao aplicar uma função de embedding aos dados brutos para transformá-lo em uma representação. Essas representações são chamadas de "embeddings" porque um modelo de ML incorpora, ou faz um embedding, de um agrupamento representativo em um espaço vetorial. Os vetores são incorporados como listas de números, o que facilita para os modelos de ML realizarem operações com os dados. Na verdade, o desempenho dos métodos de ML depende integralmente da qualidade das representações vetoriais. Um parágrafo inteiro de texto ou um conjunto de números pode ser transformado em um vetor, permitindo que o modelo execute operações com eficiência.

Como funcionam os bancos de dados vetoriais?

Os bancos de dados vetoriais são projetados para armazenar, indexar e fazer queries de dados com eficiência por meio de embeddings vetoriais de alta dimensão. Assim que um usuário insere uma query ou solicitação no banco de dados vetorial, é iniciada a seguinte sequência de processos:

  1. Vetorização: esta primeira etapa envolve a geração de embeddings a partir de conteúdo multimodal, que pode incluir texto, imagens, áudio ou vídeo. Este processo captura as relações semânticas nos dados. Por exemplo, em dados de texto, esse processo garante que palavras com significados semelhantes (ou vetores) sejam colocadas próximas umas das outras no espaço vetorial.
  2. Indexação vetorial: a próxima etapa distingue os bancos de dados vetoriais dos bancos de dados tradicionais. Algoritmos de ML, como a quantização de produtos ou o Hierarchical Navigable Small World (HNSW), são aplicados aos dados para mapear os vetores em novas estruturas de dados. Essas estruturas possibilitam buscas mais rápidas por similaridade ou distância, como buscas de pontos mais próximos entre os vetores. O processo de indexação é fundamental para o desempenho do banco de dados, pois possibilita recuperar vetores semelhantes rapidamente.
  3. Execução da query: na etapa final, o vetor de query inicial é comparado com os vetores indexados no banco de dados. O sistema recupera os vetores com as relações mais fortes, encontrando as informações mais relevantes com base na similaridade semântica, em vez de correspondências exatas de palavras-chave.

Esses processos permitem que 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 imagens e vídeos, análise de texto e detecção de anomalias.

Vantagens dos bancos de dados vetoriais

Os bancos de dados vetoriais oferecem uma gama de benefícios:

  • Alta velocidade e desempenho: bancos de dados vetoriais podem rapidamente encontrar dados semelhantes usando métricas de distância ou similaridade vetorial, um processo que é parte integrante dos sistemas de PNL, visão computacional e recomendação. Ao contrário dos bancos de dados tradicionais, que são limitados a correspondências exatas ou critérios predefinidos, os bancos de dados vetoriais capturam o significado semântico e contextual. Isso otimiza a recuperação de dados ao permitir o desempenho de pesquisas mais sofisticadas e sensíveis ao contexto, além da simples correspondência de palavras-chave.
  • Escalabilidade: embora os bancos de dados tradicionais possam ter dificuldades com gargalos de escalabilidade, problemas de latência ou conflitos de concorrência ao trabalhar com big data, os bancos de dados vetoriais são projetados para gerenciar grandes volumes de dados. Os bancos de dados vetoriais melhoram a escalabilidade ao utilizar técnicas como fragmentação, particionamento, cache e replicação para distribuir a carga de trabalho e otimizar a utilização de recursos em várias máquinas ou clusters.
  • Versatilidade: seja contendo imagens, vídeos ou outros dados multimodais, os bancos de dados vetoriais são projetados para serem versáteis. Dada a sua capacidade de lidar com diversos casos de uso, que vão desde a busca semântica até aplicações de IA conversacional, os bancos de dados vetoriais podem ser personalizados para atender a uma variedade de requisitos empresariais. 
  • Custo-benefício: bancos de dados vetoriais oferecem custos reduzidos devido ao seu manuseio eficiente de dados de alta dimensão. Diferente de fazer query direta de modelos de ML, que pode exigir muito poder computacional e tempo, os bancos de dados vetoriais utilizam embeddings de modelos para processar o dataset com mais eficiência. 
  • Integração com ML: os bancos de dados vetoriais ajudam os modelos de ML a recuperar entradas anteriores, permitindo que o ML impulsione mecanismos de busca semântica, classificações e motores de recomendação. Os dados podem ser identificados com base em métricas de similaridade em vez de correspondências exatas, permitindo que um modelo entenda o contexto dos dados.

Cinco casos de uso de bancos de dados vetoriais

Bancos de dados vetoriais são usados em diversas indústrias em uma variedade de aplicações e casos de uso. Veja alguns dos exemplos de banco de dados vetoriais mais comuns:

Grandes modelos de linguagem (LLMs)

A ascensão dos LLMs para tarefas como a recuperação de informações, juntamente com a crescente popularidade das plataformas de comércio eletrônico e recomendação, exige sistemas de gerenciamento de banco de dados vetoriais que possam oferecer capacidades de otimização de query 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 query de texto, o sistema utiliza tanto o LLM quanto o banco de dados vetorial: o LLM oferece capacidades de PLN, enquanto os algoritmos do banco de dados vetorial realizam buscas aproximadas de pontos mais próximos. Esta abordagem pode gerar melhores resultados em comparação com o uso de cada componente isoladamente.

Bancos de dados vetoriais estão sendo cada vez mais aplicados a LLMs por meio da RAG, o que permite uma maior capacidade de explicação ao aplicar contexto às saídas dos LLMs. Prompts de usuários podem ser aprimorados por meio da inclusão de contexto para reduzir os desafios centrais do LLM, como alucinação ou viés.

Reconhecimento de imagem

Os bancos de dados vetoriais podem desempenhar um papel fundamental no reconhecimento de imagens, 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 a detecção de objetos, reconhecimento facial e busca de imagens.

Os bancos de dados vetoriais são otimizados para a rápida recuperação de contexto através da similaridade. Plataformas de comércio eletrônico podem usar bancos de dados vetoriais para localizar produtos com atributos visuais semelhantes, enquanto sites de redes sociais podem sugerir imagens relacionadas para os usuários. Um exemplo ilustrativo é o Pinterest, onde bancos de dados vetoriais impulsionam a descoberta de conteúdo ao representar cada imagem como um vetor de alta dimensão. Quando um usuário fixa uma imagem de um pôr do sol no litoral, o sistema pode rapidamente buscar em seu banco de dados vetorial para sugerir imagens visualmente semelhantes, como outras paisagens de praia ou pores do sol.

Processamento de linguagem natural (PNL)

Os bancos de dados vetoriais revolucionaram o PLN, possibilitando o armazenamento e a recuperação eficientes de representações de palavras distribuídas. Modelos como Word2Vec, GloVe e BERT são treinados em enormes datasets 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 permitir buscas rápidas de similaridade, os bancos de dados vetoriais possibilitam que os modelos encontrem palavras ou frases relevantes no contexto. Essa capacidade é especialmente valiosa para tarefas como a busca semântica, respostas a perguntas, classificações de texto e extrações de entidades nomeadas. Além disso, bancos de dados vetoriais podem armazenar embeddings em nível de frase, capturando o contexto das palavras e permitindo uma compreensão mais sutil da linguagem.

Sistemas de recomendação e personalização

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 solicitar a um LLM uma recomendação de série de TV, e o banco de dados vetorial pode sugerir séries de TV com enredos ou avaliações que correspondam às preferências do usuário. Serão recomendadas as séries de TV cujos embeddings estejam mais próximos da codificação do usuário.

detecção de fraude

As instituições financeiras utilizam bancos de dados vetoriais para identificar transações fraudulentas. Bancos de dados vetoriais permitem que empresas comparem vetores de transações com padrões de fraude conhecidos em tempo real. A escalabilidade dos bancos de dados vetoriais também lhes permite gerenciar riscos e obter novas percepções sobre o comportamento do consumidor. Esses bancos de dados podem identificar padrões que indicam atividades ao codificar dados de transações como vetores. Além disso, eles facilitam a avaliação da solvência e a segmentação de consumidores por meio da análise de dados para melhorar o processo de tomada de decisão.

Desafios comuns dos bancos de dados vetoriais

Apesar de seus muitos benefícios e casos de uso, os bancos de dados vetoriais também apresentam alguns desafios e dificuldades.

  • Novos pipelines de dados

Bancos de dados vetoriais requerem pipelines de ingestão de dados eficientes, onde dados brutos e não processados de várias fontes podem ser limpos, processados e incorporados a um modelo de ML antes de serem armazenados como vetores no banco de dados.

O Vector Search da Databricks oferece uma solução completa para resolver esse desafio. Ele automatiza a geração, o gerenciamento e a otimização de vetores, administrando a sincronização em tempo real dos dados da fonte com os índices vetoriais correspondentes. O software gerencia falhas, otimiza o throughput e faz o ajuste automático do tamanho do lote e o dimensionamento automático sem a necessidade de intervenção manual.

Essa abordagem reduz a necessidade de pipelines de ingestão de dados separados, reduzindo a sobrecarga de trabalho para o desenvolvedor e permitindo que as equipes foquem em tarefas que agregam valor direto à empresa, em vez de gastar tempo construindo e mantendo processos complexos de preparação de dados.

  • Mais segurança e governança

Os bancos de dados vetoriais requerem uma segurança adicional, controles de acesso e governança de dados, juntamente com a manutenção e o gerenciamento necessários. As organizações exigem controles rigorosos de segurança e de acesso aos dados para impedir que os usuários acessem modelos GenAI vinculados a dados confidenciais.

Muitos bancos de dados vetoriais existentes ou não possuem controles robustos de segurança e acesso, ou exigem que as organizações desenvolvam e mantenham um conjunto separado de políticas de segurança. O Vector Search da Databricks oferece uma interface unificada que estabelece políticas de dados para rastrear automaticamente a linhagem de dados sem precisar de ferramentas adicionais. Isso garante que os LLMs não exponham dados confidenciais a usuários que não deveriam ter acesso.

  • Alto nível de conhecimento técnico

Por oferecerem capacidades poderosas para buscas de similaridade e manipulação de dados de alta dimensão, os bancos de dados vetoriais são ferramentas essenciais para cientista de dados que trabalham com modelos de IA e ML. O Vector Search da Databricks se destaca como um banco de dados vetorial serverless que elimina a necessidade da configuração manual, permitindo que os cientistas de dados foquem no que realmente importa em vez de gerenciar a infraestrutura.

As principais vantagens do Vector Search da Databricks incluem a integração perfeita com a arquitetura lakehouse, ingestão de dados automatizada e resultados até cinco vezes mais rápidos em comparação com outros bancos de dados vetoriais. Também é compatível com as ferramentas existentes de governança e segurança de dados por meio do Unity Catalog, garantindo a proteção e a conformidade dos dados.

O Vector Search da Databricks oferece flexibilidade tanto para usuários iniciantes quanto para avançados, com escalabilidade automatizada para a ingestão e a query de dados, além de APIs plug-and-replace para quem prefere ter 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 especialização.

Bancos de dados vetoriais x bancos de dados gráfico

Os bancos de dados vetoriais organizam dados como pontos em um espaço vetorial multidimensional. Cada ponto representa uma unidade de dado, e a localização reflete suas características em relação a outras unidades de dados. Essa estrutura de banco de dados vetorial é adequada para muitos aplicativos GenAI, pois as embeddings vetoriais são geradas por LLMs e os dados podem ser facilmente pesquisados e recuperados.

Por outro lado, os bancos de dados gráficos organizam os dados armazenando-os em uma estrutura de gráfico. Entidades são representadas por nós em um gráfico, enquanto as conexões entre esses pontos de dados são representadas por arestas. A estrutura de gráfico permite que os itens de dados no armazenamento sejam uma coleção de nós e arestas, onde as arestas representam as relações entre os nós. A estrutura interconectada dos bancos de dados de gráfico os torna adequados para situações em que as conexões entre os pontos de dados são tão importantes quanto os próprios dados.

Qual é a diferença entre um índice vetorial e um banco de dados vetorial?

Um índice vetorial e um banco de dados vetorial desempenham papéis distintos, mas complementares, no manuseio de dados de alta dimensão.

  • Índice vetorial: um índice vetorial é uma estrutura de dados especializada projetada para facilitar buscas rápidas de similaridade entre embeddings vetoriais. Ele melhora significativamente a velocidade de busca ao organizar vetores de uma maneira que permite uma recuperação eficiente. Exemplos de índices vetoriais incluem Facebook AI Similarity Search (FAISS), HNSW e hashing sensível à localidade (LSH). Esses índices podem ser utilizados como processos algorítmicos independentes ou integrados em sistemas maiores para otimizar operações de busca. 
  • Banco de dados vetorial: por outro lado, um banco de dados vetorial é uma solução abrangente de gestão de dados que não apenas incorpora indexação vetorial, mas também fornece funcionalidades adicionais, como armazenamento de dados; operações de criação, leitura, atualização e exclusão (CRUD); filtragem de metadados e escalabilidade horizontal. Ele foi projetado para gerenciar e fazer query de embeddings de vetores de forma eficiente, apoiando operações complexas e garantindo a segurança e a integridade dos dados.

Tendências futuras para bases de dados vetoriais

O recente aumento dos LLMs e dos aplicativos de GenAI contribuiu para uma adoção concomitante dos bancos de dados vetoriais. À medida que as aplicações de IA continuam amadurecendo, o desenvolvimento de novos produtos e as mudanças nas necessidades dos usuários determinarão a direção das tendências futuras dos bancos de dados vetoriais — no entanto, há algumas direções esperadas para essa tecnologia.

  • Maior integração com modelos de ML: existem cada vez mais pesquisas sobre a relação entre bancos de dados vetoriais e modelos de ML. Esses esforços têm como objetivo reduzir o tamanho e a dimensionalidade dos vetores, minimizando as necessidades de armazenamento para grandes datasets e aumentando a eficiência computacional.
  • Personalização da RAG: RAG é uma abordagem utilizada para aprimorar o contexto fornecido a um LLM em casos de uso de GenAI, incluindo chatbots e aplicações gerais de perguntas e respostas. O banco de dados vetorial é utilizado para melhorar o prompt passado ao LLM, adicionando contexto adicional junto à query.
  • Pesquisa multivetorial: pesquisas futuras são esperadas para melhorar as capacidades da pesquisa multivetorial, essencial para aplicações como o reconhecimento facial. As técnicas atuais frequentemente dependem da combinação de pontuações individuais, mas essa abordagem pode ser computacionalmente dispendiosa, pois aumenta o número de cálculos de distância necessários. 
  • Pesquisa híbrida: a evolução dos sistemas de busca resultou em 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.

Como criar um banco de dados vetorial com Databricks

O Mosaic AI Vector Search da Databricks é a solução de banco de dados vetorial integrada da empresa para a plataforma de inteligência de dados. Esse 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 uma proteção consistente em todos os ativos de dados. 

O Vector Search da Databricks oferece uma experiência de alto desempenho pronta para uso, permitindo que os LLMs recuperem rapidamente resultados relevantes e com latência mínima. Os usuários se beneficiam do escalonamento e otimização automáticos, eliminando a necessidade de ajuste manual do banco de dados. A integração simplifica o processo de armazenamento, gerenciamento e consulta de embeddings de vetores, ajudando as organizações a implementar aplicações de IA, como sistemas de recomendações e buscas semânticas, enquanto mantém as normas de segurança e governança de dados.

Onde posso encontrar mais informações sobre bancos de dados vetoriais e busca vetorial?

Há muitos recursos disponíveis para encontrar mais informações sobre bancos de dados de vetores e busca vetorial, incluindo:

Blogs

e-books

Demos

Entre em contato com a Databricks para agendar uma demonstração e conversar sobre seus projetos de LLM e bancos de dados de vetores.

    Voltar ao glossário