Pular para o conteúdo principal

Vector Search

Busca vetorial é uma técnica avançada de busca que utiliza representações vetoriais de dados para encontrar itens semelhantes com base em suas características semânticas. Em vez de depender apenas de palavras-chave, a busca vetorial analisa a relação entre os dados em um espaço multidimensional, permitindo resultados mais precisos e relevantes.

Vector Data Type

O tipo de dado vetorial é uma estrutura que armazena vetores, que são representações numéricas de dados em um espaço multidimensional. Cada vetor é composto por uma série de valores (componentes) que representam características específicas do item. Esses vetores podem ser usados para calcular similaridades entre diferentes itens, facilitando a busca por itens semelhantes.

Vector Embedding

Vector embedding é o processo de transformar dados, como texto, imagens ou áudio, em vetores numéricos. Essa transformação é realizada por meio de técnicas de aprendizado de máquina, como redes neurais, que capturam as características semânticas dos dados. Os embeddings permitem que os dados sejam comparados e analisados em um espaço vetorial, facilitando a busca e a recuperação de informações relevantes.

A busca por similaridade é uma técnica utilizada para encontrar itens que são semanticamente semelhantes a um item de consulta. Em vez de buscar por correspondências exatas, a busca por similaridade utiliza medidas matemáticas, como a distância euclidiana ou a similaridade do cosseno, para avaliar o quão próximos os vetores estão uns dos outros no espaço multidimensional. Isso permite identificar itens que compartilham características semelhantes, mesmo que não sejam idênticos.

Generate Vector Embeddings

Para gerar embeddings vetoriais, é necessário utilizar modelos de aprendizado de máquina treinados em grandes conjuntos de dados. Esses modelos podem ser pré-treinados ou personalizados para atender a necessidades específicas. O processo geralmente envolve os seguintes passos:

  1. Coleta de Dados: Reunir um grande conjunto de dados representativos do domínio de interesse.
  2. Pré-processamento: Limpar e preparar os dados para treinamento, incluindo a normalização e a transformação em um formato adequado.
  3. Treinamento do Modelo: Utilizar técnicas de aprendizado de máquina, como redes neurais, para treinar um modelo que possa gerar embeddings a partir dos dados de entrada.
  4. Geração de Embeddings: Aplicar o modelo treinado a novos dados para gerar seus embeddings vetoriais.

Store Vector Embeddings

Os embeddings vetoriais podem ser armazenados em bancos de dados especializados que suportam operações de busca vetorial. Esses bancos de dados são otimizados para lidar com grandes volumes de dados e realizar buscas eficientes com base em similaridade.

Na OCI temos o Oracle Database 23ai.

Vector Indexes

Índices vetoriais são estruturas de dados que facilitam a busca eficiente em grandes conjuntos de embeddings vetoriais. Eles organizam os vetores de maneira que as operações de busca por similaridade possam ser realizadas rapidamente, reduzindo o tempo necessário para encontrar itens semelhantes. Existem vários tipos de índices vetoriais, como árvores KD, índices HNSW (Hierarchical Navigable Small World) e índices FAISS (Facebook AI Similarity Search), cada um com suas próprias vantagens e desvantagens dependendo do caso de uso.

Para consultar dados usando busca por similaridade, o processo geralmente envolve os seguintes passos:

  1. Preparação da Consulta: Transformar a consulta do usuário em um vetor usando o mesmo modelo de embedding utilizado para os dados armazenados.
  2. Busca por Similaridade: Utilizar o índice vetorial para encontrar os embeddings mais próximos do vetor da consulta. Isso pode envolver o uso de técnicas como busca aproximada de vizinhos mais próximos (ANN) para melhorar a eficiência.
  3. Recuperação de Resultados: Extrair os itens correspondentes aos embeddings encontrados e apresentá-los ao usuário como resultados da busca.
  4. Classificação e Filtragem: Opcionalmente, classificar os resultados com base em critérios adicionais ou aplicar filtros para refinar a lista de itens retornados.

Similarity Search