Introducción a los embeddings y la búsqueda de vectores
En este documento, se proporciona una descripción general de los embeddings y la búsqueda de vectores en BigQuery. La búsqueda de vectores es una técnica para comparar objetos similares mediante embeddings y se usa para potenciar los productos de Google, incluidos la Búsqueda de Google, YouTube y Google Play. Puedes usar la búsqueda de vectores para realizar búsquedas a gran escala. Cuando usas índices vectoriales con la búsqueda de vectores, puedes aprovechar las tecnologías fundamentales, como la indexación de archivos invertidos (IVF) y el algoritmo de ScaNN.
La búsqueda de vectores se basa en embeddings. Las incorporaciones son vectores numéricos de alta dimensión que representan una entidad determinada, como un fragmento de texto o un archivo de audio. Los modelos de aprendizaje automático (AA) usan embeddings para codificar la semántica de esas entidades y facilitar el razonamiento y la comparación. Por ejemplo, una operación común en los modelos de agrupamiento en clústeres, clasificación y recomendación es medir la distancia entre vectores en un espacio de embeddings para encontrar elementos que sean más semánticamente similares.
Este concepto de similitud y distancia semántica en un espacio de embeddings se demuestra visualmente cuando consideras cómo se podrían trazar diferentes elementos. Por ejemplo, los términos como gato, perro y león, que representan tipos de animales, se agrupan en este espacio debido a sus características semánticas compartidas. Del mismo modo, los términos como auto, camión y el término más genérico vehículo formarían otro clúster. Esto se muestra en la siguiente imagen:
Puedes ver que los clústeres de animales y vehículos están muy separados entre sí. La separación entre los grupos ilustra el principio de que cuanto más cerca están los objetos en el espacio de embeddings, más similares son semánticamente, y las distancias mayores indican una mayor diferencia semántica.
Casos de uso
La combinación de la generación de embeddings y la búsqueda de vectores habilita muchos casos de uso interesantes. Estos son algunos casos de uso posibles:
- Generación mejorada por recuperación (RAG): Analiza documentos, realiza búsquedas de vectores en el contenido y genera respuestas resumidas a preguntas en lenguaje natural con los modelos de Gemini, todo dentro de BigQuery. Para obtener un notebook que ilustre esta situación, consulta Crea una aplicación de búsqueda de vectores con BigQuery DataFrames.
- Recomendación de sustitutos de productos o productos coincidentes: Mejora las aplicaciones de comercio electrónico sugiriendo alternativas de productos en función del comportamiento del cliente y la similitud de los productos.
- Análisis de registros: Ayuda a los equipos a clasificar de forma proactiva las anomalías en los registros y acelerar las investigaciones. También puedes usar esta capacidad para enriquecer el contexto de los LLM y mejorar la detección de amenazas, el análisis forense y los flujos de trabajo de solución de problemas. Para obtener un notebook que ilustre esta situación, consulta Detección e investigación de anomalías en registros con embeddings de texto + búsqueda de vectores de BigQuery.
- Agrupamiento en clústeres y segmentación: Segmenta públicos con precisión. Por ejemplo, una cadena de hospitales podría agrupar a los pacientes en clústeres con notas en lenguaje natural y datos estructurados, o un especialista en marketing podría segmentar anuncios según la intención de la consulta. Para obtener un notebook que ilustre esta situación, consulta Create-Campaign-Customer-Segmentation.
- Resolución de entidades y anulación de duplicación: Limpia y consolida datos. Por ejemplo, una empresa de publicidad podría anular la duplicación de registros de información de identificación personal (PII), o una empresa inmobiliaria podría identificar direcciones postales coincidentes.
Genera embeddings
En las siguientes secciones, se describen las funciones que ofrece BigQuery para ayudarte a generar o trabajar con embeddings.
Genera embeddings únicos
Puedes usar la
AI.EMBED función
con los modelos de embeddings de Gemini Enterprise Agent Platform para generar un solo embedding
de tu entrada.
La función AI.EMBED admite los siguientes tipos de entrada:
- Datos de texto.
- Datos de imagen representados por
ObjectRefvalores. - Datos de imagen representados por
ObjectRefRuntimevalores.
Genera una tabla de embeddings
Puedes usar el
AI.GENERATE_EMBEDDING
para crear una tabla que tenga embeddings para todos los datos de una columna de tu
tabla de entrada. Para todos los tipos de modelos compatibles, AI.GENERATE_EMBEDDING
funciona con datos estructurados en
tablas estándar. En el caso de los modelos de embeddings multimodales
, AI.GENERATE_EMBEDDING también funciona con contenido visual
de columnas de tablas estándar que contienen valores ObjectRef o de tablas de objetos.
En los modelos remotos, toda la inferencia se produce en Agent Platform. Para otros tipos de modelos, toda la inferencia se produce en BigQuery. Los resultados se almacenan en BigQuery.
Usa los siguientes temas para probar la generación de embeddings en BigQuery ML:
- Genera texto,
imágenes, o
video con la
AI.GENERATE_EMBEDDINGfunción. - Genera y busca incorporaciones multimodales
- Realiza una búsqueda semántica y una Generación mejorada por recuperación
Generación autónoma de embeddings
Puedes usar la generación autónoma de embeddings para simplificar el proceso de creación, mantenimiento y consulta de embeddings. BigQuery mantiene una columna de embeddings en tu tabla en función de una columna de origen. Cuando agregas o modificas datos en la columna de origen, BigQuery genera o actualiza automáticamente la columna de embeddings para esos datos con un modelo de embeddings de Agent Platform. Esto es útil si quieres que BigQuery mantenga tus embeddings cuando se actualicen los datos de origen con regularidad.
Buscar
Están disponibles las siguientes funciones de búsqueda:
VECTOR_SEARCH: Realiza una búsqueda de vectores con SQL.AI.SEARCH(vista previa): Busca resultados cercanos a una cadena que proporciones. Puedes usar esta función si tu tabla tiene habilitada la generación autónoma de embeddings.AI.SIMILARITY: Compara dos entradas calculando la similitud del coseno entre sus embeddings. Esta función funciona bien si quieres realizar una pequeña cantidad de comparaciones y no has precalculado ningún embedding. Debes usarVECTOR_SEARCHcuando el rendimiento sea fundamental y trabajes con una gran cantidad de embeddings. Compara su funcionalidad para elegir la mejor función para tu caso de uso.
De forma opcional, puedes crear un índice vectorial con
la
CREATE VECTOR INDEX instrucción.
Cuando se usa un índice vectorial, las funciones VECTOR_SEARCH y AI.SEARCH usan
la técnica de búsqueda del vecino más cercano aproximado
para mejorar el rendimiento de la búsqueda de vectores, con la compensación de
reducir
la recuperación
y, por lo tanto, mostrar resultados más aproximados. Sin un índice vectorial, estas
funciones usan
la búsqueda de fuerza bruta para
medir la distancia de cada registro. También puedes optar por usar la fuerza bruta para obtener resultados exactos, incluso cuando un índice vectorial está disponible.
Precios
Las funciones VECTOR_SEARCH y AI.SEARCH, y la CREATE VECTOR INDEX
instrucción usan
los precios de procesamiento de BigQuery.
Funciones
VECTOR_SEARCHyAI.SEARCH: Se te cobra por la búsqueda de similitud con los precios de las ediciones o según demanda.- Según demanda: Se te cobra por la cantidad de bytes analizados en la tabla base, el índice y la consulta de búsqueda.
Precios de las ediciones: Se te cobra por los slots necesarios para completar el trabajo dentro de la edición de tu reserva. Los cálculos de similitud más grandes y complejos generan más cargos.
CREATE VECTOR INDEXinstrucción: No se aplican cargos por el procesamiento necesario para compilar y actualizar tus índices vectoriales siempre que el tamaño total de los datos de tablas indexadas esté por debajo del límite por organización límite. Para admitir la indexación más allá de este límite, debes proporcionar tu propia reserva para controlar los trabajos de administración de índices.
El almacenamiento también es una consideración para los embeddings y los índices. La cantidad de bytes almacenados como embeddings e índices está sujeta a los costos de almacenamiento activo.
- Los índices vectoriales generan costos de almacenamiento cuando están activos.
- Puedes encontrar el tamaño del almacenamiento de índices con la
INFORMATION_SCHEMA.VECTOR_INDEXESvista. Si el índice vectorial aún no tiene una cobertura del 100%, se te cobra por todo lo que se haya indexado. Puedes verificar la cobertura del índice con la vistaINFORMATION_SCHEMA.VECTOR_INDEXES.
Cuotas y límites
Para obtener más información, consulta Límites de los índices vectoriales y Límites de las funciones IA generativas.
Limitaciones
BigQuery BI Engine no acelera las consultas que contienen la función VECTOR_SEARCH o AI.SEARCH.
¿Qué sigue?
- Obtén más información sobre cómo crear un índice vectorial.
- Aprende a realizar una búsqueda de vectores con la
VECTOR_SEARCHfunción. - Aprende a realizar una búsqueda semántica con la
AI.SEARCHfunción. - Obtén más información sobre la generación autónoma de embeddings.
- Prueba el instructivo Busca incorporaciones con búsqueda vectorial para aprender a crear un índice vectorial y, luego, realiza una búsqueda vectorial para embeddings con y sin el índice.
Prueba el instructivo Realiza búsquedas semánticas y generación mejorada por recuperación para aprender a hacer las siguientes tareas:
- Generar embeddings de texto.
- Crear un índice vectorial en las incorporaciones.
- Realizar una búsqueda vectorial con las incorporaciones para buscar texto similar.
- Realizar la Generación mejorada por recuperación (RAG) con los resultados de la búsqueda vectorial para aumentar la entrada de instrucciones y mejorar los resultados.
Prueba el instructivo Analiza archivos PDF en una canalización de generación mejorada por recuperación para aprender a crear una canalización de RAG basada en el contenido de PDF analizado.
También puedes realizar búsquedas de vectores con BigQuery DataFrames en Python. Para obtener un notebook que ilustre este enfoque, consulta Crea una aplicación de búsqueda de vectores con BigQuery DataFrames.