Introducción
Open AI CLIP ViT-L/14. La dimensión de cada vector de embedding es 768.
Este conjunto de datos puede utilizarse para modelar aspectos de diseño, dimensionamiento y rendimiento de una aplicación real de búsqueda vectorial a gran escala. El conjunto de datos puede utilizarse tanto para la búsqueda de texto a imagen como para la búsqueda de imagen a imagen.
Detalles del conjunto de datos
npy y Parquet en the-eye.eu
ClickHouse ha puesto a disposición un subconjunto de 100 millones de vectores en un bucket de S3.
El bucket de S3 contiene 10 archivos Parquet; cada archivo Parquet contiene 10 millones de filas.
Recomendamos a los usuarios que primero realicen un ejercicio de dimensionamiento para estimar los requisitos de almacenamiento y memoria de este conjunto de datos, consultando la documentación.
Pasos
Crear tabla
Cree la tablalaion_5b_100m para almacenar los embeddings y sus atributos asociados:id es simplemente un entero incremental. Los atributos adicionales pueden usarse en predicados para entender
la búsqueda por similitud vectorial combinada con el posfiltrado/prefiltrado, como se explica en la documentaciónCargar datos
Para cargar el conjunto de datos de todos los archivosParquet, ejecute la siguiente instrucción SQL:Realiza una búsqueda de similitud vectorial por fuerza bruta
La búsqueda KNN (k - Nearest Neighbours) o búsqueda por fuerza bruta consiste en calcular la distancia de cada vector del conjunto de datos al vector de embedding de búsqueda y luego ordenar las distancias para obtener los vecinos más cercanos. Podemos utilizar uno de los vectores del propio conjunto de datos como vector de búsqueda. Por ejemplo:Query
Response
Crear un índice de similitud vectorial
Ejecute el siguiente SQL para definir y crear un índice de similitud vectorial sobre la columnavector de la tabla laion_5b_100m:M y ef_construction.
Debe seleccionar cuidadosamente los valores óptimos de estos parámetros evaluando el tiempo de construcción del índice y la calidad de los resultados de búsqueda
correspondientes a los valores seleccionados.La creación y el guardado del índice podrían tardar incluso varias horas para el conjunto de datos completo de 100 millones, según la cantidad de núcleos de CPU disponibles y el ancho de banda del almacenamiento.Realizar una búsqueda ANN
Una vez creado el índice de similitud vectorial, las consultas de búsqueda vectorial usarán automáticamente el índice:Query
Generar embeddings para la consulta de búsqueda
Los vectores de embeddings del conjunto de datosLAION 5b se generaron con el modelo OpenAI CLIP ViT-L/14.A continuación, se proporciona un script de ejemplo en Python para mostrar cómo generar mediante programación
vectores de embeddings con las API de CLIP. El vector de embeddings de búsqueda
se pasa después como argumento a la función cosineDistance() en la consulta SELECT.Para instalar el paquete clip, consulta el repositorio de GitHub de OpenAI.