Minha IBM Efetue login Inscreva-se

O que é um banco de dados vetorial?

29 de julho de 2024

Autores

Matthew Kosinski

Enterprise Technology Writer

O que é um banco de dados vetorial?

Um banco de dados de vetores armazena, gerencia e indexa dados vetoriais de alta dimensionalidade. Pontos de dados são armazenados como matrizes de números chamados "vetores", que são agrupados com base na similaridade. Esse design possibilita consultas de baixa latência, tornando-o ideal para aplicações de IA.

Os bancos de dados de vetores estão crescendo em popularidade porque oferecem a velocidade e o desempenho necessários para impulsionar casos de uso e aplicações de inteligência artificial (IA) generativa. De acordo com o Gartner, até 2026, mais de 30% das empresas terão adotado bancos de dados de vetores para construir seus modelos de base com dados de negócios relevantes.1

Bancos de dados de vetores versus bancos de dados tradicionais

Ao contrário dos bancos de dados relacionais tradicionais com linhas e colunas, pontos de dados em um banco de dados de vetores são representados por vetores com um número fixo de dimensões. Como utilizam incorporações vetoriais de alta dimensão, os bancos de dados de vetores são mais capazes de lidar com conjuntos de dados não estruturados.

A natureza dos dados passou por uma transformação profunda. Eles não estão mais restritos a informações estruturadas facilmente armazenadas em bancos de dados tradicionais. Dados não estruturados(incluindo postagens em redes sociais, imagens, vídeos, clipes de áudio e muito mais) estão crescendo de 30% a 60% ao ano.2

Bancos de dados relacionais se destacam no gerenciamento de conjuntos de dados estruturados e semiestruturados em formatos específicos. Carregar fontes de dados não estruturados em um banco de dados relacional tradicional para armazenar, gerenciar e preparar os dados para inteligência artificial (IA) é um processo trabalhoso, especialmente com novos casos de uso generativos, como a busca por similaridade.

Pesquisa tradicional normalmente representa dados usando tokens ou funcionalidades discretas, como palavras-chave, tags ou metadados. As pesquisas tradicionais dependem de correspondências exatas para recuperar resultados relevantes. Por exemplo, uma pesquisa por "smartphone" retornaria resultados contendo a palavra "smartphone".

Ao contrário disso, a pesquisa vetorial representa dados como vetores densos, que são vetores com a maioria ou todos os elementos diferentes de zero. Os vetores são representados em um espaço vetorial contínuo, o espaço matemático no qual os dados são representados como vetores.

As representações vetoriais possibilitam a pesquisa por similaridade. Por exemplo, uma pesquisa vetorial por "smartphone" também pode retornar resultados para "celular" e "dispositivos móveis".

Cada dimensão do vetor denso corresponde a uma funcionalidade latente ou aspecto dos dados. Uma funcionalidade latente é uma característica ou atributo subjacente que não é observado diretamente, mas inferido a partir dos dados por meio de modelos matemáticos ou algoritmos.

As funcionalidades latentes capturam os padrões e relacionamentos ocultos nos dados, permitindo representações mais significativas e precisas dos itens como vetores em um espaço de alta dimensão.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

O que são vetores?

Os vetores são um subconjunto de tensores, que no aprendizado de máquina (ML) é um termo genérico para um grupo de números (ou um agrupamento de grupos de números) no espaço n-dimensional. Os tensores funcionam como um dispositivo de contabilidade matemática para dados. Trabalhando a partir do menor elemento:

  • Um escalar é um tensor de dimensão zero, contendo um único número. Por exemplo, um sistema que modela dados meteorológicos pode representar a temperatura máxima de um único dia (em Fahrenheit) na forma escalar como 85.

  • Então, um vetor é um tensor unidimensional (ou de primeiro grau ou de primeira ordem), contendo vários escalares do mesmo tipo de dados. Por exemplo, um modelo meteorológico pode usar as temperaturas mímima, média e máxima para um único dia em forma vetorial: 62, 77, 85. Cada componente escalar é uma funcionalidade— isto é, uma dimensão — do vetor, representando uma funcionalidade do clima daquele dia.

