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 a través de BigQuery DataFrames.

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

  • Integra los datos no estructurados almacenados en Cloud Storage como otra columna junto con los datos estructurados en las tablas estándar de BigQuery representando los datos no estructurados como valores ObjectRef.
  • Genera anotaciones, incorporaciones y valores escalares a partir de datos multimodales con las funciones de IA generativa de BigQuery ML y los modelos de Gemini.
  • Genera anotaciones, incorporaciones y valores escalares a partir de datos multimodales creando DataFrames multimodales en BigQuery DataFrames y usando bibliotecas de Python.

Para ver un instructivo paso a paso que usa la Google Cloud 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 tabla estándar con valores de 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 de SQL estándar 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.
  • Agregar varios fragmentos de datos no estructurados en instrucciones de IA generativa: Agrega varios valores de ObjectRef como entrada a las funciones de IA generativa. Por ejemplo, puedes generar incorporaciones 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, podrías crear una instrucción que le pida al modelo que genere una descripción del producto basada en imágenes y atributos del producto.
  • Persistencia del orden de los fragmentos: Puedes fragmentar objetos y, luego, almacenar los fragmentos como un array de valores ObjectRef en una columna de tabla estándar para conservar su orden. Por ejemplo, podrías 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.

ObjectRef valores

Un valor de ObjectRef es un valor de STRUCT que usa el esquema ObjectRef. 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 como 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 de ObjectRef con las siguientes funciones de GoogleSQL:

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

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

ObjectRefRuntime valores

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

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

Funciones generativas de IA

Genera texto, incorporaciones y valores escalares basados en la entrada ObjectRef con las siguientes funciones de IA generativa y los 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 de IA generativa

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

Tablas de objetos

Todas las tablas de objetos nuevas que crees tendrán 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 de authorizer en la columna ref. Puedes usar la columna ref para completar y actualizar los valores de ObjectRef en las tablas estándar.

Conjuntos de datos de Storage Insights

Un conjunto de datos de Storage Insights es un conjunto de datos de BigQuery vinculado que puedes consultar para analizar y visualizar tus datos de Cloud Storage. La columna ref contiene valores de ObjectRef que puedes usar para analizar los datos y los metadatos de los 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 de ObjectRef.
  • Puedes hacer referencia a valores de ObjectRef de hasta 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 de 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 crees y conserves en BigQuery generarán costos de almacenamiento de BigQuery.
  • El uso de funciones de IA generativa genera costos de Gemini Enterprise Agent Platform.
  • El uso de UDF de Python de BigQuery, así como de DataFrames multimodales y métodos de transformación 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?