Présentation de l'IA générative

Ce document décrit les fonctions d'intelligence artificielle (IA) générative compatibles avec BigQuery. Ces fonctions acceptent les entrées en langage naturel et utilisent des modèles Gemini Enterprise Agent Platform pré-entraînés et des modèles BigQuery intégrés.

BigQuery propose diverses fonctions d'IA pour vous aider à effectuer des tâches telles que les suivantes :

  • Générez des contenus créatifs.
  • Analysez du texte ou des données non structurées (comme des images), détectez les sentiments et répondez à des questions.
  • Résume les idées ou les impressions clés véhiculées par le contenu.
  • Extraire des données structurées à partir de texte
  • Classer du texte ou des données non structurées dans des catégories définies par l'utilisateur
  • Générez des embeddings pour rechercher du texte, des images et des vidéos similaires.
  • Évaluez les entrées pour les classer par qualité, similarité ou d'autres critères.

Les fonctions d'IA sont regroupées dans les catégories suivantes pour vous aider à accomplir ces tâches :

  • Fonctions d'IA à usage général : ces fonctions vous offrent un contrôle et une transparence totaux sur le choix du modèle, de l'invite et des paramètres à utiliser.

    • Effectuer une inférence LLM, par exemple pour répondre à des questions sur vos données

      • AI.GENERATE est la fonction d'inférence la plus flexible, qui vous permet d'analyser n'importe quelles données structurées ou non structurées.
      • AI.GENERATE_TEXT est une version à valeur tabulaire de AI.GENERATE qui prend également en charge les modèles partenaires et les modèles ouverts.
    • Générer des résultats structurés, par exemple en extrayant des noms, des adresses ou des descriptions d'objets à partir de texte, de documents ou d'images.

      • AI.GENERATE, lorsque vous spécifiez un schéma de sortie.
      • AI.GENERATE_TABLE est une version de AI.GENERATE qui renvoie une valeur de table, appelle un modèle distant et vous permet de spécifier un schéma de sortie personnalisé.
      • Si votre schéma de sortie ne comporte qu'un seul champ, vous pouvez utiliser l'une des fonctions spécialisées : AI.GENERATE_BOOL, AI.GENERATE_DOUBLE ou AI.GENERATE_INT.
    • Générer des embeddings pour la recherche sémantique et le clustering

      • AI.EMBED : créez un embedding à partir de données textuelles ou d'images.
      • AI.GENERATE_EMBEDDING : fonction table qui ajoute une colonne de données de texte, d'image, audio, vidéo ou de document intégrées à votre table.
  • Fonctions d'IA gérées : ces fonctions ont une syntaxe simplifiée et sont optimisées pour le coût et la qualité. Avec le mode optimisé (bêta), ces fonctions peuvent être mises à l'échelle pour traiter des millions ou des milliards de lignes.

    • AI.IF : filtrez vos données avec des conditions en langage naturel.

    • AI.SCORE : évaluer les entrées, par exemple en fonction de la qualité ou du sentiment.

    • AI.CLASSIFY : classifie les entrées dans des catégories définies par l'utilisateur.

    • AI.AGG : agrège les entrées pour résumer ou analyser vos données.

  • Fonctions utilitaires : utilisez la fonction AI.COUNT_TOKENS pour estimer le nombre de jetons dans une invite d'entrée avant d'exécuter une requête.

  • Fonctions spécifiques à une tâche : ces fonctions utilisent les API IA Cloud pour vous aider à effectuer des tâches telles que le traitement du langage naturel, la traduction automatique, le traitement de documents, la transcription audio et la vision par ordinateur.

Fonctions d'IA à usage général

Les fonctions d'IA à usage général vous offrent un contrôle et une transparence complets sur le choix du modèle, de l'invite et des paramètres à utiliser. Leur résultat inclut des informations détaillées sur l'appel au modèle, y compris l'état et la réponse complète du modèle, qui peuvent inclure des informations sur la note de sécurité ou les citations.

Effectuer une inférence LLM

La fonction AI.GENERATE est une fonction d'inférence flexible qui fonctionne en envoyant des requêtes à un modèle Gemini sur Gemini Enterprise Agent Platform et en renvoyant la réponse de ce modèle. Vous pouvez utiliser cette fonction pour analyser des données textuelles, d'images, audio, vidéo ou PDF. Par exemple, vous pouvez analyser des images d'ameublement pour générer du texte pour une colonne design_type, afin que le SKU d'ameublement ait une description associée, telle que mid-century modern ou farmhouse.

