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 con embeddings y se usa para potenciar los productos de Google, como 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 de vectores 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. Los embeddings 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 embedding se demuestra visualmente cuando se considera cómo se podrían representar diferentes elementos. Por ejemplo, los términos como gato, perro y león, que representan tipos de animales, se agrupan cerca en este espacio debido a sus características semánticas compartidas. Del mismo modo, los términos como automóvil, camión y el término más genérico vehículo formarían otro clúster. Esto se muestra en la siguiente imagen:

Los conceptos similares a nivel semántico, como _gato_, _perro_ y _león_, o _automóvil_, _camión_ y _vehículo_, están cerca unos de otros en el espacio de embedding.

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 embedding, más similares serán semánticamente, y las distancias mayores indican una mayor disimilitud semántica.

Casos de uso

La combinación de la generación de incorporaciones y la búsqueda vectorial habilita muchos casos de uso interesantes, como los siguientes:

  • Generación aumentada 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 ver un notebook que ilustra esta situación, consulta Crea una aplicación de búsqueda de vectores con BigQuery DataFrames.
  • Recomendar productos sustitutos 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, así, mejorar los flujos de trabajo de detección de amenazas, análisis forense y solución de problemas. Para ver un notebook que ilustra esta situación, consulta Log Anomaly Detection & Investigation with Text Embeddings + BigQuery Vector Search.
  • Agrupación y segmentación: Segmenta públicos con precisión. Por ejemplo, una cadena de hospitales podría agrupar a los pacientes usando notas en lenguaje natural y datos estructurados, o un especialista en marketing podría segmentar los anuncios según la intención de la búsqueda. Para ver un notebook que ilustra esta situación, consulta Create-Campaign-Customer-Segmentation.
  • Resolución y eliminación de duplicados de entidades: Limpia y consolida los datos. Por ejemplo, una empresa de publicidad podría eliminar los duplicados de los registros de información de identificación personal (PII), o una empresa inmobiliaria podría identificar las direcciones postales coincidentes.

Genera embeddings

En las siguientes secciones, se describen las funciones que ofrece BigQuery para ayudarte a generar o trabajar con incorporaciones.

Genera embeddings únicos

Puedes usar la función AI.EMBED con los modelos de incorporación de Gemini Enterprise Agent Platform para generar una sola incorporación de tu entrada.

La función AI.EMBED admite los siguientes tipos de entrada:

  • Datos de texto.
  • Son los datos de la imagen representados por valores de ObjectRef.

Genera una tabla de embeddings

Puedes usar AI.GENERATE_EMBEDDING para crear una tabla que tenga incorporaciones 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. Para los modelos de incorporación 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:

Generación autónoma de embeddings

Puedes usar la generación autónoma de incorporaciones para simplificar el proceso de creación, mantenimiento y consulta de incorporaciones. BigQuery mantiene una columna de incorporaciones 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 incorporación para esos datos con un modelo de incorporación de Agent Platform. Esto es útil si deseas que BigQuery mantenga tus incorporaciones cuando tus datos de origen se actualicen con regularidad.

Están disponibles las siguientes funciones de búsqueda:

De manera opcional, puedes crear un índice de vectores con la sentencia CREATE VECTOR INDEX. Cuando se usa un índice de vectores, 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 de vectores, 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 de vectores está disponible.

Precios

Las funciones VECTOR_SEARCH y AI.SEARCH, y la sentencia CREATE VECTOR INDEX usan los precios de procesamiento de BigQuery.

  • Funciones VECTOR_SEARCH y AI.SEARCH: Se te cobra por la búsqueda de similitud, con precios según demanda o por edición.

    • A pedido: Se te cobra por la cantidad de bytes analizados en la tabla base, el índice y la búsqueda.
    • Precios de las ediciones: Se te cobra por las ranuras necesarias para completar el trabajo en la edición de tu reserva. Los cálculos de similitud más grandes y complejos generan más cargos.

  • Declaración de CREATE VECTOR INDEX: No se aplican cargos por el procesamiento necesario para compilar y actualizar tus índices vectoriales, siempre y cuando el tamaño total de los datos de tablas indexadas esté por debajo del límite por organización. 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 un factor a tener en cuenta para los embeddings y los índices. La cantidad de bytes almacenados como incorporaciones e índices está sujeta a costos de almacenamiento activo.

  • Los índices vectoriales generan costos de almacenamiento cuando están activos.
  • Puedes encontrar el tamaño del almacenamiento de índices en la vista INFORMATION_SCHEMA.VECTOR_INDEXES. 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 vista INFORMATION_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 generativa.

Limitaciones

BigQuery BI Engine no acelera las consultas que contienen la función VECTOR_SEARCH o AI.SEARCH.

¿Qué sigue?