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:
- Integra datos no estructurados en tablas estándar con valores
ObjectRef
. - Trabajar con datos no estructurados en flujos de trabajo de análisis y transformación con valores
ObjectRefRuntime
- Genera texto, incorporaciones y valores escalares a partir de datos multimodales con las funciones de IA generativa de BigQuery ML con modelos de Gemini.
- Crea DataFrames multimodales en BigQuery DataFrames.
- Transforma imágenes y divide archivos PDF con los métodos
Series.BlobAccessor
de BigQuery DataFrames. - Genera texto y incorporaciones a partir de datos multimodales con los métodos de IA generativa de BigQuery DataFrames.
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 valoresObjectRef
, y puedes crear valoresObjectRef
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 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
.
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 valorObjectRef
que contenga metadatos para un objeto de Cloud Storage.OBJ.FETCH_METADATA
: Recupera los metadatos de Cloud Storage para un valorObjectRef
que se propaga parcialmente con valoresuri
yauthorizer
.
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:
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 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é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 de objetos con los siguientes métodos 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 basadas 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 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
, entonces 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 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:
- 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 BigQuery DataFrames.