Introdução
Open AI CLIP ViT-L/14. A
dimensão de cada vetor de embedding é 768.
Esse conjunto de dados pode ser usado para modelar aspectos de projeto, dimensionamento e desempenho de uma aplicação real de
busca vetorial em grande escala. Ele pode ser usado tanto para buscas de texto para imagem quanto de imagem para imagem.
Detalhes do conjunto de dados
npy e Parquet em the-eye.eu
O ClickHouse disponibilizou um subconjunto de 100 milhões de vetores em um bucket S3.
O bucket S3 contém 10 arquivos Parquet, cada um com 10 milhões de linhas.
Recomendamos que os usuários façam primeiro uma análise de dimensionamento para estimar os requisitos de armazenamento e memória desse conjunto de dados consultando a documentação.
Etapas
Criar tabela
Crie a tabelalaion_5b_100m para armazenar os embeddings e os atributos associados:id é apenas um inteiro incremental. Os atributos adicionais podem ser usados em predicados para compreender
a busca por similaridade vetorial combinada com pós-filtragem/pré-filtragem, conforme explicado na documentaçãoCarregue os dados
Para carregar os dados de todos os arquivosParquet, execute a seguinte instrução SQL:Executar uma busca de similaridade vetorial por força bruta
A busca KNN (k - Nearest Neighbours) ou busca por força bruta consiste em calcular a distância de cada vetor no conjunto de dados em relação ao embedding de busca e, em seguida, ordenar as distâncias para obter os vizinhos mais próximos. Podemos usar um dos vetores do próprio conjunto de dados como vetor de busca. Por exemplo:Query
Response
Criar um índice de similaridade vetorial
Execute a instrução SQL a seguir para definir e criar um índice de similaridade vetorial na colunavector da tabela laion_5b_100m:M e ef_construction.
Você precisa selecionar cuidadosamente os valores ideais desses parâmetros, avaliando o tempo de compilação do índice e a qualidade dos resultados de busca
correspondentes aos valores escolhidos.A compilação e o salvamento do índice podem até levar algumas horas para o conjunto de dados completo de 100 milhões, dependendo do número de núcleos de CPU disponíveis e da largura de banda do armazenamento.Execute a busca ANN
Depois que o índice de similaridade vetorial tiver sido criado, as consultas de busca vetorial usarão automaticamente o índice:Query
Gerar embeddings para consulta de Busca
Os vetores de embedding do datasetLAION 5b foram gerados com o modelo OpenAI CLIP ViT-L/14.Um script Python de exemplo é fornecido abaixo para demonstrar como gerar programaticamente
vetores de embedding usando as APIs do CLIP. O vetor de embedding de Busca
é então passado como argumento para a função cosineDistance() na consulta SELECT.Para instalar o pacote clip, consulte o repositório GitHub da OpenAI.