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 des entrées en langage naturel et utilisent des modèles Vertex AI 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érer des contenus originaux
- Analyser, détecter les sentiments et répondre à des questions sur du texte ou des données non structurées, telles que des images
- Résumer 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érer des embeddings pour rechercher du texte, des images et des vidéos similaires
- Évaluer les entrées afin de les classer par qualité, similarité ou autres critères
Les fonctions d'IA sont regroupées dans les catégories suivantes pour vous aider à effectuer ces tâches :
Fonctions d'IA à usage général : ces fonctions vous offrent un contrôle et une transparence totale sur le choix du modèle, du prompt et des paramètres à utiliser.
Effectuer une inférence LLM, par exemple pour répondre à des questions sur vos données
AI.GENERATEest 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_TEXTest une version deAI.GENERATEqui renvoie une table et qui est également compatible avec les modèles partenaires et les modèles ouverts.
Générer une sortie structurée, 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_TABLEest une version deAI.GENERATEqui renvoie une table, qui appelle un modèle distant et qui 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_DOUBLEouAI.GENERATE_INT.
Générer des embeddings pour la recherche sémantique et le clustering
AI.EMBED: crée un embedding à partir de données textuelles ou d'images.AI.GENERATE_EMBEDDING: fonction qui renvoie une table et qui ajoute une colonne de données textuelles, d'images, audio, vidéo ou de documents 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é. En mode optimisé (bêta), ces fonctions peuvent être mises à l'échelle pour des millions ou des milliards de lignes.
Filtrer vos données avec des conditions en langage naturel
AI.IF
Évaluer l'entrée, par exemple par qualité ou par sentiment
AI.SCORE
Classer l'entrée dans des catégories définies par l'utilisateur
AI.CLASSIFY
Fonctions spécifiques à une tâche : Ces fonctions utilisent les API d'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 totale sur le choix du modèle, du prompt et des paramètres à utiliser. Leur sortie 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 l'évaluation de la 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 Vertex AI Gemini 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 la SKU de l'ameublement soit associée à une description, 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 Vertex AI avec la fonction
AI.GENERATE_TEXT qui renvoie une table.
Vous pouvez utiliser les types de
modèles distants suivants :
Modèles distants sur l'un des modèles Gemini disponibles ou en version bêta pour analyser du contenu textuel, d'image, audio, vidéo ou PDF à partir de tables standards ou de tables d'objets avec un prompt que vous fournissez comme argument de fonction.
Modèles distants sur les modèles partenaires Anthropic Claude, Mistral AI ou Llama, ou sur les modèles ouverts compatibles, pour analyser un prompt que vous fournissez dans une requête ou à partir d'une colonne d'une table standard.
Consultez les rubriques suivantes pour essayer la génération de texte dans BigQuery ML :
- Générer du texte à l'aide d'un modèle Gemini et de la fonction
AI.GENERATE_TEXT. - Générer du texte à l'aide d'un modèle Gemma et de la fonction
AI.GENERATE_TEXT. - Analyser des images avec un modèle Gemini.
- Générer du texte à l'aide de la fonction
AI.GENERATE_TEXTavec vos données. - Régler un modèle à l'aide de vos données.
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 Vertex AI. 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 similaire à 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 une table contenant le nom, le numéro de téléphone, l'adresse, la demande et le devis d'un client à partir d'une transcription d'un appel téléphonique.
Vous pouvez générer des données structurées de différentes manières :
La
AI.GENERATEfonction appelle un point de terminaison Vertex AI et peut générer une valeurSTRUCTavec votre schéma personnalisé.Pour l'essayer, découvrez comment utiliser une sortie structurée lorsque vous appelez la fonction
AI.GENERATE.La fonction
AI.GENERATE_TABLEappelle un modèle distant et est une fonction qui renvoie une table et qui génère une table avec votre schéma personnalisé.Pour essayer de créer des données structurées, consultez Générer des données structurées à l'aide de la fonction
AI.GENERATE_TABLE.Pour un seul champ de sortie, vous pouvez utiliser l'une des fonctions d'inférence spécialisées suivantes :
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 pour 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, et permet également d'accéder à des données plus récentes que les données d'entraînement du modèle.
- Effectuer une recherche multimodale. Par exemple, utiliser une entrée 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 clustering en k-moyennes.
Pour en savoir plus sur la génération d'embeddings et leur utilisation 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, telles que le filtrage, la classification ou l'agrégation. Ces fonctions peuvent analyser des données textuelles, d'images, audio, vidéo ou PDF, à l'exception de AI.AGG, qui n'est compatible qu'avec les données textuelles et d'images. Ces fonctions utilisent Gemini et ne nécessitent aucune personnalisation. BigQuery utilise l'ingénierie des prompts 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 que BOOL, FLOAT64 ou STRING, et n'inclut pas d'informations d'état supplémentaires du modèle. Les fonctions d'IA gérées suivantes sont disponibles :
AI.IF: filtre les données textuelles ou multimodales, par exemple dans une clauseWHEREouJOIN, en fonction d'un prompt. Par exemple, vous pouvez filtrer les descriptions de produits en fonction de celles qui décrivent un article qui ferait un bon cadeau.AI.SCORE: évalue les entrées en fonction d'un prompt afin de classer les lignes par qualité, similarité ou autres critères. Vous pouvez utiliser cette fonction dans une clauseORDER BYpour extraire les K premiers éléments en fonction du score. Par exemple, vous pouvez trouver les 10 avis d'utilisateurs les plus positifs ou négatifs pour un produit.AI.CLASSIFY: classe le texte dans des catégories définies par l'utilisateur. Vous pouvez utiliser cette fonction dans une clauseGROUP BYpour regrouper les entrées en fonction des catégories que vous définissez. Par exemple, vous pouvez classer les tickets d'assistance selon qu'ils concernent la facturation, l'expédition, 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 vous pouvez 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 consulter un tutoriel de notebook expliquant comment utiliser les fonctions d'IA gérées et à usage général fonctions, consultez Analyse sémantique avec des fonctions d'IA.
Fonctions spécifiques à une tâche
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 :
- Traitement du langage naturel
- Traduction automatique
- Traitement de documents
- Transcription audio
- Vision par ordinateur
Pour en savoir plus, consultez Présentation des solutions spécifiques à une tâche.
Emplacements
Les emplacements compatibles pour les modèles de génération de texte et d'embedding varient en fonction du type et de la version du modèle que vous utilisez. Pour plus d'informations, consultez la section Emplacements.
Tarifs
Vous êtes facturé pour les ressources de calcul que vous utilisez pour exécuter des requêtes sur des modèles. Les modèles distants effectuent des appels aux modèles Vertex AI. Par conséquent, les requêtes sur les modèles distants entraînent également des frais de Vertex AI.
Pour en savoir plus, consultez Tarifs de BigQuery ML.
Suivre les coûts
Les fonctions d'IA générative de BigQuery fonctionnent en envoyant des requêtes à Vertex AI, ce qui peut entraîner des coûts. Pour suivre les coûts Vertex AI générés par une tâche que vous exécutez dans BigQuery, procédez comme suit :
- Affichez vos rapports de facturation dans Cloud Billing.
Utilisez des filtres pour affiner vos résultats.
Pour les services, sélectionnez Vertex AI.
Pour afficher les frais d'une tâche spécifique, filtrez par libellé.
Définissez la clé sur
bigquery_job_id_prefixet la valeur sur l' ID de tâche de votre tâche. Si votre ID de tâche comporte plus de 63 caractères, n'utilisez que les 63 premiers caractères. Si votre ID de tâche contient des caractères majuscules, remplacez-les par des minuscules. Vous pouvez également associer des tâches à un libellé personnalisé pour vous aider à les retrouver ultérieurement.
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 enregistrer l'intégralité de la requête et de la réponse envoyées à Vertex AI et reçues de Vertex AI, procédez comme suit :
Activez les journaux de requêtes-réponses dans Vertex AI. 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 enregistrer les requêtes exécutées dans la région
us, spécifiez laus-central1région dans votre requête. Pour enregistrer les requêtes exécutées dans la régioneu, spécifiez la régioneurope-west4dans votre requête.Exécutez une requête à l'aide d'une fonction d'IA qui appelle Vertex AI à l'aide du modèle pour lequel vous avez activé la journalisation à l'étape précédente.
Pour afficher la requête et la réponse Vertex AI complètes, interrogez votre table de journalisation pour les lignes où le
labels.bigquery_job_id_prefixchamp de lafull_requestcolonne 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 à la suivante :
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 des lignes 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) sont compatibles avec 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 inférieure (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 la tâche des résultats de la requête dans la Google Cloud console.
Si votre requête inclut une clause LIMIT, la limite est appliquée après que le modèle a traité un lot de lignes. Par conséquent, la proportion de valeurs NULL dans votre ensemble de résultats final peut sembler supérieure à la valeur max_error_ratio spécifiée.
Supposons, par exemple, que votre requête comporte une clause LIMIT 10 et une valeur 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 sortie visible contiendra 30 % de valeurs NULL.
Étape suivante
- Pour une présentation de l'IA et du ML dans BigQuery, consultez Présentation de l'IA et du ML dans BigQuery.
- Pour en savoir plus sur l'exécution d'inférences sur des modèles de machine learning, consultez la page Présentation de l'inférence de modèle.
- Pour en savoir plus sur les instructions et les fonctions SQL compatibles avec les modèles d'IA générative, consultez Parcours utilisateur de bout en bout pour les modèles d'IA générative.