Números vetoriais podem representar objetos complexos, como palavras, imagens, vídeos e áudio gerados por um modelo de ML. Esses dados vetoriais de alta dimensão, contendo várias funcionalidades, são essenciais o para aprendizado de máquina, processamento de linguagem natural (NLP) e outras tarefas de IA. Alguns exemplos de usos de dados vetoriais incluem:

  • Texto: chatbots precisam entender a linguagem natural. Eles fazem isso baseando-se em vetores que representam palavras, parágrafos e documentos inteiros.

  • Imagens: os pixels de uma imagem podem ser descritos por dados numéricos e combinados para formar um vetor de alta dimensão para aquela imagem.

  • Fala ou áudio: assim como as imagens, as ondas sonoras também podem ser divididas em dados numéricos e representadas como vetores, possibilitando aplicações de IA como reconhecimento de voz.
Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

O que são incorporações vetoriais?

Incorporações vetoriais são representações numéricas de pontos de dados que convertem vários tipos de dados (incluindo dados não matemáticos, como palavras, áudio ou imagens), em matrizes de números que modelos de ML podem processar.

Os modelos de inteligência artificial (IA), desde algoritmos simples de regressão linear até as intrincadas redes neurais usadas no deep learning, operam por meio de lógica matemática.

Quaisquer dados que um modelo de IA utiliza, incluindo dados não estruturados, precisam ser registrados numericamente. A incorporação vetorial é uma forma de converter um ponto de dados não estruturados o em uma matriz de números que expressa o significado original desses dados.

Aqui está um exemplo simplificado de incorporações de palavras para um corpus muito pequeno (duas palavras), onde cada palavra é representada como um vetor tridimensional:

  • gato [0,2, -0,4, 0,7]
  • cachorro [0,6, 0,1, 0,5]

Neste exemplo, cada palavra ("gato") está associada a um vetor único ([0.2, -0,4, 0,7]). Os valores no vetor representam a posição da palavra em um espaço vetorial contínuo tridimensional.

Espera-se que palavras com significados ou contextos similares tenham representações vetoriais similares. Por exemplo, os vetores para "gato" e "cão" estão próximos, refletindo sua relação semântica.

Modelos de incorporações são treinados para converter pontos de dados em vetores. Bancos de dados de vetores armazenam e indexam as produções desses modelos de incorporações. Dentro do banco de dados, vetores podem ser agrupados ou identificados como opostos com base no significado semântico ou funcionalidades em praticamente qualquer tipo de dado.

As incorporações vetoriais são a base das recomendações, chatbots e aplicativos generativos, como o ChatGPT.

Por exemplo, considere as palavras "carro" e "veículo". Elas têm significados similares, mas são escritas de forma diferente. Para que uma aplicação de IA permita uma pesquisa semântica eficaz, as representações vetoriais de "carro" e "veículo" devem capturar sua semelhança semântica. No aprendizado de máquina, as incorporações representam vetores de alta dimensão que codificam essa informação semântica.

Como os bancos de dados vetoriais são usados?

Bancos de dados de vetores desempenham três funções principais em aplicações de IA e ML:

  • Armazenamento vetorial
  • Indexação vetorial
  • Pesquisa por similaridade com base em consultas ou prompts

Em operação, bancos de dados de vetores funcionam usando múltiplos algoritmos para conduzir uma pesquisa do vizinho mais próximo aproximado (ANN) . Então, os algoritmos são reunidos em um pipeline para recuperar e entregar dados vizinhos ao vetor que é consultado de forma rápida e precisa.

Por exemplo, uma pesquisa de ANN pode procurar produtos visualmente semelhantes em um catálogo de comércio eletrônico. Outros usos incluem detecção de anomalias, classificação e pesquisa semântica. Como um conjunto de dados passa por um modelo apenas uma vez, os resultados são retornados em milissegundos.

Armazenamento de vetores

