O que é um banco de dados de vetores?

Um banco de dados vetorial é qualquer banco de dados que permite armazenar, indexar e consultar embeddings vetoriais ou representações numéricas de dados não estruturados, como texto, imagens ou áudio.

O que são embeddings vetoriais?

Embeddings vetoriais são representações úteis de dados não estruturados porque mapeiam o conteúdo de modo que a similaridade semântica seja representada pela distância em um espaço vetorial n-dimensional. Isso facilita a busca por semelhança, a localização de conteúdo relevante em uma base de conhecimento ou a recuperação de um item que melhor corresponda a uma consulta complexa gerada pelo usuário. 

Enquanto alguns bancos de dados especializados só aceitam embeddings vetoriais, outros aceitam muitos outros tipos de dados e consulta, além de embeddings vetoriais. O suporte a uma ampla variedade de tipos de dados e consultas é fundamental para criar aplicativos de IA generativa baseados em dados avançados e reais. À medida que os benefícios da consulta semântica usando embeddings de vetores se tornarem claros, a maioria dos bancos de dados adicionará suporte a vetores. No futuro, acreditamos que todo banco de dados será um banco de dados de vetores.

Saiba como a pesquisa de vetor da Vertex AI auxilia na criação de aplicativos de IA generativa de alto desempenho. A pesquisa de vetor da Vertex AI é baseada na Pesquisa de Vizinho Mais Próximo Escalonável (ScaNN, na sigla em inglês), uma tecnologia de pesquisa de vetor escalonável e eficiente desenvolvida pela Google Research, o que a torna ideal para lidar com grandes conjuntos de dados e requisitos de pesquisa em tempo real. Saiba mais sobre pesquisa de vetor e embeddings neste vídeo e comece com este guia de início rápido.

Como funciona um banco de dados de vetores?

Tal como acontece com outros tipos de dados, a consulta eficiente de um grande conjunto de vetores requer um índice, e os bancos de dados vetoriais oferecem suporte a índices especializados para vetores. Ao contrário de muitos outros tipos de dados (como texto ou números) que têm uma única ordem lógica, os vetores não têm uma ordem natural que corresponda a casos de uso práticos. Em vez disso, o caso de uso mais comum é consultar os vetores k mais próximos de algum outro vetor em termos de uma métrica de distância, como produto escalar, similaridade do cosseno ou distância euclidiana. Esse tipo de consulta é chamado de consulta “vizinhos k (exatos) mais próximos” ou “KNN”.

Infelizmente, não há algoritmos gerais para consultas de KNN eficientes. Para garantir a localização dos vizinhos k mais próximos de um determinado vetor, q, é necessário calcular a distância entre q e todos os outros vetores. No entanto, há algoritmos eficientes para encontrar os vizinhos k mais próximos aproximados ("ANN"). Esses algoritmos de ANN compensam certa acurácia (especificamente recall, o algoritmo pode omitir alguns dos vizinhos mais próximos reais) para melhorar a velocidade. Como muitos casos de uso já consideram o processo de computação de embeddings de vetores um pouco impreciso, eles podem tolerar alguma perda de recall em troca de grandes melhorias no desempenho.

Para permitir consultas de ANN para vetores com base na distância de algum outro vetor, um índice de vetor é estruturado de uma maneira que clusters de vetores próximos geralmente são agrupados. Os tipos de índice de vetor comum podem ser estruturados como um conjunto de listas em que cada lista representa os vetores em um determinado cluster, um gráfico em que cada vetor está conectado a vários vizinhos mais próximos, árvores em que as ramificações correspondem aos subconjuntos do cluster do nó pai e mais. Cada tipo de índice oferece compensações entre velocidade de pesquisa, recall, consumo de memória, tempo de criação do índice e outros fatores.

No entanto, a maioria das consultas de banco de dados não se baseia apenas na semelhança semântica. Por exemplo, talvez um usuário esteja procurando um livro com uma descrição semelhante a "uma história comovente sobre uma criança e um cachorro", mas ele também queira limitar a pesquisa a preços abaixo de US$ 20 e a livros disponíveis em brochura. Os bancos de dados de vetores para fins especiais podem fornecer alguma capacidade de filtragem adicional limitada (às vezes chamada de “restrições”), enquanto os bancos de dados de uso geral podem compor predicados ricos usando linguagens padrão, como SQL, que podem ser combinadas com ordenação de similaridade de vetores para permitir consultas muito poderosas e expressivas.

Casos de uso para bancos de dados vetoriais

A capacidade de embeddings vetoriais de representar o significado semântico de dados não estruturados, combinada com a capacidade dos bancos de dados vetoriais pesquisar vetores próximos de maneira eficiente, desbloqueia muitos casos de uso importantes:

  • encontrar mensagens do histórico de chat que sejam relevantes para a conversa atual, permitindo que os chats com tecnologia de IA tenham "memória";
  • encontrar videoclipes de um vasto arquivo de transmissões esportivas que têm uma descrição simples como "pular sobre um zagueiro para pegar a bola e marcar um touchdown";
  • encontrar produtos semelhantes a itens que um usuário já comprou antes e que se encaixam no preço e nas preferências de estilo desse usuário;
  • procurar documentos relevantes para uma tarefa como "substituir o filtro em um aspirador" para que um assistente com tecnologia de IA possa fornecer uma resposta relevante e factual.

Benefícios dos bancos de dados de vetores

Os bancos de dados vetoriais são importantes porque podem ser usados para resolver uma variedade de problemas que são difíceis ou impossíveis de resolver usando apenas predicados relacionais ou técnicas de pesquisa de texto.

Os bancos de dados vetoriais são adequados para aplicativos de IA generativa porque facilitam a recuperação de contextos críticos de negócios e aplicativos, como histórico de chat relevante ou conteúdo não estruturado específico de negócios, para ajudar os LLMs a responder a uma consulta complexa do usuário.

Eles também podem facilitar a pesquisa de conteúdo usando linguagem natural ou a consulta por exemplo.

Resolva seus desafios mais difíceis com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
Google Cloud