Base de dados vetorial: o que armazena e como pesquisa por similaridade
01

Definição numa frase

Sistema que almacena vectores y permite recuperar elementos próximos según una métrica de similitud.

02

O que é uma base de dados vetorial

Uma base de dados vetorial é um sistema que armazena vetores — listas de números que representam dados — e permite pesquisar os que estão mais próximos de um vetor de consulta, segundo uma métrica específica. O seu objetivo é facilitar pesquisas por similaridade em conjuntos de representações numéricas, por exemplo, para recuperar textos, produtos ou imagens relacionados com uma consulta.

A base de dados trabalha com os vetores que recebe. Normalmente, um modelo ou outro componente transforma o dado original numa representação numérica chamada embedding. A geração do embedding e a pesquisa posterior são operações diferentes: armazenar vetores não significa que a base de dados os tenha criado, compreendido o conteúdo ou confirmado que dois elementos são equivalentes.

Numa aplicação, o vetor costuma estar associado a um identificador e pode ser acompanhado de metadados, como uma categoria ou uma data, e de uma referência ao dado original. O conteúdo completo pode estar no mesmo sistema ou noutro. Os tipos de dados aceites, as funções disponíveis e a forma como são implementadas dependem de cada produto; «base de dados vetorial» não designa uma arquitetura única.

03

O que contém um registo e como é consultado

Um registo vetorial pode incluir um identificador, o vetor, metadados e uma referência ao objeto associado. Por exemplo, para um fragmento de documentação, poderia guardar-se o vetor juntamente com um identificador de documento, o idioma e a localização do fragmento. O texto original pode permanecer na base de dados ou ser recuperado a partir de outro sistema de armazenamento.

O percurso habitual tem várias etapas. A aplicação obtém o dado que pretende indexar e envia-o para um modelo de embeddings; recebe um vetor e armazena-o associado a um identificador. Quando chega uma consulta, o sistema gera — ou recebe de outro componente — um vetor de consulta compatível e pede os vizinhos mais próximos. Em seguida, a aplicação pode recuperar os dados originais, aplicar regras de negócio ou apresentar os resultados.

A compatibilidade entre os vetores armazenados e o vetor de consulta é importante. Se forem produzidos com modelos diferentes, configurações incompatíveis ou espaços de representação que não correspondem entre si, a comparação pode não ser útil. A base de dados não corrige automaticamente uma representação inadequada.

É útil distinguir este percurso do trabalho feito pelo modelo de embeddings. O modelo produz a representação; a base de dados armazena-a e pesquisa vetores segundo as funções disponíveis. A aplicação coordena essas etapas e decide o que fazer com os candidatos recuperados.

Do dado aos resultados

  1. 01Preparar o dado e gerar o seu embedding com um modelo adequado à tarefa.
  2. 02Guardar o vetor com um identificador e, se necessário, metadados ou uma referência ao original.
  3. 03Converter a consulta num vetor compatível e pesquisar os vizinhos segundo a métrica escolhida.
  4. 04Recuperar os dados associados e avaliar os resultados com regras e critérios próprios da aplicação.
04

Como se mede a proximidade

A pesquisa precisa de uma regra para comparar vetores. Entre as medidas habituais estão a similaridade do cosseno, o produto interno e a distância euclidiana. Não são termos intercambiáveis: calculam relações diferentes e os resultados podem ser ordenados ou interpretados de formas distintas.

A similaridade do cosseno compara a orientação dos vetores; a distância euclidiana mede a separação entre os respetivos pontos; o produto interno combina componentes e pode depender da magnitude dos vetores. A escolha não deve ser feita apenas por hábito. Deve corresponder ao modelo, à forma como os vetores foram gerados ou normalizados e ao objetivo da aplicação.

Convém verificar a configuração de ponta a ponta: que métrica a implementação disponibiliza, qual é usada no índice e como os resultados são ordenados ou apresentados. Um rótulo como «similaridade» não garante que dois produtos calculem o mesmo valor, nem que um valor elevado tenha a mesma interpretação em ambos.

Orientação para escolher uma medida

A tabela é conceptual e não substitui a documentação do modelo nem da implementação específica.

MedidaO que compara, em termos geraisO que verificar
Similaridade do cossenoA orientação relativa dos vetores.Se o modelo e a implementação estão configurados para esta medida e como os resultados são ordenados.
Produto internoA soma dos produtos entre componentes; a magnitude pode ter influência.Se a magnitude tem o comportamento esperado para os vetores gerados.
Distância euclidianaA separação geométrica entre os vetores.Se a distância e a sua ordenação correspondem ao objetivo e à configuração do sistema.
05

Pesquisa exata e pesquisa aproximada

Numa pesquisa exata, o sistema compara a consulta com todos os vetores do conjunto considerado e devolve os melhores resultados segundo a métrica. É uma referência clara para avaliar a qualidade, mas o trabalho pode aumentar à medida que a coleção cresce.