Bancos de dados de vetores armazenam as produções de um algoritmo de modelo de incorporação, as incorporações vetoriais. Eles também armazenam os metadados de cada vetor, incluindo título, descrição e tipo de dado, que podem ser consultados usando filtros de metadados.

Ao ingerir e armazenar essas incorporações, o banco de dados pode facilitar a recuperação rápida de uma pesquisa de similaridade, correspondendo o prompt do usuário a uma incorporação vetorial similar.

Indexação vetorial

Os vetores precisam ser indexados para acelerar pesquisas dentro de espaços de dados de alta dimensão. Bancos de dados de vetores criam índices em incorporações vetoriais para funções de pesquisa.

O banco de dados de vetores indexa vetores usando um algoritmo de ML. A indexação mapeia os vetores para novas estruturas de dados, que possibilitam pesquisas mais rápidas por similaridade ou distância, como pesquisas de vizinho mais próximo , entre vetores.

Vetores podem ser indexados usando algoritmos como Hierarchical Navigable Small World (HNSW), hashing sensível à localidade (LSH) ou quantização de produto (PQ).

  • O HNSW é popular pois cria uma estrutura semelhante a uma árvore. Cada nó da árvore exibe um conjunto de vetores completos com as hierarquias em cada um. As similaridades entre vetores são mostradas nas arestas entre os nós.

  • O LSH indexa o conteúdo usando uma pesquisa aproximada pelo vizinho mais próximo. Para obter maior velocidade, o índice pode ser otimizado retornando um resultado aproximado, mas não exaustivo.

  • A PQ converte cada conjunto de dados em uma representação curta e eficiente em termos de memória. Apenas as representações curtas são armazenadas, em vez de todos os vetores.

Pesquisa por similaridade com base em consultas ou solicitações

Vetores de consulta são representações vetoriais das consultas de pesquisa. Quando um usuário faz uma consulta ou um prompt de um modelo de IA, o modelo calcula uma incorporação da consulta ou prompt. Então, o banco de dados calcula as distâncias entre vetores de consulta e vetores armazenados no índice para retornar resultados similares.

Os bancos de dados podem medir a distância entre vetores com vários algoritmos, como pesquisa pelo vizinho mais próximo. As medições também podem ser baseadas em várias métricas de similaridade, como similaridade de cosseno.

O banco de dados retorna os vetores mais similares ou vizinhos mais próximos ao vetor de consulta de acordo com a classificação de similaridade. Esses cálculos são compatíveis com várias tarefas de aprendizado de máquina, como sistemas de recomendação, pesquisa semântica, reconhecimento de imagens e outras tarefas de processamento de linguagem natural.

Vantagens dos bancos de dados vetoriais

Os bancos de dados de vetores são uma forma popular de impulsionar aplicações empresariais baseadas em IA porque podem oferecer muitos benefícios:

  • Velocidade e desempenho
  • Escalabilidade
  • Menor custo de propriedade
  • Gerenciamento de dados
  • Flexibilidade
Velocidade e desempenho

Os bancos de dados de vetores utilizam várias técnicas de indexação para permitir pesquisas mais rápidas. Algoritmos de indexação vetorial e cálculo de distância, como pesquisa de vizinho mais próximo, podem ajudar a otimizar o desempenho ao pesquisar resultados relevantes em grandes conjuntos de dados com milhões, se não bilhões, de pontos de dados.

Uma consideração é que bancos de dados de vetores fornecem resultados aproximados. Aplicações que exigem maior precisão podem precisar usar um tipo diferente de banco de dados, ao custo de uma velocidade de processamento mais lenta.

Escalabilidade

Os bancos de dados de vetores podem armazenar e gerenciar enormes quantidades de dados não estruturados, escalando horizontalmente com nós adicionais, mantendo o desempenho conforme a demanda de consultas e os volumes de dados aumentam.

Menor custo de propriedade

Como possibilitam uma recuperação de dados mais rápida, bancos de dados de vetores aceleram o treinamento de modelos de base.

Gerenciamento de dados

