Introducción a la búsqueda vectorial

En este documento, se proporciona una descripción general de la búsqueda vectorial en BigQuery. La búsqueda vectorial te permite buscar incorporaciones para identificar entidades semánticamente similares.

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 incorporaciones para codificar la semántica de esas entidades a fin de 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 incorporaciones para encontrar elementos que sean más semánticamente similares.

Para realizar una búsqueda vectorial, usa la función VECTOR_SEARCH y, de forma opcional, un índice vectorial. Cuando se usa un índice vectorial, VECTOR_SEARCH usa la técnica de búsqueda vecino más cercano aproximado para ayudar a mejorar el rendimiento de la búsqueda vectorial, con la compensación de reducir la recuperación y mostrar resultados más aproximados. La fuerza bruta se usa para mostrar resultados exactos cuando un índice vectorial no está disponible, y puedes optar por usar la fuerza bruta para obtener resultados exactos, incluso cuando un índice vectorial está disponible.

Casos de uso

La combinación de la generación de incorporaciones y la búsqueda vectorial habilita muchos casos de uso interesantes, en los que la generación de aumento de recuperación (RAG) es la canónica. Estos son otros casos prácticos posibles:

  • Con un lote de casos de ayuda nuevos, busca varios casos resueltos similares para cada uno. Pasa información sobre los casos resueltos a un modelo grande de lenguaje (LLM) para usarlo como contexto cuando resumas y sugieras soluciones para los nuevos casos de ayuda.
  • Dada una entrada de registro de auditoría, encuentra las entradas que coincidan de manera más estrecha en los últimos 30 días.
  • Genera incorporaciones a partir de los datos del perfil de los pacientes y, luego, usa la búsqueda vectorial para encontrar pacientes con perfiles similares a fin de explorar los planes de tratamiento exitosos prescritos a esa cohorte de pacientes.
  • Dadas las incorporaciones que representan momentos previos al accidente de todos los sensores y cámaras de una flota de autobuses escolares, encuentra momentos similares de todos los otros vehículos de la flota para analizarlos, ajustarlos y volver a entrenar los modelos que rigen las participaciones de funciones de seguridad.
  • Dada una imagen, encuentra las imágenes más relacionadas en una tabla de objetos de BigQuery y pasa esas imágenes a un modelo para generar subtítulos.

Precios

La sentencia CREATE VECTOR INDEX y la función VECTOR_SEARCH usan los precios de procesamiento de BigQuery. Para la declaración CREATE VECTOR INDEX, solo la columna indexada se considera en los bytes procesados.

No se aplican cargos por el procesamiento necesario para compilar y actualizar tus índices vectoriales cuando el tamaño total de los datos de tablas indexadas está por debajo del límite por organización. A fin de 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. 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 el almacenamiento de índices que se informa en la vista INFORMATION_SCHEMA.VECTOR_INDEXES.

Cuotas y límites

Para obtener más información, consulta Límites de los índices vectoriales.

Limitaciones

  • BigQuery BI Engine no acelera las consultas que contienen la función VECTOR_SEARCH.
  • Las reglas de administración y seguridad de los datos de BigQuery se aplican al uso de VECTOR_SEARCH. Para obtener más información, consulta la sección Limitaciones en VECTOR_SEARCH. Estas reglas no se aplican a la generación de índices vectoriales.

¿Qué sigue?