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:
- Integra datos no estructurados en tablas estándar con valores
ObjectRef
. - Trabaja con datos no estructurados en flujos de trabajo de análisis y transformación usando valores de
ObjectRefRuntime
. - Genera texto, incorporaciones y valores escalares a partir de datos multimodales con las funciones de IA generativa de BigQuery ML y los modelos de Gemini.
- Crea DataFrames multimodales en BigQuery DataFrames.
- Transforma imágenes y divide archivos PDF en fragmentos con los métodos de BigQuery DataFrames
Series.BlobAccessor
. - Genera texto y obtén incorporaciones a partir de datos multimodales con los métodos de IA generativa de BigQuery DataFrames.
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 deObjectRef
, y puedes crear valores deObjectRef
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 valoresObjectRef
, 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 deObjectRef
que contenga metadatos para un objeto de Cloud Storage.OBJ.FETCH_METADATA
: Recupera los metadatos de Cloud Storage para un valor deObjectRef
que está parcialmente completado con valores deuri
yauthorizer
.
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:
ML.GENERATE_TEXT
AI.GENERATE_TABLE
AI.GENERATE
AI.GENERATE_BOOL
AI.GENERATE_DOUBLE
AI.GENERATE_INT
ML.GENERATE_EMBEDDING
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étodo
from_glob_path
: Crea un DataFrame multimodal a partir de un bucket de Cloud Storage. - Método
read_gbq_object_table
: Crea un DataFrame multimodal a partir de una tabla de objetos.
Métodos de transformación de objetos
Transforma los datos del objeto con los siguientes métodos de Series.BlobAccessor
:
- Método
pdf_chunk
: Divide objetos PDF de un DataFrame multimodal. Los siguientes métodos para transformar objetos de imagen de un DataFrame multimodal:
Métodos de IA generativa
Usa los siguientes métodos para realizar tareas de IA generativa en datos multimodales:
- Método
predict
de la claseGeminiTextGenerator
: Genera texto basado en datos multimodales. - Método
predict
de la claseMultimodalEmbeddingGenerator
: Genera embeddings basados 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 deObjectRef
. - 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
oObjectRefRuntime
. Por ejemplo, si ejecutas las consultas enasia-east1
enmyproject
, no puedes tener más de 20 conexiones enasia-east1
enmyproject
.
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:
- Precios de BigQuery
- Precios de las UDF de Python de BigQuery
- Precios de Vertex AI
- Precios de Cloud Storage
¿Qué sigue?
- Especifica columnas
ObjectRef
en esquemas de tablas. - Analiza datos multimodales con SQL.
- Analiza datos multimodales en Python con BigQuery DataFrames.
- Obtén más información sobre la IA generativa en BigQuery ML.
- Obtén más información sobre los BigQuery DataFrames.