Os bancos de dados de vetores normalmente fornecem funcionalidades integradas para atualizar e inserir facilmente novos dados não estruturados.

Flexibilidade

Os bancos de dados de vetores são projetados para lidar com a complexidade adicional de usar imagens, vídeos ou outros dados multidimensionais.

Considerando-se os múltiplos casos de uso, que vão desde pesquisa semântica até aplicações de IA conversacional, os bancos de dados de vetores podem ser personalizados para atender aos requisitos de negócios e de IA. As organizações podem começar com um modelo de finalidade geral, como os modelos da série IBM Granite, Llama-2 da Meta ou os modelos Flan do Google e, então, fornecer seus próprios dados em um banco de dados de vetores para aprimorar a produção dos modelos e aplicações de IA.

Considerações para bancos de dados vetoriais e estratégia de dados

As organizações têm uma ampla gama de opções ao escolher um recurso de banco de dados de vetores. Para encontrar um que atenda às suas necessidades de dados e IA, muitas organizações consideram:

  • Tipos de bancos de dados de vetores
  • Integração com um ecossistema de dados
  • Quando a indexação vetorial não é ideal
  • Ferramentas para criar e implementar bancos de dados de vetores

Tipos de bancos de dados vetoriais

Existem algumas alternativas para escolher.

  • Bancos de dados independentes, proprietários e totalmente vetorizados, como o Pinecone.

  • Soluções de código aberto, como o Weaviate ou Milvus, que fornecem APIs RESTful integradas e compatibilidade com linguagens de programação Python e Java.

  • Data lakehouses com recursos de banco de dados de vetores integrados, como o IBM watsonx.data.

  • Extensões para bancos de dados de vetores e pesquisa de banco de dados, como a extensão de código aberto pgvector do PostgreSQL, que fornece recursos de busca por similaridade vetorial. Um banco de dados de vetores SQL pode combinar as vantagens de um banco de dados SQL tradicional com o poder de um banco de dados de vetores.

Integração com um ecossistema de dados

Os bancos de dados de vetores não devem ser considerados como recursos independentes, mas sim como parte de um ecossistema mais amplo de dados e IA.

Muitos oferecem APIs, extensões nativas ou podem ser integrados com bancos de dados. Como os bancos de dados de vetores são criados para usar dados empresariais para aprimorar modelos, as organizações também devem ter governança e segurança de dados adequadas para garantir que os dados usados para treinar grandes modelos de linguagem (LLMs) possam ser confiáveis.

Além das APIs, muitos bancos de dados de vetores utilizam kits de desenvolvimento de software (SDKs) específicos de linguagem de programação que podem envolver as APIs. Usando os SDKs, os desenvolvedores frequentemente acham mais fácil trabalhar com os dados em seus aplicativos.

Quando a indexação vetorial não é ideal

Utilizar um armazenamento e índice vetorial é bem adequado para aplicações baseadas em fatos ou consultas baseadas em fatos, como a extração de informações específicas de documentos complexos.

No entanto, solicitar um resumo de tópicos não funcionaria bem com um índice vetorial. Nesse caso, um LLM examinaria todos os diferentes contextos possíveis sobre aquele tópico dentro dos dados.

Uma opção mais rápida seria usar um tipo diferente de índice, como um índice de lista em vez de um índice vetorial, porque um índice de lista recuperaria imediatamente o primeiro elemento em cada lista.

Ferramentas para criar e implementar bancos de dados vetoriais

Para otimizar o desenvolvimento de bancos de dados de vetores, o LangChain é um framework de orquestração de código aberto para desenvolver aplicações que utilizam LLMs.

Disponível em bibliotecas baseadas em Python e JavaScript, as ferramentas e APIs do LangChain simplificam o processo de construção de aplicativos impulsionados por LLMs, como chatbots e agentes virtuais. O LangChain oferece integrações para mais de 25 métodos de incorporação diferentes e para mais de 50 armazenamentos de vetores (tanto em nuvem quanto locais).

