Analyser des données multimodales dans BigQuery
Ce document décrit les fonctionnalités BigQuery que vous pouvez utiliser pour analyser les données multimodales. Certaines fonctionnalités sont disponibles dans la consoleGoogle Cloud et l'outil de ligne de commande bq, tandis que d'autres sont disponibles à l'aide de BigQuery DataFrames en Python. Vous pouvez utiliser plusieurs de ces fonctionnalités ensemble pour faciliter les workflows d'analyse et de transformation des données multimodales.
Les fonctionnalités de données multimodales de BigQuery vous permettent d'effectuer les tâches suivantes:
- Intégrez des données non structurées dans des tables standards à l'aide de valeurs
ObjectRef
. - Utilisez des valeurs
ObjectRefRuntime
pour travailler avec des données non structurées dans des workflows d'analyse et de transformation. - Générez du texte, des représentations vectorielles continues et des valeurs scalaires à partir de données multimodales à l'aide des fonctions d'IA générative de BigQuery ML avec des modèles Gemini.
- Créez des DataFrames multimodaux dans BigQuery DataFrames.
- Transformez des images et segmentez des fichiers PDF à l'aide des méthodes
Series.BlobAccessor
de BigQuery DataFrames. - Générez du texte et des embeddings à partir de données multimodales à l'aide des méthodes d'IA générative de BigQuery DataFrames.
Pour obtenir un tutoriel détaillé qui utilise la console Google Cloud , consultez Analyser des données multimodales avec SQL. Pour suivre un tutoriel détaillé qui utilise BigQuery DataFrames en Python, consultez Analyser des données multimodales en Python avec BigQuery DataFrames.
Avantages
Les fonctionnalités de données multimodales de BigQuery offrent les avantages suivants:
- Composabilité: vous pouvez stocker et gérer des données structurées et non structurées dans la même ligne de table standard à l'aide de valeurs
ObjectRef
. Par exemple, vous pouvez stocker les images d'un produit dans la même ligne que le reste des informations le concernant. Vous pouvez utiliser des fonctions SQL standard pour créer et mettre à jour des colonnes contenant des valeursObjectRef
, et vous pouvez créer des valeursObjectRef
en tant que sortie d'une action de transformation sur un objet. - Utiliser des données d'objet dans les requêtes d'IA générative: utilisez des valeurs
ObjectRefRuntime
comme entrée pour les fonctions d'IA générative. Par exemple, vous pouvez générer des représentations vectorielles continues sur des données d'image et de texte issues de la même table. Pour la génération de texte et de valeurs scalaires, vous pouvez également faire référence à plusieurs objets dans l'invite que vous envoyez à un modèle. Par exemple, vous pouvez créer une requête qui demande au modèle de comparer deux images d'animaux, puis de renvoyer du texte indiquant si elles montrent le même type d'animal. - Persistance de l'ordre des blocs: vous pouvez diviser des objets en blocs, puis les stocker en tant que tableau de valeurs
ObjectRef
dans une colonne de table standard afin de conserver leur ordre. Par exemple, vous pouvez analyser les images d'une vidéo, puis les stocker en tant que tableau de valeursObjectRef
, de sorte qu'elles restent dans le même ordre qu'elles apparaissent dans la vidéo d'origine.
ObjectRef
valeurs
Une valeur ObjectRef
est une valeur STRUCT
qui utilise le format ObjectRef
.
Vous pouvez stocker les métadonnées d'un objet Cloud Storage et un authentificateur associé dans une table standard BigQuery en créant une colonne STRUCT
ou ARRAY<STRUCT>
qui utilise ce format.
La valeur de l'autoriseur identifie la connexion de ressources Cloud que BigQuery utilise pour accéder à l'objet Cloud Storage.
Utilisez des valeurs ObjectRef
lorsque vous devez intégrer des données non structurées dans un tableau standard. Par exemple, dans une table de produits, vous pouvez stocker les images des produits sur la même ligne que le reste des informations sur le produit en ajoutant une colonne contenant une valeur ObjectRef
.
Créez et mettez à jour des valeurs ObjectRef
à l'aide des fonctions GoogleSQL suivantes:
OBJ.MAKE_REF
: créez une valeurObjectRef
contenant des métadonnées pour un objet Cloud Storage.OBJ.FETCH_METADATA
: extrait les métadonnées Cloud Storage pour une valeurObjectRef
partiellement renseignée avec des valeursuri
etauthorizer
.
Pour en savoir plus, consultez la section Spécifier des colonnes ObjectRef
dans des schémas de table.
ObjectRefRuntime
valeurs
Une valeur ObjectRefRuntime
est une valeur JSON
qui utilise le schéma ObjectRefRuntime
.
Une valeur ObjectRefRuntime
contient les métadonnées de l'objet Cloud Storage à partir de la valeur ObjectRef
utilisée pour le créer, un authorizeur associé et des URL d'accès. Vous pouvez utiliser les URL d'accès pour lire ou modifier l'objet dans Cloud Storage.
Utilisez des valeurs ObjectRefRuntime
pour travailler avec des données d'objet dans les workflows d'analyse et de transformation. Les URL d'accès des valeurs ObjectRefRuntime
expirent au maximum au bout de six heures, bien que vous puissiez configurer un délai d'expiration plus court. Si vous conservez des valeurs ObjectRefRuntime
n'importe où dans le cadre de votre workflow, vous devez actualiser ces données régulièrement. Pour conserver les métadonnées des objets, stockez plutôt des valeurs ObjectRef
, puis utilisez-les pour générer des valeurs ObjectRefRuntime
lorsque vous en avez besoin. Les valeurs ObjectRef
n'ont pas besoin d'être actualisées, sauf si les objets sous-jacents de Cloud Storage sont modifiés.
Créez des valeurs ObjectRefRuntime
à l'aide de la fonction OBJ.GET_ACCESS_URL
.
Fonctions d'IA générative
Générez du texte, des représentations vectorielles continues et des valeurs scalaires en fonction de l'entrée ObjectRefRuntime
à l'aide des fonctions d'IA générative suivantes avec des modèles Gemini:
ML.GENERATE_TEXT
AI.GENERATE_TABLE
AI.GENERATE
AI.GENERATE_BOOL
AI.GENERATE_DOUBLE
AI.GENERATE_INT
ML.GENERATE_EMBEDDING
Pour toutes les fonctions, à l'exception de ML.GENERATE_EMBEDDING
, vous pouvez fournir des valeurs ObjectRefRuntime
sous forme de valeurs uniques ou dans des tableaux.
ML.GENERATE_EMBEDDING
n'accepte que des valeurs uniques.
Travailler avec des données multimodales en Python
Vous pouvez analyser des données multimodales dans Python à l'aide des classes et des méthodes BigQuery DataFrames.
DataFrames multimodaux
Créez un DataFrame multimodal qui intègre des données structurées et non structurées à l'aide des méthodes Session
suivantes:
- Méthode
from_glob_path
: créez un DataFrame multimodal à partir d'un bucket Cloud Storage. - Méthode
read_gbq_object_table
: crée un DataFrame multimodal à partir d'une table d'objets.
Méthodes de transformation d'objets
Transformez les données d'objet à l'aide des méthodes Series.BlobAccessor
suivantes:
- Méthode
pdf_chunk
: découpe des objets PDF à partir d'un DataFrame multimodal. Les méthodes suivantes permettent de transformer des objets Image à partir d'un DataFrame multimodal:
Méthodes d'IA générative
Utilisez les méthodes suivantes pour effectuer des tâches d'IA générative sur des données multimodales:
- Méthode
predict
de la classeGeminiTextGenerator
: génère du texte à partir de données multimodales. - Méthode
predict
de la classeMultimodalEmbeddingGenerator
: génère des embeddings basés sur des données multimodales.
Tables d'objets
Si vous figurez sur la liste d'autorisation pour l'aperçu des données multimodales, toutes les nouvelles tables d'objets que vous créez comportent une colonne ref
contenant une valeur ObjectRef
pour l'objet donné. La connexion utilisée pour créer la table d'objets est utilisée pour renseigner les valeurs authorizer
dans la colonne ref
. Vous pouvez utiliser la colonne ref
pour renseigner et actualiser les valeurs ObjectRef
dans les tables standards.
Limites
Les limites suivantes s'appliquent aux éléments géographiques de données multimodaux BigQuery:
- Vous devez exécuter toute requête qui fait référence à des valeurs
ObjectRef
dans le même projet que la table qui contient les valeursObjectRef
. - Vous ne pouvez pas avoir plus de 20 connexions dans le projet et la région où vous exécutez des requêtes qui font référence à des valeurs
ObjectRef
ouObjectRefRuntime
. Par exemple, si vous exécutez les requêtes dansasia-east1
dansmyproject
, vous ne pouvez pas avoir plus de 20 connexions dansasia-east1
dansmyproject
.
Coûts
Les coûts suivants s'appliquent lorsque vous utilisez des données multimodales:
- Le stockage des métadonnées d'objet en tant que valeurs
ObjectRef
dans les tables standards contribue au coût de stockage BigQuery de la table. - Les requêtes exécutées sur des valeurs
ObjectRef
entraînent des coûts de calcul BigQuery. - Les nouveaux objets que vous créez à partir de transformations d'objets entraînent des coûts Cloud Storage.
- Les nouvelles données que vous créez et conservez dans BigQuery entraînent des frais de stockage BigQuery.
- L'utilisation des fonctions d'IA générative entraîne des coûts Vertex AI.
- L'utilisation de fonctions définies par l'utilisateur Python BigQuery, ainsi que des méthodes de DataFrames multimodaux et de transformations d'objets dans BigQuery DataFrames, entraîne des coûts de fonction définie par l'utilisateur Python.
Pour en savoir plus, consultez les pages des tarifs suivantes:
- Tarifs de BigQuery
- Tarifs des fonctions définies par l'utilisateur Python de BigQuery
- Tarification de Vertex AI
- Tarifs de Cloud Storage
Étape suivante
- Spécifiez des colonnes
ObjectRef
dans des schémas de table. - Analyser des données multimodales avec SQL
- Analysez des données multimodales en Python avec BigQuery DataFrames.
- En savoir plus sur l'IA générative dans BigQuery ML
- En savoir plus sur les DataFrames BigQuery