Traduire du texte avec la fonction ML.TRANSLATE
Ce document explique comment utiliser la fonction ML.TRANSLATE
avec un modèle distant pour traduire du texte à partir d'une table BigQuery standard.
Pour en savoir plus sur l'inférence de modèle dans BigQuery ML, consultez la page Présentation de l'inférence de modèle.
Pour en savoir plus sur les types de modèles compatibles avec chaque instruction et fonction SQL, ainsi qu'avec toutes les instructions et fonctions SQL pour chaque type de modèle, consultez la section Parcours d'utilisateur de bout en bout pour chaque modèle.
Autorisations requises
Pour créer une connexion, vous devez être inscrit au rôle 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 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
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
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 API, and Cloud Translation APIs.
-
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 API, and Cloud Translation 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
Sélectionnez l'une des options suivantes :
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 Service Usage, puis Consommateur Service Usage.
Cliquez sur Ajouter un autre rôle.
Dans le champ Sélectionner un rôle, sélectionnez BigQuery, puis Utilisateur de connexion BigQuery.
Cliquez sur Ajouter un autre rôle.
Dans le champ Sélectionner un rôle, sélectionnez Cloud Translation, puis Utilisateur de l'API Cloud Translation.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/serviceusage.serviceUsageConsumer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/bigquery.connectionUser' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/cloudtranslate.user' --condition=None
Remplacez les éléments suivants :
PROJECT_NUMBER
: votre numéro de projet.MEMBER
: ID du compte de service que vous avez copié précédemment
L'échec de l'attribution de l'autorisation génère une erreur.
Créer un modèle
Créez un modèle distant avec une valeur REMOTE_SERVICE_TYPE
de CLOUD_AI_TRANSLATE_V3
:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION PROJECT_ID.REGION.CONNECTION_ID OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_TRANSLATE_V3');
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 connexion, par exemplemyconnection
Lorsque 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
).
Traduire du texte
Traduisez du texte avec la fonction ML.TRANSLATE
:
SELECT * FROM ML.TRANSLATE( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, { TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (QUERY) }, STRUCT('MODE' AS translate_mode, ['LANGUAGE' AS target_language_code]) );
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 le texte à traduire dans une colonne nomméetext_content
. Si le texte se trouve dans une colonne portant un nom différent, spécifieztext_content
comme alias pour cette colonne.QUERY
: requête contenant le texte à traduire dans une colonne nomméetext_content
. Si le texte se trouve dans une colonne portant un nom différent, spécifieztext_content
comme alias pour cette colonne.MODE
: nom d'un mode de traduction compatibleLANGUAGE
: nom d'un code de langue accepté. Cet argument n'est requis que lorsque vous utilisez le mode de traductionTRANSLATE_TEXT
.
Exemple 1
L'exemple suivant traduit le texte de la colonne text_content
de la table en hindi :
SELECT * FROM ML.TRANSLATE( MODEL `mydataset.mytranslatemodel`, TABLE mydataset.mytable, STRUCT('translate_text' AS translate_mode, 'hi' AS target_language_code)) );
Exemple 2
L'exemple suivant détecte la langue du texte dans la colonne comment
de la table :
SELECT * FROM ML.TRANSLATE( MODEL `mydataset.mytranslatemodel`, (SELECT comment AS text_content from mydataset.mytable), STRUCT('detect_language' AS translate_mode) );
Étapes suivantes
Essayez le notebook Analyses de données non structurées avec des modèles pré-entraînés BigQuery ML et Vertex AI.