Para impulsionar a IA de nível empresarial, um data lakehouse pode ser combinado com um banco de dados de vetores integrado. As organizações podem unificar, selecionar e preparar incorporações vetorizados para suas aplicações de IA generativa em escala em todos os seus dados governados confiáveis. Isso aumenta a relevância e a precisão de suas cargas de trabalho de IA, incluindo chatbots, sistemas de recomendação personalizados e aplicações de pesquisa por similaridade de imagens.

Casos de uso de bancos de dados vetoriais

As aplicações para bancos de dados de vetores são vastas e crescentes. Alguns casos de uso principais incluem:

  • Geração aumentada de recuperação (RAG)
  • IA conversacional
  • Mecanismos de recomendação
  • Pesquisa vetorial

Geração aumentada por recuperação (RAG)

Geração aumentada de recuperação (RAG) é um framework de IA que permite que grandes modelos de linguagem (LLMs) recuperem fatos de uma base de conhecimento externa. Bancos de dados de vetores são essenciais para apoiar implementações da RAG.

As empresas estão cada vez mais favorecendo a RAG em fluxos de trabalho de IA generativa por seu tempo de chegada ao mercado mais rápido, inferência eficiente e produção confiável. O framework é particularmente útil em casos de uso como atenção ao cliente, HR e gerenciamento de talentos.

A RAG ajuda a garantir que um modelo esteja vinculado aos fatos mais atuais e confiáveis e que os usuários tenham acesso às fontes do modelo para que suas alegações possam ser verificadas. Ancorar o LLM a dados confiáveis pode ajudar a reduzir alucinações do modelo.

A RAG usa dados vetoriais de alta dimensionalidade para enriquecer os prompts com informações semanticamente relevantes para o aprendizado em contexto por modelos de base. A RAG exige armazenamento e recuperação eficazes durante a fase de inferência, que lida com o maior volume de dados.

Bancos de dados de vetores se destacam em indexar, armazenar e recuperar esses vetores de alta dimensionalidade de maneira eficiente, ao fornecer a velocidade, precisão e escala necessárias para aplicações como mecanismos de recomendação e chatbots.

IA conversacional

Bancos de dados de vetores, particularmente quando usados para implementar frameworks de RAG, podem ajudar a melhorar as interações de agentes virtuais ao aprimorar a capacidade do agente de analisar bases de conhecimento relevantes de maneira eficiente e precisa. Os agentes podem fornecer respostas contextuais em tempo real às consultas dos usuários, juntamente com os documentos e números das páginas de referência.

Mecanismos de recomendação

Sites de comércio eletrônico, por exemplo, podem usar vetores para representar preferências de clientes e atributos de produtos. Isso permite que eles sugiram itens semelhantes às compras anteriores, com base na similaridade vetorial, melhorando a experiência do usuário e aumentando a retenção.

Pesquisa vetorial

Esta técnica de pesquisa é usada para descobrir itens ou pontos de dados semelhantes, tipicamente representados como vetores, em grandes coleções. A pesquisa vetorial pode capturar as relações semânticas entre os elementos, permitindo um processamento eficaz por modelos de aprendizado de máquina e aplicações de inteligência artificial.

Essas pesquisas podem assumir várias formas.

  • Pesquisa semântica: realize pesquisas com base no significado ou contexto de uma consulta, permitindo resultados mais precisos e relevantes. Como palavras e frases podem ser representadas como vetores, a pesquisa semântica vetorial compreende a intenção do usuário melhor do que palavras-chave gerais.

  • Pesquisa por similaridade e aplicações: encontre imagens, áudios, vídeos ou dados textuais similares para compatibilidade com reconhecimento avançado de imagens e fala e processamento de linguagem natural. Imagens e vídeos podem ser indexados e recuperados com base na similaridade.
Soluções relacionadas

Soluções relacionadas

IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use IA para trabalhar em sua empresa com a experiência em IA líder do setor e com o portfólio de soluções da IBM.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

1 Gartner Innovation Insight: Vector DatabasesGartner, 4 de setembro de 2023.

2 2024 Strategic Roadmap for StorageGartner, 27 de maio de 2024.