A pesquisa aproximada de vizinhos, normalmente abreviada como ANN, utiliza estruturas de índice para explorar uma parte do espaço em vez de comparar exaustivamente cada vetor. Pode reduzir o tempo de consulta, mas não garante que encontre sempre exatamente os mesmos vizinhos que uma pesquisa exaustiva. O grau de aproximação e o custo dependem do índice, dos seus parâmetros e da carga de trabalho.

HNSW é um exemplo de índice para pesquisa aproximada baseado em grafos hierárquicos. Não é um requisito para todas as bases de dados vetoriais nem a única forma de indexar. A documentação de sistemas específicos pode descrever índices e compromissos diferentes; por isso, o nome de um índice, por si só, não permite prever o desempenho de uma aplicação real.

Uma comparação útil consiste em executar consultas representativas com uma pesquisa exata e com o índice aproximado, observando em conjunto a qualidade da recuperação e a latência. Medir apenas a rapidez pode ocultar resultados que não foram recuperados. Medir apenas a correspondência com a pesquisa exata também não indica se o sistema responde às necessidades dos utilizadores.

Decisão inicial: exata ou aproximada

SituaçãoOpção a avaliarPrincipal compromisso
Coleção pequena ou necessidade de uma referência de qualidadePesquisa exataCompara todos os candidatos considerados; o custo pode aumentar com o tamanho do conjunto.
Coleção grande ou requisitos exigentes de latênciaÍndice ANN, como HNSW, se estiver disponível e for adequadoPode responder mais depressa, mas a recuperação pode diferir da pesquisa exata.
Requisitos ainda desconhecidosMedir as duas opções com dados e consultas representativosÉ necessário definir uma medida de qualidade e um objetivo de latência antes de decidir.
06

Filtros e pesquisa combinada

Os metadados descrevem aspetos do registo que não estão necessariamente codificados no vetor. Um filtro pode restringir a pesquisa a uma categoria, um idioma, uma data ou a elementos disponíveis. Assim, uma consulta por similaridade pode operar sobre um subconjunto relevante, se a implementação e a aplicação permitirem essa combinação.

Os filtros também podem alterar o comportamento prático de uma consulta. Por exemplo, se um filtro deixar poucos candidatos ou selecionar uma parte muito específica do índice, o sistema poderá precisar de uma estratégia diferente para recuperar resultados. Não se deve presumir que todos os produtos aplicam filtros no mesmo momento, com as mesmas garantias ou com o mesmo efeito sobre o índice.

Numa aplicação, a pesquisa vetorial pode ser combinada com pesquisa lexical, que encontra correspondências entre palavras, e com regras explícitas. Esta combinação pode ser útil quando tanto a semelhança conceptual como termos exatos, identificadores ou restrições são importantes. Não se deve pressupor que a pesquisa híbrida é uma capacidade universal: pode exigir funções específicas ou coordenação na própria aplicação.

07

Três exemplos de aplicação

Os casos seguintes descrevem utilizações possíveis, não resultados garantidos. Em todos eles, a pesquisa recupera candidatos a partir de representações; a interpretação e a validação dependem do sistema e do contexto de utilização.

O exemplo de comércio eletrónico também ilustra por que motivo os metadados e as regras da aplicação são importantes. Encontrar artigos próximos no espaço vetorial é apenas uma etapa da recuperação; disponibilidade, preço e categoria podem continuar a ser critérios independentes.

08

O que uma base de dados vetorial não faz

Uma base de dados vetorial não gera necessariamente os embeddings. Essa tarefa costuma ser realizada por um modelo ou componente separado, embora um produto específico possa oferecer integrações ou funções adicionais. É importante verificar onde, numa arquitetura concreta, ocorre a geração da representação.

Também não compreende automaticamente o significado dos dados. A pesquisa compara vetores segundo uma métrica; o sentido útil dessa comparação depende de como o modelo representa o conteúdo e de como a aplicação interpreta os resultados. Dois vetores próximos podem ser candidatos úteis, mas a proximidade não prova que os elementos sejam equivalentes ou relevantes para todos os fins.

Por si só, a base de dados não decide se um resultado é correto, seguro ou apropriado, nem redige uma resposta como faria um sistema generativo. Numa aplicação de geração aumentada por recuperação, ou RAG, a pesquisa de candidatos é uma parte possível do fluxo. O sistema continua a precisar de componentes e regras para preparar a consulta, selecionar o contexto e produzir ou avaliar uma resposta.

09

Conceitos que se confundem com frequência

Um embedding é uma representação numérica produzida por um modelo ou componente. Uma base de dados vetorial pode armazenar embeddings e permitir pesquisas sobre eles, mas não é o próprio embedding nem necessariamente o componente que o gera.

A pesquisa semântica é um objetivo ou comportamento de pesquisa: encontrar resultados relacionados com o sentido ou com a intenção de uma consulta, em vez de depender apenas de palavras coincidentes. Uma pesquisa vetorial pode contribuir para esse objetivo, mas a qualidade semântica depende da representação, da consulta e da avaliação do sistema.

Uma base de dados relacional organiza dados segundo um modelo relacional. Algumas bases de dados gerais podem oferecer suporte a vetores e pesquisa por similaridade. Por isso, uma base de dados vetorial não tem necessariamente de ser um sistema especializado separado. A escolha depende das funções necessárias e do comportamento medido para a carga de trabalho.

