Um banco de dados vetorial armazena partes de informações como vetores. Os bancos de dados vetoriais agrupam itens relacionados, permitindo pesquisas de similaridade e a construção de modelos avançados de IA.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
O que são embeddings?
O que é aprendizado de máquina?
O que é LLM? | Large Language Model
O que é inteligência artificial (IA)?
IA preditiva
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
Um banco de dados vetorial é uma coleção de dados armazenados como representações matemáticas. Os bancos de dados vetoriais permitem que os modelos de aprendizado de máquina se lembrem de inserções anteriores com mais facilidade, permitindo que o aprendizado de máquina seja usado para alimentar pesquisas, recomendações e casos de uso de geração de texto. Os dados podem ser identificados com base em métricas de similaridade em vez de correspondências exatas, possibilitando que um modelo de computador entenda os dados contextualmente.
Quando alguém visita uma loja de calçados, o vendedor pode sugerir sapatos semelhantes ao par que a pessoa prefere. Da mesma forma, ao fazer compras em uma loja de comércio eletrônico, a loja pode sugerir itens semelhantes em um cabeçalho como "Os clientes também compraram..." Os bancos de dados vetoriais permitem que os modelos de aprendizado de máquina identifiquem objetos semelhantes, assim como o vendedor pode encontrar sapatos comparáveis e a loja de comércio eletrônico pode sugerir produtos relacionados. (Na verdade, a loja de comércio eletrônico pode usar esse modelo de aprendizado de máquina para fazer isso).
Em resumo, os bancos de dados vetoriais possibilitam que os programas de computador façam comparações, identifiquem relacionamentos e entendam o contexto. Isso permite a criação de programas avançados de inteligência artificial (IA), como modelos de linguagem ampla (LLMs).
Nesse banco de dados vetorial simples, os documentos no canto superior direito provavelmente são semelhantes entre si.
Um vetor é uma matriz de valores numéricos que expressa a localização de um ponto flutuante ao longo de várias dimensões.
Em uma linguagem mais cotidiana, um vetor é uma lista de números, como: {12, 13, 19, 8, 9}. Esses números indicam um local dentro de um espaço, assim como um número de linha e coluna indica uma determinada célula em uma planilha (por exemplo "B7").
Cada vetor em um banco de dados vetorial corresponde a um objeto ou item, seja ele uma palavra, uma imagem, um vídeo, um filme, um documento ou qualquer outro dado. É provável que esses vetores sejam longos e complexos, expressando a localização de cada objeto ao longo de dezenas ou até centenas de dimensões.
Por exemplo, um banco de dados vetorial de filmes pode localizar filmes de acordo com dimensões como tempo de duração, gênero, ano de lançamento, classificação de orientação parental, número de atores em comum, número de espectadores em comum e assim por diante. Se esses vetores forem criados com precisão, é provável que filmes semelhantes acabem agrupados no banco de dados de vetores.
Embeddings são vetores gerados por redes neurais. Um banco de dados vetorial típico em um modelo de aprendizado profundo é composto de embeddings. Quando está ajustada adequadamente, uma rede neural pode gerar embeddings por conta própria para que não precisem ser criados manualmente. Esses embeddings podem, em seguida, ser usados para pesquisas de similaridade, análise contextual, IA generativa e assim por diante, conforme descrito acima.
A consulta de um modelo de aprendizado de máquina por si só, sem um banco de dados de vetores, não é rápida nem econômica. Os modelos de aprendizado de máquina não conseguem se lembrar de nada além daquilo em que foram treinados. Eles precisam estar sempre no contexto (que é como muitos chatbots simples funcionam).
Passar o contexto de uma consulta para o modelo todas as vezes é muito lento, pois é provável que sejam muitos dados; e caro, pois os dados precisam se movimentar e a capacidade de computação precisa ser gasta repetidamente para que o modelo analise os mesmos dados. E, na prática, a maioria das APIs de aprendizado de máquina provavelmente tem restrições quanto à quantidade de dados que pode aceitar de uma só vez.
É nesse ponto que um banco de dados vetorial é útil: um conjunto de dados passa pelo modelo apenas uma vez (ou periodicamente, à medida que muda), e os embeddings do modelo desses dados são armazenados em um banco de dados vetorial.
Isso economiza uma quantidade enorme de tempo de processamento. Ele possibilita a criação de aplicativos voltados para o usuário em torno da pesquisa semântica, da classificação e da detecção de anomalias, porque os resultados retornam em dezenas de milissegundos, sem esperar que o modelo analise todo o conjunto de dados.
Para consultas, os desenvolvedores solicitam ao modelo de aprendizado de máquina uma representação (embedding) apenas dessa consulta. Em seguida, o embedding pode ser passado para o banco de dados de vetores, e pode retornar embeddings semelhantes, que já foram executados pelo modelo. Esses embeddings podem ser mapeados de volta ao conteúdo original: seja o URL de uma página, um link para uma imagem ou SKUs de produtos.
Para resumir: os bancos de dados vetoriais funcionam em escala, trabalham rapidamente e são mais econômicos do que consultar modelos de aprendizado de máquina sem eles.
O Vectorize é um banco de dados vetorial distribuído globalmente oferecido pela Cloudflare. Os aplicativos criados no Cloudflare Workers podem usar o Vectorize para consultar documentos armazenados no Workers KV, imagens armazenadas no R2 ou perfis de usuários armazenados no D1. Da mesma forma que o Workers permite que os desenvolvedores criem aplicativos sem criar nenhuma infraestrutura de back-end, o Vectorize permite que os desenvolvedores criem recursos de IA em seus aplicativos sem criar sua própria infraestrutura de banco de dados de vetores. E para criar embeddings, a Cloudflare oferece o Workers AI.
Saiba como criar aplicativos orientados por IA na Cloudflare.