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
S3.
El subconjunto se almacena en un archivo Parquet.
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
1
Crear tabla
Cree la tabla El
laion_5b_10m para almacenar los embeddings y sus atributos asociados:id es simplemente un entero incremental. Los atributos adicionales pueden usarse en predicados para comprender
la búsqueda de similitud vectorial combinada con posfiltrado/prefiltrado, como se explica en la documentación2
Cargar datos
Para cargar el conjunto de datos, ejecute la siguiente sentencia SQL:La carga de 10 millones de filas en la tabla tardará unos minutos.
3
Ejecute una búsqueda de similitud vectorial de fuerza bruta
La búsqueda KNN (k - vecinos más próximos) o la búsqueda por fuerza bruta consiste en calcular la distancia entre cada vector del conjunto de datos
y el vector de embedding de búsqueda, y luego ordenar las distancias para obtener los vecinos más próximos. Podemos usar uno de los vectores
del propio conjunto de datos como vector de búsqueda. Por ejemplo:Anota la latencia de la consulta para compararla con la de una consulta ANN (mediante un índice vectorial).
Con 10 millones de filas, la consulta anterior sin un índice vectorial podría tardar desde unos segundos hasta varios minutos en completarse.
Query
4
Crear un índice de similitud vectorial
Ejecute el siguiente SQL para definir y crear un índice de similitud vectorial en la columna Los parámetros y las consideraciones de rendimiento para la creación y búsqueda de índices se describen en la documentación.
La instrucción anterior utiliza los valores 64 y 512, respectivamente, para los hiperparámetros de HNSW
vector de la tabla laion_5b_10m:M y ef_construction.
Debe seleccionar cuidadosamente los valores óptimos de estos parámetros evaluando el tiempo de creació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 pueden llevar un tiempo considerable para el subconjunto de 10 millones de filas, en función del número de núcleos de CPU disponibles y del ancho de banda de almacenamiento.5
Realice una búsqueda ANN
Una vez creado el índice de similitud vectorial, las consultas de búsqueda vectorial usarán automáticamente el índice:La primera carga del índice vectorial en memoria podría tardar unos segundos o minutos.
Query
6
Generar embeddings para la consulta de búsqueda
Los vectores de embedding del conjunto de datos El resultado de la búsqueda anterior se muestra a continuación:
LAION 5b se generaron con el modelo OpenAI CLIP ViT-L/14.A continuación, se incluye un script de Python de ejemplo que muestra cómo generar mediante programación
vectores de embedding mediante las API de CLIP. A continuación, el vector de embedding de búsqueda
se pasa como argumento a la función cosineDistance() en la consulta SELECT.Para instalar el paquete clip, consulte el repositorio de GitHub de OpenAI.