Introducción
384.
Este conjunto de datos puede usarse para analizar los aspectos de diseño, dimensionamiento y rendimiento de una aplicación de búsqueda vectorial a gran escala,
en un entorno real, construida sobre datos textuales generados por los usuarios.
Detalles del conjunto de datos
Parquet en un bucket de S3
Recomendamos a los usuarios realizar primero un ejercicio de dimensionamiento para estimar los requisitos de almacenamiento y memoria de este conjunto de datos consultando la documentación.
Pasos
Crear la tabla
Cree la tablahackernews para almacenar las publicaciones & sus embeddings, así como los atributos asociados:id es solo un entero que se incrementa. Los atributos adicionales pueden usarse en predicados para entender
la búsqueda por similitud vectorial combinada con posfiltrado/prefiltrado, como se explica en la documentaciónCargar datos
Para cargar los datos desde el archivoParquet, ejecute la siguiente sentencia SQL:Crear un índice de similitud vectorial
Ejecute la siguiente instrucción SQL para definir y crear un índice de similitud vectorial en la columnavector de la tabla hackernews: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
en función de los valores seleccionados.La construcción y el almacenamiento del índice podrían tardar incluso unos minutos o hasta una hora para el conjunto de datos completo de 28,74 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
Sentence Transformers ofrece modelos de embedding locales y fáciles de usar para capturar el significado semántico de oraciones y párrafos.El conjunto de datos de HackerNews contiene embeddings vectoriales generados con el modelo all-MiniLM-L6-v2.A continuación se incluye un script de Python de ejemplo para mostrar cómo generar vectores de embedding de forma programática usando el paquete de Pythonsentence_transformers. El vector de embedding de búsqueda se pasa luego como argumento a la función cosineDistance() en la consulta `SELECT`.Aplicación demo de resumen
El ejemplo anterior ilustró la búsqueda semántica y la recuperación de documentos con ClickHouse.A continuación se presenta una aplicación de ejemplo de IA generativa muy sencilla pero con gran potencial.La aplicación realiza los siguientes pasos:- Acepta un topic introducido por el usuario
- Genera un vector de embedding para el topic mediante
SentenceTransformerscon el modeloall-MiniLM-L6-v2 - Recupera publicaciones/comentarios muy relevantes mediante búsqueda por similitud vectorial en la tabla
hackernews - Usa
LangChainy la API de Chatgpt-3.5-turbode OpenAI para resumir el contenido recuperado en el paso n.º 3. Las publicaciones y los comentarios recuperados en el paso n.º 3 se pasan como contexto a la API de Chat y son el nexo clave en Generative AI.
OPENAI_API_KEY. La API key de OpenAI se puede obtener tras registrarse en https://platform.openai.com.Esta aplicación demuestra un caso de uso de Generative AI aplicable a múltiples dominios empresariales como:
análisis de sentimiento de clientes, automatización del soporte técnico, extracción de información de conversaciones de usuarios, documentos legales, registros médicos,
transcripciones de reuniones, estados financieros, etc.