Vous pouvez effectuer des tâches d'IA générative à l'aide de modèles distants dans BigQuery ML pour référencer des modèles déployés ou hébergés dans Agent Platform avec la fonction de valeur de table AI.GENERATE_TEXT. Vous pouvez utiliser les types de modèles à distance suivants :

Utilisez les rubriques suivantes pour essayer la génération de texte dans BigQuery ML :

Pour certains modèles, vous pouvez éventuellement choisir de configurer le réglage supervisé, qui vous permet d'entraîner le modèle sur vos propres données afin de l'adapter à votre cas d'utilisation. Toutes les inférences s'effectuent dans Agent Platform. Les résultats sont stockés dans BigQuery.

Générer des données structurées

La génération de données structurées est très semblable à la génération de texte, sauf que vous pouvez mettre en forme la réponse du modèle en spécifiant un schéma SQL. Par exemple, vous pouvez générer un tableau contenant le nom, le numéro de téléphone, l'adresse, la demande et le devis d'un client à partir de la transcription d'un appel téléphonique.

Vous pouvez générer des données structurées de différentes manières :

Générer des embeddings

Un embedding est un vecteur numérique de grande dimension qui représente une entité donnée, comme un exemple de texte ou un fichier audio. La génération d'embeddings vous permet de capturer la sémantique de vos données de manière à faciliter le raisonnement et la comparaison des données.

Voici quelques cas d'utilisation courants de la génération d'embeddings :

  • Utiliser la génération augmentée par récupération (RAG) pour augmenter les réponses du modèle aux requêtes des utilisateurs en référençant des données supplémentaires provenant d'une source fiable. Le RAG offre une meilleure précision factuelle et une meilleure cohérence des réponses. Il permet également d'accéder à des données plus récentes que celles utilisées pour entraîner le modèle.
  • Effectuer une recherche multimodale. Par exemple, en utilisant une saisie de texte pour rechercher des images.
  • Effectuer une recherche sémantique pour trouver des éléments similaires à des fins de recommandation, de substitution et de déduplication des enregistrements.
  • Créer des embeddings à utiliser avec un modèle de k-moyennes pour le clustering.

Pour savoir comment générer des embeddings et les utiliser pour effectuer ces tâches, consultez Présentation des embeddings et de la recherche vectorielle.

Fonctions d'IA gérées

Les fonctions d'IA gérées simplifient les tâches de routine, comme le filtrage, la classification ou l'agrégation. Ces fonctions peuvent analyser des données textuelles, d'image, audio, vidéo ou PDF. Ces fonctions utilisent Gemini et ne nécessitent aucune personnalisation. BigQuery utilise le prompt engineering et peut sélectionner le modèle et les paramètres appropriés à utiliser pour la tâche spécifique afin d'optimiser la qualité et la cohérence de vos résultats. Chaque fonction renvoie une valeur scalaire, telle qu'un BOOL, un FLOAT64 ou un STRING, et n'inclut pas d'informations supplémentaires sur l'état du modèle. Les fonctions d'IA gérées suivantes sont disponibles :

  • AI.IF : filtrez les données textuelles ou multimodales, par exemple dans une clause WHERE ou JOIN, en fonction d'une requête. Par exemple, vous pouvez filtrer les descriptions de produits pour n'afficher que celles qui décrivent un article qui ferait un bon cadeau.
  • AI.SCORE : évaluez les entrées en fonction d'une requête pour classer les lignes par qualité, similarité ou autres critères. Vous pouvez utiliser cette fonction dans une clause ORDER BY pour extraire les K premiers éléments en fonction du score. Par exemple, vous pouvez trouver les 10 avis les plus positifs ou les plus négatifs pour un produit.
  • AI.CLASSIFY : classez le texte dans des catégories définies par l'utilisateur. Vous pouvez utiliser cette fonction dans une clause GROUP BY pour regrouper les entrées selon les catégories que vous définissez. Par exemple, vous pouvez classer les demandes d'assistance selon qu'elles concernent la facturation, la livraison, la qualité des produits ou autre chose.
  • AI.AGG : agrège les entrées en fonction d'instructions en langage naturel pour résumer ou analyser vos données. Par exemple, vous pouvez analyser les journaux des sessions d'application utilisateur pour déterminer où les clients rencontrent des difficultés, ou résumer le contenu d'un grand ensemble d'images.

Pour consulter un tutoriel contenant des exemples d'utilisation de ces fonctions, consultez Effectuer une analyse sémantique avec des fonctions d'IA gérées.

Pour obtenir un tutoriel sur l'utilisation des fonctions d'IA gérées et à usage général, consultez Analyse sémantique avec des fonctions d'IA.

