Analiza datos multimodales en BigQuery

En este documento, se describen las funciones de BigQuery que puedes usar para analicen datos multimodales. Algunas funciones están disponibles en la console deGoogle Cloud y la herramienta de línea de comandos de bq, y otras están disponibles con BigQuery DataFrames en Python. Puedes usar muchas de estas funciones en conjunto para facilitar los flujos de trabajo de análisis y transformación de datos multimodales.

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

Si quieres obtener un instructivo paso a paso que use la consola de Google Cloud , consulta Cómo analizar datos multimodales con SQL. Para obtener un instructivo paso a paso que use BigQuery DataFrames en Python, consulta Cómo analizar datos multimodales en Python con BigQuery DataFrames.

Beneficios

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

  • Componibilidad: Puedes almacenar y administrar datos estructurados y no estructurados en la misma fila de la tabla estándar con los valores ObjectRef. Por ejemplo, podrías almacenar las imágenes de un producto en la misma fila que el resto de la información del producto. Puedes usar funciones SQL estándar para crear y actualizar columnas que contengan valores ObjectRef, y puedes crear valores ObjectRef como el resultado de una acción de transformación en un objeto.
  • Cómo usar datos de objetos en instrucciones de IA generativa: Usa valores ObjectRefRuntime como entrada para las funciones de IA generativa. Por ejemplo, puedes generar incorporaciones en datos de imagen y texto de la misma tabla. Para la generación de valores escalares y de texto, 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 solicite al modelo que compare dos imágenes de animales y, luego, muestre un texto que indique si muestran el mismo tipo de animal.
  • Persistencia del orden de los fragmentos: Puedes dividir 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, 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.

ObjectRef valores

Un valor ObjectRef es un valor STRUCT que usa el formato ObjectRef. Para almacenar metadatos de objetos de Cloud Storage y un autorizador asociado en una tabla estándar de BigQuery, crea una columna STRUCT o ARRAY<STRUCT> que use este formato. El valor del autorizador identifica la conexión de recursos de Cloud que usa BigQuery para acceder al objeto de Cloud Storage.

Usa valores ObjectRef cuando necesites integrar datos no estructurados en una tabla estándar. Por ejemplo, en una tabla de productos, puedes almacenar las imágenes de los productos en la misma fila con el resto de la información del producto si agregas 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 los metadatos de Cloud Storage para un valor ObjectRef que se propaga parcialmente con valores uri y authorizer.

Para obtener más información, consulta Especifica columnas ObjectRef en esquemas de tablas.

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 las 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 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 cualquier lugar como parte de tu flujo de trabajo, debes actualizar estos datos con regularidad. Para conservar los metadatos de los objetos, almacena los valores ObjectRef y, luego, úsalo para generar valores 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 ObjectRefRuntime con la función OBJ.GET_ACCESS_URL.

Funciones generativas de IA

Genera texto, incorporaciones y valores escalares basados en la entrada ObjectRefRuntime con las siguientes funciones de IA generativa con modelos de Gemini:

Para todas las funciones, excepto ML.GENERATE_EMBEDDING, puedes proporcionar valores ObjectRefRuntime como valores individuales o en arrays. ML.GENERATE_EMBEDDING solo acepta valores individuales.

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 los siguientes métodos Session:

Métodos de transformación de objetos

Transforma los datos de objetos con los siguientes métodos Series.BlobAccessor:

Métodos de IA generativa

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

Tablas de objetos

Si estás en la lista de entidades permitidas para la vista previa de datos multimodales, 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 propagar y actualizar los valores de ObjectRef en tablas estándar.

Limitaciones

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

  • Debes ejecutar cualquier consulta que haga referencia a valores de ObjectRef en el mismo proyecto que la tabla que contiene los valores de ObjectRef.
  • No puedes tener más de 20 conexiones en el proyecto y la región en los que ejecutas consultas que hacen referencia a valores de ObjectRef o ObjectRefRuntime. Por ejemplo, si ejecutas las consultas en asia-east1 en myproject, entonces no puedes tener más de 20 conexiones en asia-east1 en myproject.

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 de 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 de IA generativa genera costos de Vertex AI.
  • El uso de UDF de Python de BigQuery y 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?