Analiza datos multimodales en BigQuery

En este documento, se describen las funciones de BigQuery que puedes usar para crear y analizar datos multimodales. Estas funciones se pueden usar en BigQuery con GoogleSQL y con Python mediante BigQuery DataFrames.

Las funciones de datos multimodales de BigQuery te permiten realizar las siguientes tareas:

Para obtener un instructivo paso a paso que usa la Cloud de Confiance consola, consulta Analiza datos multimodales con SQL y Python.

Beneficios

Las funciones de datos multimodales de BigQuery ofrecen los siguientes beneficios:

  • Composabilidad: Puedes almacenar y administrar datos estructurados y no estructurados en la misma fila de la tabla estándar con valores ObjectRef. Por ejemplo, puedes almacenar imágenes de un producto en la misma fila que el resto de la información del producto. Puedes usar funciones estándar de SQL para crear y actualizar columnas que contengan valores ObjectRef, y puedes crear valores ObjectRef como resultado de una acción de transformación en un objeto.
  • Agrega varios datos no estructurados en instrucciones de IA generativa: Agrega varios ObjectRef valores como entrada a las funciones generativas de IA. Por ejemplo, puedes generar embeddings de datos de imágenes y texto desde la misma tabla. Para la generación de texto y valores escalares, también puedes hacer referencia a varios objetos dentro de la instrucción que envías a un modelo. Por ejemplo, puedes crear una instrucción que le pida al modelo que genere una descripción del producto en función de las imágenes y los atributos del producto.
  • Persistencia del orden de los fragmentos: Puedes fragmentar objetos y, luego, almacenar los fragmentos como un array de ObjectRef valores en una columna de tabla estándar para conservar su orden. Por ejemplo, puedes analizar imágenes de un video y, luego, almacenarlas como un array de valores ObjectRef, de modo que las imágenes permanezcan en el mismo orden en que aparecen en el video original.

Valores ObjectRef

Un valor ObjectRef es un valor STRUCT que usa el ObjectRef esquema. Puedes almacenar metadatos de objetos de Cloud Storage y un autorizador asociado en una tabla estándar de BigQuery creando una columna STRUCT o ARRAY<STRUCT> que use este formato. El valor del autorizador identifica la conexión de recursos de Cloud que BigQuery usa para acceder al objeto de Cloud Storage. Si configuras el autorizador en NULL, BigQuery usará tus credenciales de usuario final.

Usa valores ObjectRef cuando necesites integrar datos no estructurados en una tabla estándar. Por ejemplo, en una tabla de productos, puedes almacenar imágenes de productos en la misma fila con el resto de la información del producto agregando una columna que contenga un valor ObjectRef.

Crea y actualiza valores ObjectRef con las siguientes funciones de GoogleSQL:

  • OBJ.MAKE_REF: Crea un valor ObjectRef que contenga metadatos para un objeto de Cloud Storage.
  • OBJ.FETCH_METADATA: Recupera metadatos de Cloud Storage para un valor ObjectRef que se propaga parcialmente con valores uri y authorizer.

Para obtener más información, consulta Trabaja con valores ObjectRef.

Valores ObjectRefRuntime

Un valor ObjectRefRuntime es un valor JSON que usa el esquema ObjectRefRuntime. Un valor ObjectRefRuntime contiene los metadatos del objeto de Cloud Storage del valor ObjectRef que se usó para crearlo, un autorizador asociado, y URLs de acceso. Puedes usar las URLs de acceso para leer o modificar el objeto en Cloud Storage.

Usa valores ObjectRefRuntime para trabajar con datos de objetos en flujos de trabajo de análisis y transformación. Las URLs de acceso en los valores ObjectRefRuntime vencen después de 6 horas como máximo, aunque puedes configurar un tiempo de vencimiento más corto. Si conservas valores ObjectRefRuntime en cualquier lugar como parte de tu flujo de trabajo, debes actualizar estos datos con regularidad. Para conservar los metadatos de objetos, almacena ObjectRef valores y, luego, úsalos para generar ObjectRefRuntime valores cuando los necesites. No es necesario actualizar los valores ObjectRef, a menos que se modifiquen los objetos subyacentes en Cloud Storage.

Crea valores ObjectRefRuntime con la OBJ.GET_ACCESS_URL función.

Funciones generativas de IA

Genera texto, embeddings y valores escalares basados en ObjectRef o ObjectRefRuntime entrada con las siguientes funciones generativas de IA con modelos de Gemini:

Trabaja con datos multimodales en Python

Puedes analizar datos multimodales en Python con las clases y los métodos de BigQuery DataFrames.

DataFrames multimodales

Crea un DataFrame multimodal que integre datos estructurados y no estructurados con el método read_gbq: crea un DataFrame multimodal a partir de una tabla de objetos.

Para probarlo, consulta el instructivo de DataFrames multimodales en GitHub.

Métodos generativos de IA

Usa los siguientes métodos para realizar tareas generativas de IA en datos multimodales:

Tablas de objetos

Cualquier tabla de objetos nueva que crees tiene una columna ref que contiene un valor ObjectRef para el objeto determinado. La conexión que se usa para crear la tabla de objetos se usa para propagar los valores authorizer en la columna ref. Puedes usar la columna ref para propagar y actualizar valores ObjectRef en tablas estándar.

Conjuntos de datos de Storage Insights

Un conjunto de datos de Storage Insights es un conjunto de datos vinculado de BigQuery que puedes consultar para analizar y visualizar tus datos de Cloud Storage. La ref columna contiene ObjectRef valores que puedes usar para analizar datos y metadatos de objetos.

Limitaciones

Se aplican las siguientes limitaciones a las funciones de datos multimodales de BigQuery:

  • Si no especificas de forma explícita el nombre del proyecto que contiene la conexión en el campo authorizer de un valor ObjectRef, la conexión debe existir en el proyecto que contiene la tabla de objetos que la almacena o en el proyecto en el que se ejecuta la consulta que hace referencia al valor ObjectRef.
  • No puedes tener más de 20 conexiones de recursos de Cloud en el proyecto y la región en los que tu consulta accede a los datos de objetos como valores ObjectRef.
  • Puedes hacer referencia a valores ObjectRef de un máximo de cinco proyectos además del proyecto en el que ejecutas la consulta.

Costos

Se aplican los siguientes costos cuando se usan datos multimodales:

  • El almacenamiento de metadatos de objetos como valores ObjectRef en tablas estándar contribuye al costo de almacenamiento de BigQuery para la tabla.
  • Las consultas que se ejecutan en valores ObjectRef generan costos de procesamiento de BigQuery.
  • Los objetos nuevos que creas a partir de transformaciones de objetos generan costos de Cloud Storage.
  • Los datos nuevos que creas y conservas en BigQuery generan costos de almacenamiento de BigQuery.
  • El uso de funciones generativas de IA genera costos de Vertex AI.
  • El uso de UDF de Python de BigQuery y de métodos de DataFrames multimodales y transformaciones de objetos en BigQuery DataFrames genera costos de UDF de Python.

Para obtener más información, consulta las siguientes páginas de precios:

¿Qué sigue?