Introducción a las inserciones y la búsqueda vectorial (original) (raw)

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:

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 usarAI.GENERATE_EMBEDDINGpara 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_EMBEDDINGfunciona con datos estructurados entablas 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.

Buscar

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.

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.

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