Fonctions spécifiques aux tâches

En plus des fonctions plus générales décrites dans les sections précédentes, vous pouvez développer des solutions spécifiques à une tâche dans BigQuery ML à l'aide des API d'IA Cloud. Les tâches suivantes sont acceptées :

Pour en savoir plus, consultez Présentation des solutions spécifiques à une tâche.

Emplacements

Les zones géographiques acceptées pour les modèles de génération et d'embedding de texte varient en fonction du type et de la version du modèle que vous utilisez. Pour en savoir plus, consultez Emplacements.

BigQuery est compatible avec les modèles suivants :

  • gemini-3.1-flash-lite
  • gemini-3.5-flash
  • gemini-3.5-flash-lite
  • gemini-3.6-flash
  • gemini-3.7-flash
  • gemini-3.8-flash
Agent Platform n'est compatible avec les points de terminaison multirégionaux que pour ces modèles. Les points de terminaison régionaux ne sont pas acceptés. Si vous spécifiez un nom de point de terminaison court qui omet la région, tel que gemini-3.5-flash, BigQuery sélectionne un point de terminaison en fonction des règles suivantes :
  • Si votre requête est exécutée dans la région us ou dans une région unique aux États-Unis, BigQuery utilise le point de terminaison us.
  • Si votre requête est exécutée dans la région eu ou dans une région unique de l'UE autre que europe-west2 ou europe-west6, BigQuery utilise le point de terminaison eu.
  • Pour tous les autres emplacements, y compris europe-west2 et europe-west6, BigQuery utilise le point de terminaison global.
Pour spécifier un point de terminaison spécifique, utilisez un nom de point de terminaison multirégional complet dans l'un des formats suivants :
  • https://aiplatform.us.rep.googleapis.com/v1/projects/PROJECT_ID/locations/us/publishers/google/models/MODEL_ID
  • https://aiplatform.eu.rep.googleapis.com/v1/projects/PROJECT_ID/locations/eu/publishers/google/models/MODEL_ID
  • https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID
Si votre requête s'exécute dans la région asia-south1, vous devez utiliser le nom complet du point de terminaison global.

Limites

Dans un périmètre VPC Service Controls, les fonctions d'IA ne peuvent pas traiter les valeurs ObjectRef qui utilisent l'accès délégué. L'accès délégué génère une URL HTTPS signée pour l'objet, et Agent Platform bloque les récupérations HTTP et HTTPS pour les projets situés dans un périmètre. La fonction écrit l'erreur suivante dans le champ status de son résultat :

INVALID_ARGUMENT: HTTP links are not supported for requests restricted by VPCSC.

Étant donné que la colonne ref d'une table d'objets utilise toujours la connexion de la table d'objets comme autorisateur, la transmission de ref à une fonction AI à l'intérieur d'un périmètre renvoie toujours cette erreur. Pour analyser l'objet, transmettez plutôt une valeur OBJ.MAKE_REF(uri) à un seul argument, qui utilise l'accès direct et envoie l'URI Cloud Storage au modèle sans générer d'URL signée.

Tarifs

Les ressources de calcul que vous utilisez pour exécuter des requêtes sur des modèles vous sont facturées. Les modèles distants effectuent des appels aux modèles Agent Platform. Les requêtes envoyées à des modèles distants entraînent donc également des frais de la part d'Agent Platform.

Pour en savoir plus, consultez la page Tarifs de BigQuery ML.

Suivre l'utilisation des jetons

Lorsque vous appelez une fonction d'IA générative qui utilise un modèle Gemini autre qu'un modèle d'embedding, vous pouvez afficher le nombre total de chaque type de jeton traité par la requête. Dans le volet Résultats de la requête, cliquez sur Informations sur la tâche. Les nombres suivants s'affichent, ventilés par modalité le cas échéant :

  • Nombre de jetons d'entrée : nombre total de jetons d'entrée pour toutes les fonctions d'IA générative appelées dans la requête.
  • Nombre de jetons de sortie. Nombre total de jetons dans toutes les réponses candidates générées par la requête.
  • Nombre de jetons de réflexion. Nombre total de jetons inclus dans les réflexions générées par le modèle, le cas échéant.
  • Nombre de jetons mis en cache. Nombre total de jetons d'entrée mis en cache de manière implicite par la requête.

Suivre les coûts

