Générez du texte à l'aide de la fonction ML.GENERATE_TEXT
Ce document explique comment créer un modèle distant BigQuery ML représentant un modèle Vertex AI hébergé. Le modèle Vertex AI hébergé peut être un modèle Vertex AI intégré textuel ou multimodal, ou un modèle Claude d'Anthropic.
Selon le modèle Vertex AI que vous choisissez, vous pouvez ensuite utiliser la fonction ML.GENERATE_TEXT
pour analyser les données non structurées dans les tables d'objet ou le texte dans les tables standard.
Autorisations requises
Pour créer une connexion, vous devez disposer du rôle IAM (Identity and Access Management) suivant :
roles/bigquery.connectionAdmin
Pour accorder des autorisations au compte de service de la connexion, vous devez disposer de l'autorisation suivante :
resourcemanager.projects.setIamPolicy
Pour créer le modèle à l'aide de BigQuery ML, vous devez disposer des autorisations IAM suivantes :
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.models.updateMetadata
Pour exécuter une inférence, vous devez disposer des autorisations suivantes :
bigquery.tables.getData
sur la tablebigquery.models.getData
sur le modèlebigquery.jobs.create
Avant de commencer
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Créer une connexion
Créez une connexion de ressource cloud et obtenez le compte de service de la connexion.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Pour créer une connexion, cliquez sur
Ajouter, puis sur Connexions aux sources de données externes.Dans la liste Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions distantes et BigLake (ressource Cloud).
Dans le champ ID de connexion, saisissez un nom pour votre connexion.
Cliquez sur Créer une connexion.
Cliquez sur Accéder à la connexion.
Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.
bq
Dans un environnement de ligne de commande, créez une connexion :
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Le paramètre
--project_id
remplace le projet par défaut.Remplacez les éléments suivants :
REGION
: votre région de connexionPROJECT_ID
: ID de votre projet Google CloudCONNECTION_ID
: ID de votre connexion
Lorsque vous créez une ressource de connexion, BigQuery crée un compte de service système unique et l'associe à la connexion.
Dépannage : Si vous obtenez l'erreur de connexion suivante, mettez à jour le Google Cloud SDK :
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Récupérez et copiez l'ID du compte de service pour l'utiliser lors d'une prochaine étape :
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Le résultat ressemble à ce qui suit :
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Ajoutez la section suivante à votre fichier main.tf
.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }
CONNECTION_ID
: ID de votre connexionPROJECT_ID
: ID de votre projet Google CloudREGION
: votre région de connexion
Accorder l'accès au compte de service
Attribuez le rôle d'utilisateur Vertex AI au compte de service de la connexion.
Si vous envisagez de spécifier le point de terminaison en tant qu'URL lors de la création du modèle distant (par exemple, endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/text-embedding-004'
), accordez ce rôle dans le projet que vous spécifiez dans l'URL.
Si vous envisagez de spécifier le point de terminaison à l'aide du nom du modèle lors de la création du modèle distant (par exemple endpoint = 'text-embedding-004'
), accordez ce rôle dans le projet dans lequel vous prévoyez de créer le modèle distant.
L'attribution du rôle dans un autre projet génère l'erreur bqcx-1234567890-xxxx@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource
.
Pour accorder le rôle, procédez comme suit :
Console
Accédez à la page IAM et administration.
Cliquez sur
Ajouter.La boîte de dialogue Ajouter des comptes principaux s'ouvre.
Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.
Dans le champ Sélectionner un rôle, sélectionnez Vertex AI, puis Utilisateur Vertex AI.
Cliquez sur Enregistrer.
gcloud
Utilisez la commande gcloud projects add-iam-policy-binding
.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Remplacez les éléments suivants :
PROJECT_NUMBER
: votre numéro de projetMEMBER
: ID du compte de service que vous avez copié précédemment
Activer le modèle Vertex AI
Cette étape n'est nécessaire que si vous utilisez un modèle Claude.
Dans la console Google Cloud, accédez à la page Model Garden de Vertex AI.
Recherchez le modèle Claude que vous souhaitez utiliser.
Cliquez sur la fiche de modèle.
Sur la page du modèle, cliquez sur Activer.
Remplissez les informations d'activation demandées, puis cliquez sur Suivant.
Dans la section Conditions d'utilisation, cochez la case.
Cliquez sur Accepter pour accepter les conditions d'utilisation et activer le modèle.
Créer un modèle distant BigQuery ML
Dans la console Google Cloud, accédez à la page BigQuery.
À l'aide de l'éditeur SQL, créez un modèle distant :
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION `PROJECT_ID.REGION.CONNECTION_ID` OPTIONS (ENDPOINT = 'ENDPOINT');
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données pour contenir le modèle. Cet ensemble de données doit se trouver dans le même emplacement que la connexion que vous utilisez.MODEL_NAME
: nom du modèleREGION
: région utilisée par la connexion.CONNECTION_ID
: ID de votre connexion BigQueryLorsque vous affichez les détails de la connexion dans la console Google Cloud, il s'agit de la valeur de la dernière section de l'ID de connexion complet affiché dans ID de connexion (par exemple,
projects/myproject/locations/connection_location/connections/myconnection
).ENDPOINT
: nom du modèle Vertex AI compatible à utiliser.Pour certains types de modèles, vous pouvez spécifier une version particulière du modèle. Pour en savoir plus sur les versions de modèle compatibles avec les différents types de modèles, consultez la page
ENDPOINT
.
Générer du texte à partir de données textuelles à l'aide d'une requête issue d'une table
Générez du texte à l'aide de la fonction ML.GENERATE_TEXT
avec un modèle distant et des données de requête provenant d'une colonne de tableau :
gemini-1.5-flash
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
gemini-1.5-pro
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
gemini-pro
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie une réponse courte et relativement probable.
- Aplatit la réponse JSON dans des colonnes distinctes.
- Récupère et renvoie des données Web publiques pour ancrer la réponse.
- Filtre les réponses non sécurisées à l'aide de deux paramètres de sécurité.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 100 AS max_output_tokens, 0.5 AS top_p, 40 AS top_k, TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Claude
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,4096]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. Si vous ne spécifiez pas de valeur, le modèle détermine une valeur appropriée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. Si vous ne spécifiez pas de valeur, le modèle détermine une valeur appropriée.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
text-bison
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,1024]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
text-bison32
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
text-unicorn
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table contenant la requête. Cette table doit avoir une colonne nomméeprompt
. Vous pouvez également utiliser un alias pour utiliser une colonne portant un nom différent.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,1024]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise la colonne
prompt
de la tableprompts
pour la requête. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Générer du texte à partir de données textuelles à l'aide d'une invite provenant d'une requête
Générez du texte à l'aide de la fonction ML.GENERATE_TEXT
avec un modèle distant et à l'aide d'une requête qui fournit les données de l'invite :
gemini-1.5-flash
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
gemini-1.5-pro
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
gemini-pro
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.GROUND_WITH_GOOGLE_SEARCH
: valeurBOOL
qui détermine si le modèle Vertex AI utilise l'ancrage avec la recherche Google lors de la génération des réponses. L'ancrage permet au modèle d'utiliser des informations supplémentaires provenant d'Internet lors de la génération d'une réponse, afin de rendre les réponses du modèle plus spécifiques et factuelles. Lorsqueflatten_json_output
et ce champ sont tous deux définis surTrue
, une colonneml_generate_text_grounding_result
supplémentaire est incluse dans les résultats, fournissant ainsi les sources utilisées par le modèle pour collecter des informations supplémentaires. La valeur par défaut estFALSE
.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour en savoir plus, consultez la définition des catégories de sécurité et du seuil de blocage.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Exemple 3
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Aplatit la réponse JSON dans des colonnes distinctes.
- Récupère et renvoie des données Web publiques pour ancrer la réponse.
- Filtre les réponses non sécurisées à l'aide de deux paramètres de sécurité.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Claude
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,4096]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. Si vous ne spécifiez pas de valeur, le modèle détermine une valeur appropriée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. Si vous ne spécifiez pas de valeur, le modèle détermine une valeur appropriée.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
text-bison
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,1024]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
text-bison32
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
text-unicorn
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèlePROMPT_QUERY
: fournit les données de la requête.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,1024]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est40
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.
Exemple 1
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle demande le résumé du texte dans la colonne
body
de la tablearticles
. - Elle renvoie le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemple 2
L'exemple suivant montre une requête avec ces caractéristiques :
- Elle utilise une requête pour créer les données de requête en concaténant les chaînes qui fournissent des préfixes de requête avec des colonnes de table.
- Renvoie une réponse courte.
- Elle ne renvoie pas le texte généré et les attributs de sécurité dans des colonnes distinctes.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Générer du texte à partir des données de la table d'objets
Générez du texte à l'aide de la fonction ML.GENERATE_TEXT
avec un modèle distant, en utilisant une table d'objets pour fournir le contenu à analyser et en fournissant les données de l'invite dans le paramètre prompt
:
gemini-1.5-flash
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(PROMPT AS prompt, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table d'objets contenant le contenu à analyser. Pour en savoir plus sur les types de contenu que vous pouvez analyser, consultez la section Entrée.Le bucket Cloud Storage utilisé par la table d'objets doit se trouver dans le même projet que celui où vous avez créé le modèle et où vous appelez la fonction
ML.GENERATE_TEXT
. Si vous souhaitez appeler la fonctionML.GENERATE_TEXT
dans un projet différent de celui qui contient le bucket Cloud Storage utilisé par la table d'objets, vous devez attribuer le rôle d'Administrateur de l'espace de stockage au niveau du bucket au compte de serviceservice-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.PROMPT
: requête à utiliser pour analyser le contenu.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour plus d'informations, reportez-vous à la définition de la catégorie de sécurité et du seuil de blocage.
Exemples
Cet exemple analyse le contenu vidéo d'une table d'objets nommée videos
et décrit le contenu de chaque vidéo:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.video_model`, TABLE `mydataset.videos`, STRUCT('What is happening in this video?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Cet exemple traduit et transcrit du contenu audio à partir d'une table d'objets nommée feedback
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Cet exemple classe le contenu d'un PDF à partir d'une table d'objets nommée invoices
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
gemini-1.5-pro
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(PROMPT AS prompt, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table d'objets contenant le contenu à analyser. Pour en savoir plus sur les types de contenu que vous pouvez analyser, consultez la section Entrée.Le bucket Cloud Storage utilisé par la table d'objets doit se trouver dans le même projet que celui où vous avez créé le modèle et où vous appelez la fonction
ML.GENERATE_TEXT
. Si vous souhaitez appeler la fonctionML.GENERATE_TEXT
dans un projet différent de celui qui contient le bucket Cloud Storage utilisé par la table d'objets, vous devez attribuer le rôle d'Administrateur de l'espace de stockage au niveau du bucket au compte de serviceservice-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.PROMPT
: requête à utiliser pour analyser le contenu.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,8192]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est128
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,2.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour plus d'informations, reportez-vous à la définition de la catégorie de sécurité et du seuil de blocage.
Exemples
Cet exemple analyse le contenu vidéo d'une table d'objets nommée videos
et décrit le contenu de chaque vidéo:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.video_model`, TABLE `mydataset.videos`, STRUCT('What is happening in this video?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Cet exemple traduit et transcrit du contenu audio à partir d'une table d'objets nommée feedback
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Cet exemple classe le contenu d'un PDF à partir d'une table d'objets nommée invoices
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
gemini-pro-vision
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(PROMPT AS prompt, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, SAFETY_SETTINGS AS safety_settings) );
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.DATASET_ID
: ID de l'ensemble de données contenant le modèle.MODEL_NAME
: nom du modèleTABLE_NAME
: nom de la table d'objets contenant le contenu à analyser. Pour en savoir plus sur les types de contenu que vous pouvez analyser, consultez la section Entrée.Le bucket Cloud Storage utilisé par la table d'objets doit se trouver dans le même projet que celui où vous avez créé le modèle et où vous appelez la fonction
ML.GENERATE_TEXT
. Si vous souhaitez appeler la fonctionML.GENERATE_TEXT
dans un projet différent de celui qui contient le bucket Cloud Storage utilisé par la table d'objets, vous devez attribuer le rôle d'Administrateur de l'espace de stockage au niveau du bucket au compte de serviceservice-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.PROMPT
: requête à utiliser pour analyser le contenu.TOKENS
: valeurINT64
qui définit le nombre maximal de jetons pouvant être générés dans la réponse. Cette valeur doit être comprise dans la plage[1,2048]
. Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses plus longues. La valeur par défaut est2048
.TEMPERATURE
: valeurFLOAT64
comprise dans la plage[0.0,1.0]
qui contrôle le degré de randomisation dans la sélection des jetons. La valeur par défaut est0.4
.Des valeurs inférieures pour
temperature
conviennent aux requêtes qui nécessitent une réponse plus déterministe et moins ouverte ou créative, tandis que des valeurs plus élevées pourtemperature
peuvent entraîner des résultats plus diversifiés ou créative. Une valeur0
pourtemperature
est déterministe, ce qui signifie que la réponse dont la probabilité est la plus élevée est toujours sélectionnée.TOP_K
: valeurINT64
comprise dans la plage[1,40]
qui détermine le pool initial de jetons pris en compte par le modèle pour la sélection. Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires. La valeur par défaut est32
.TOP_P
: une valeurFLOAT64
comprise dans la plage[0.0,1.0]
permet de déterminer la probabilité de sélection des jetons. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. La valeur par défaut est0.95
.FLATTEN_JSON
: valeurBOOL
qui détermine si le texte généré et les attributs de sécurité doivent être renvoyés dans des colonnes distinctes. La valeur par défaut estFALSE
.STOP_SEQUENCES
: valeurARRAY<STRING>
qui supprime les chaînes spécifiées si elles sont incluses dans les réponses du modèle. Les chaînes correspondent exactement, y compris la casse. La valeur par défaut est un tableau vide.SAFETY_SETTINGS
: valeurARRAY<STRUCT<STRING AS category, STRING AS threshold>>
qui configure les seuils de sécurité du contenu pour filtrer les réponses. Le premier élément de la structure spécifie une catégorie de préjudice, et le second élément de la structure spécifie un seuil de blocage correspondant. Le modèle filtre le contenu qui ne respecte pas ces paramètres. Vous ne pouvez spécifier chaque catégorie qu'une seule fois. Par exemple, vous ne pouvez pas spécifier à la foisSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
etSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Si aucun paramètre de sécurité n'est défini pour une catégorie donnée, le paramètre de sécuritéBLOCK_MEDIUM_AND_ABOVE
est utilisé.Les catégories compatibles sont les suivantes:
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
Les seuils acceptés sont les suivants :
BLOCK_NONE
(Limité)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(par défaut)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
Pour plus d'informations, reportez-vous à la définition de la catégorie de sécurité et du seuil de blocage.
Exemples
Cet exemple analyse le contenu vidéo d'une table d'objets nommée videos
et décrit le contenu de chaque vidéo:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.video_model`, TABLE `mydataset.videos`, STRUCT('What is happening in this video?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));