Introducción a las inserciones y la búsqueda vectorial

En este documento se ofrece una descripción general de las inserciones y la búsqueda vectorial en BigQuery. La búsqueda de vectores es una técnica para comparar objetos similares mediante embeddings. Se usa en productos de Google, como la Búsqueda de Google, YouTube y Google Play. Puedes usar la búsqueda de vectores para hacer búsquedas a gran escala. Cuando usas índices vectoriales con la búsqueda vectorial, puedes aprovechar tecnologías fundamentales como la indexación de archivos invertidos (IVF) y el algoritmo ScaNN.

La búsqueda de vectores se basa en las inserciones. Las incrustaciones 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 usan las inserciones para codificar la semántica de estas entidades, lo que facilita el razonamiento y la comparación entre ellas. Por ejemplo, una operación habitual en los modelos de agrupamiento en clústeres, clasificación y recomendación es medir la distancia entre vectores en un espacio de inserción para encontrar los elementos que sean más similares semánticamente.

Este concepto de similitud semántica y distancia en un espacio de inserción se demuestra visualmente cuando se considera cómo se pueden representar diferentes elementos. Por ejemplo, los términos 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 coche, 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 semánticamente similares, como _gato_, _perro_ y _león_, o _coche_, _camión_ y _vehículo_, están cerca unos de otros en el espacio de inserción.

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 inserción, más similares serán semánticamente, y cuanto mayor sea la distancia, mayor será la diferencia semántica.

Casos prácticos

La combinación de la generación de incrustaciones y la búsqueda vectorial permite muchos casos prácticos interesantes. Estos son algunos casos prácticos posibles:

  • Generación aumentada por recuperación (RAG): analiza documentos, realiza búsquedas vectoriales en el contenido y genera respuestas resumidas a preguntas en lenguaje natural con modelos de Gemini, todo en BigQuery. Para ver un cuaderno que ilustra este caso práctico, consulta Crear una aplicación de búsqueda vectorial con BigQuery DataFrames.
  • Recomendar productos sustitutivos o similares: mejora las aplicaciones de comercio electrónico sugiriendo alternativas de productos en función del comportamiento de los clientes y de la similitud de los productos.
  • Analíticas de registros: ayuda a los equipos a clasificar de forma proactiva las anomalías en los registros y a acelerar las investigaciones. También puedes usar esta función para enriquecer el contexto de los LLMs y, de este modo, mejorar los flujos de trabajo de detección de amenazas, análisis forense y solución de problemas. Para ver un cuaderno que ilustra este caso, consulta Detección e investigación de anomalías en registros con incrustaciones de texto y búsqueda de vectores de BigQuery.
  • Agrupación y segmentación: segmenta las audiencias con precisión. Por ejemplo, una cadena de hospitales podría agrupar a los pacientes mediante notas en lenguaje natural y datos estructurados, o bien un anunciante podría orientar anuncios en función de la intención de búsqueda. Para ver un cuaderno que ilustra este caso, consulta Create-Campaign-Customer-Segmentation.
  • Resolución de entidades y eliminación de duplicados: limpia y consolida los datos. Por ejemplo, una empresa publicitaria podría eliminar duplicados de registros de información personal identificable (IPI), o una inmobiliaria podría identificar direcciones postales coincidentes.

Generar inserciones

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

Generar embeddings individuales

Puedes usar la función AI.EMBED con los modelos de inserción de Vertex AI para generar una única inserción de tu entrada.

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

Generar una tabla de embeddings

Puede usar AI.GENERATE_EMBEDDING para crear una tabla que tenga las inserciones de todos los datos de una columna de su tabla de entrada. En todos los tipos de modelos admitidos, AI.GENERATE_EMBEDDING funciona con datos estructurados en tablas estándar. En el caso de los modelos de inserciones multimodales, AI.GENERATE_EMBEDDING también funciona con contenido visual de columnas de tabla estándar que contengan valores ObjectRef o de tablas de objetos.

En el caso de los modelos remotos, toda la inferencia se produce en Vertex AI. En el caso de otros tipos de modelos, todas las inferencias se producen en BigQuery. Los resultados se almacenan en BigQuery.

Consulta los siguientes temas para probar la generación de inserciones en BigQuery ML:

Generación autónoma de inserciones

Puedes usar la generación autónoma de incrustaciones para simplificar el proceso de creación, mantenimiento y consulta de incrustaciones. BigQuery mantiene una columna de inserciones en tu tabla basada en una columna de origen. Cuando añades o modificas datos en la columna de origen, BigQuery genera o actualiza automáticamente la columna de inserción de esos datos mediante un modelo de inserción de Vertex AI. Esto es útil si quieres que BigQuery mantenga tus inserciones cuando tus datos de origen se actualicen periódicamente.

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

También puedes crear un índice vectorial con la instrucción CREATE VECTOR INDEX. Cuando se usa un índice de vectores, las funciones VECTOR_SEARCH y AI.SEARCH utilizan la técnica de búsqueda Vecino más cercano aproximado para mejorar el rendimiento de la búsqueda vectorial, lo que conlleva una reducción de la recuperación y, por lo tanto, se devuelven 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 usar la fuerza bruta para obtener resultados exactos aunque haya un índice vectorial disponible.

Precios

Las funciones VECTOR_SEARCH y AI.SEARCH, así como la instrucción CREATE VECTOR INDEX, usan los precios de computación de BigQuery.

  • Funciones VECTOR_SEARCH y AI.SEARCH: se te cobra por la búsqueda de similitud, con precios bajo demanda o por ediciones.

    • Bajo 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 cobrará por los espacios necesarios para completar el trabajo en la edición de reserva. Cuanto más grandes y complejas sean las comparaciones de similitud, más se te cobrará.

  • CREATE VECTOR INDEX: no se cobra por el procesamiento necesario para crear y actualizar los índices vectoriales siempre que el tamaño total de los datos de la tabla indexada no supere el límite por organización. Para admitir la indexación más allá de este límite, debes proporcionar tu propia reserva para gestionar los trabajos de gestión de índices.

El almacenamiento también es un factor importante para las inserciones e índices. La cantidad de bytes almacenados como inserciones e índices está sujeta a los costes de almacenamiento activo.

  • Los índices vectoriales generan costes de almacenamiento cuando están activos.
  • Para consultar el tamaño del almacenamiento del índice, usa la vista INFORMATION_SCHEMA.VECTOR_INDEXES. Si el índice vectorial aún no tiene una cobertura del 100 %, se te cobrará por lo que se haya indexado. Puedes consultar la cobertura de indexación en la vista INFORMATION_SCHEMA.VECTOR_INDEXES.

Cuotas y límites

Para obtener más información, consulta los límites de los índices vectoriales y los límites de las funciones de IA generativa.

Limitaciones

Las consultas que contienen la función VECTOR_SEARCH o AI.SEARCH no se aceleran con BigQuery BI Engine.

Siguientes pasos