Analiza datos multimodales en BigQuery

En este documento, se describen las funciones de BigQuery que puedes usar para analizar datos multimodales. Algunas funciones están disponibles en la consola deTrusted Cloud y en 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 habilitar flujos de trabajo de análisis y transformación más sencillos para los datos multimodales.

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

Si quieres ver un instructivo paso a paso que usa la consola de Trusted Cloud , consultaCómo analizar datos multimodales con SQL. Para obtener un instructivo paso a paso que usa BigQuery DataFrames en Python, consulta Analiza datos multimodales en Python con BigQuery DataFrames.

Beneficios

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

  • Capacidad de composición: Puedes almacenar y administrar datos estructurados y no estructurados en la misma fila de tabla estándar con valores de ObjectRef. Por ejemplo, podrías 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 de ObjectRef, y puedes crear valores de ObjectRef como resultado de una acción de transformación en un objeto.
  • Uso de datos de objetos en instrucciones de IA generativa: Usa valores de ObjectRefRuntime como entrada para las funciones de IA generativa. Por ejemplo, puedes generar incorporaciones en datos de imágenes y texto de 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 compare dos imágenes de animales y, luego, muestre texto que indique si muestran el mismo tipo de animal.
  • 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 ObjectRef es un valor STRUCT que usa el formato ObjectRef. Puedes almacenar los metadatos de los 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.

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 está parcialmente completado con valores de uri y authorizer.

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

ObjectRefRuntime valores

Un valor de ObjectRefRuntime es un valor de JSON que usa el esquema ObjectRefRuntime. Un valor de ObjectRefRuntime contiene los metadatos del objeto de Cloud Storage del valor de 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, embeddings y valores escalares basados en la entrada de ObjectRefRuntime con las siguientes funciones de IA generativa y modelos de Gemini:

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

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 de Session:

Métodos de transformación de objetos

Transforma los datos del objeto con los siguientes métodos de 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, cualquier tabla de objetos nueva que crees tendrá 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 completar 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.

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, 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 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 Vertex AI.
  • 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?