Les fonctions d'IA générative de BigQuery fonctionnent en envoyant des requêtes à Gemini Enterprise Agent Platform, ce qui peut entraîner des coûts. Pour estimer le nombre de jetons d'entrée avant d'exécuter une requête, utilisez la fonction AI.COUNT_TOKENS. Pour suivre les coûts Agent Platform générés par un job que vous exécutez dans BigQuery, procédez comme suit :

  1. Affichez vos rapports sur la facturation dans Cloud Billing.
  2. Utilisez des filtres pour affiner vos résultats.

    Pour les services, sélectionnez Vertex AI.

  3. Pour afficher les frais d'un job spécifique, filtrez par libellé.

    Définissez la clé sur bigquery_job_id_prefix et la valeur sur l'ID du job. Si votre ID de job comporte plus de 63 caractères, n'utilisez que les 63 premiers. Si votre ID de job contient des majuscules, remplacez-les par des minuscules. Vous pouvez également associer des jobs à un libellé personnalisé pour les retrouver facilement plus tard.

L'affichage de certains frais dans Cloud Billing peut prendre jusqu'à 24 heures.

Surveillance

Pour mieux comprendre le comportement des fonctions d'IA que vous appelez dans BigQuery, vous pouvez activer la journalisation des requêtes et des réponses. Pour consigner l'intégralité de la requête et de la réponse envoyées à Agent Platform et reçues de cette plate-forme, procédez comme suit :

  1. Activez les journaux des requêtes-réponses dans Gemini Enterprise Agent Platform. Les journaux sont stockés dans BigQuery. Vous devez activer la journalisation séparément pour chaque modèle de fondation et chaque région. Pour consigner les requêtes exécutées dans la région us, spécifiez la région us-central1 dans votre requête. Pour consigner les requêtes exécutées dans la région eu, spécifiez la région europe-west4 dans votre requête.

  2. Exécutez une requête à l'aide d'une fonction d'IA qui appelle Agent Platform à l'aide du modèle pour lequel vous avez activé la journalisation à l'étape précédente.

  3. Pour afficher la requête et la réponse complètes de l'Agent Platform, interrogez votre table de journalisation pour les lignes où le champ labels.bigquery_job_id_prefix de la colonne full_request correspond aux 63 premiers caractères de votre ID de tâche. Vous pouvez également utiliser un libellé de requête personnalisé pour vous aider à retrouver la requête dans les journaux.

    Par exemple, vous pouvez utiliser une requête semblable à celle-ci :

    SELECT *
    FROM `my_project.my_dataset.request_response_logging`
    WHERE JSON_VALUE(full_request, '$.labels.bigquery_job_id_prefix') = 'bquxjob_123456...';
    

Gestion des erreurs

Des erreurs au niveau des lignes, telles que RESOURCE_EXHAUSTED, peuvent se produire si une fonction d'IA dépasse le quota ou les limites du service distant. Lorsqu'une erreur au niveau de la ligne se produit, la fonction renvoie NULL pour cette ligne, ce qui peut entraîner des résultats de requête incomplets.

Toutes les fonctions d'IA peuvent rencontrer ces erreurs. Toutefois, les fonctions d'IA gérées (AI.IF, AI.CLASSIFY et AI.SCORE) acceptent l'argument max_error_ratio pour vous aider à les gérer. Utilisez cet argument pour définir un seuil d'échec qui permet à la requête de réussir malgré les échecs au niveau des lignes.

La valeur par défaut de max_error_ratio est 1.0. Pour réduire votre tolérance aux erreurs, définissez-la sur une valeur plus petite (par exemple, 0.2) afin que la requête échoue au lieu de réussir avec des échecs partiels. Pour en savoir plus sur la syntaxe, consultez la documentation de référence pour AI.IF, AI.CLASSIFY ou AI.SCORE.

Si la requête réussit avec des échecs partiels, BigQuery renvoie un avertissement. Pour en savoir plus sur les erreurs de fonction, consultez le champ Erreurs de fonction d'IA générative dans l'onglet Informations sur le job des résultats de la requête dans la console Google Cloud .

Si votre requête inclut une clause LIMIT, la limite est appliquée après le traitement d'un lot de lignes par le modèle. Par conséquent, la proportion de valeurs NULL dans votre ensemble de résultats final peut sembler plus élevée que la valeur max_error_ratio spécifiée.

Par exemple, supposons que votre requête comporte une clause LIMIT 10 et un max_error_ratio de 0.2. Le modèle peut traiter 20 lignes avant que la limite ne soit appliquée. Si 3 de ces 20 lignes échouent, le taux d'erreur est de 0.15 (15%), ce qui est inférieur au seuil de 20 %. Toutefois, si le sous-ensemble de lignes sélectionné par la clause LIMIT inclut les trois lignes ayant échoué, votre résultat visible contiendra 30% de valeurs NULL.

Étapes suivantes