A expressão «armazém de vetores» pode ser usada para descrever um componente que conserva vetores e permite consultá-los, mas os limites exatos do termo dependem do contexto. A designação não determina, por si só, se o produto inclui metadados, filtragem, índices específicos ou outras funções.

RAG é um padrão de sistema que combina recuperação de informação com geração. Uma base de dados vetorial pode ser usada na etapa de recuperação, mas não é, por si só, um sistema RAG completo. Do mesmo modo, o chunking — a divisão de documentos em fragmentos — influencia aquilo que pode ser recuperado, mas não é uma função que todas as bases de dados vetoriais tenham de executar.

10

Limitações e critérios de avaliação

A qualidade da pesquisa depende da qualidade do modelo de representação e da adequação dos seus vetores à tarefa. Um índice eficiente não corrige automaticamente embeddings que não distinguem as características relevantes. A métrica também importa: uma configuração inadequada pode ordenar os candidatos de uma forma pouco útil.

A pesquisa aproximada introduz um compromisso entre recuperação e latência. O sistema pode responder mais depressa sem devolver exatamente os vizinhos da pesquisa exaustiva. A proporção de consultas afetadas e a importância dos resultados em falta devem ser avaliadas com consultas reais ou representativas, não presumidas a partir do nome do índice.

Filtros muito seletivos podem alterar o conjunto de candidatos e a forma como a pesquisa funciona. Atualizações dos dados, custo de memória, permissões de acesso e privacidade também fazem parte das decisões de implementação. Por exemplo, uma aplicação precisa de considerar que registos diferentes podem estar sujeitos a restrições de acesso diferentes; a pesquisa por similaridade não substitui a verificação dessas permissões.

Não existe um limite universal de tamanho ou desempenho que determine quando é necessário um sistema especializado. Uma base de dados geral com suporte vetorial pode ser suficiente para certos requisitos; noutros casos, as funções ou o comportamento de um produto especializado podem ser necessários. A decisão deve ser baseada em medições, restrições operacionais e necessidades da aplicação.

A avaliação deve considerar mais do que a proximidade calculada. Convém observar se os resultados são úteis para consultas reais, se os filtros respeitam as restrições esperadas e se a latência e o custo são aceitáveis. Quando importam correspondências exatas, como termos ou identificadores, pode fazer sentido avaliar em conjunto a pesquisa lexical e a vetorial.

Lista de verificação antes de escolher

  1. 01Identificar que componente gera os embeddings e verificar se consulta e dados indexados usam representações compatíveis.
  2. 02Confirmar quais métricas, índices e opções de filtragem a implementação concreta suporta.
  3. 03Comparar a pesquisa exata e a aproximada com consultas representativas, medindo qualidade de recuperação e latência.
  4. 04Verificar o comportamento esperado para filtros, atualizações, permissões, privacidade e custo de memória.
  5. 05Avaliar se a pesquisa lexical ou regras da aplicação são necessárias em conjunto com a pesquisa vetorial.
  6. 06Decidir com base nos requisitos e nas medições, sem presumir que é obrigatório usar uma base de dados especializada.
11

Conceitos relacionados

O conceito de embedding explica como um modelo transforma dados numa representação numérica que pode ser comparada. A pesquisa semântica descreve uma finalidade mais ampla: recuperar informação relacionada com o significado ou com a intenção da consulta.

O RAG combina recuperação e geração; a base de dados vetorial pode participar na recuperação, sem substituir os restantes componentes. O chunking aborda a divisão de documentos em fragmentos que podem ser representados e recuperados separadamente. A quantização pode fazer parte de certas estratégias para representar ou armazenar vetores com diferentes compromissos. A inferência refere-se à execução de um modelo para produzir uma saída, como um embedding.

Estes conceitos relacionam-se, mas não são sinónimos. Manter as distinções ajuda a identificar que parte do sistema produz as representações, qual parte pesquisa os candidatos e quais componentes aplicam regras ou apresentam uma resposta.

12

Resumo

Uma base de dados vetorial armazena vetores e pesquisa vizinhos segundo uma métrica. Os registos podem associar esses vetores a identificadores, metadados e referências ao dado original, mas as funções concretas dependem do sistema. A geração de embeddings costuma ser uma tarefa separada.

A pesquisa exata compara todos os candidatos considerados. A pesquisa ANN usa índices, como HNSW em implementações que o disponibilizam, para explorar o espaço de forma aproximada e pode trocar alguma precisão de recuperação por rapidez. Métricas, filtros e combinação com pesquisa lexical devem ser avaliados na implementação concreta.

Em comércio eletrónico, biomedicina ou recuperação de imagens e áudio, a proximidade vetorial pode ajudar a encontrar candidatos. Não garante relevância, equivalência ou verdade. Uma base de dados geral com suporte vetorial pode bastar; a escolha depende dos requisitos, dos dados e de testes com consultas representativas.

13

Exemplos rápidos

14

Conceitos relacionados

15

Fontes consultadas