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.
Rôles requis
Pour créer un modèle à distance et traduire du texte, vous avez besoin des rôles Identity and Access Management (IAM) suivants au niveau du projet :
- Créer et utiliser des ensembles de données, des tables et des modèles BigQuery : Éditeur de données BigQuery (
roles/bigquery.dataEditor
) Créer, déléguer et utiliser des connexions BigQuery : administrateur de connexion BigQuery (
roles/bigquery.connectionsAdmin
)Si vous n'avez pas configuré de connexion par défaut, vous pouvez en créer une et la définir lors de l'exécution de l'instruction
CREATE MODEL
. Pour ce faire, vous devez disposer du rôle Administrateur BigQuery (roles/bigquery.admin
) dans votre projet. Pour en savoir plus, consultez Configurer la connexion par défaut.Accorder des autorisations au compte de service de la connexion : Administrateur IAM du projet (
roles/resourcemanager.projectIamAdmin
)Créer des jobs BigQuery : utilisateur de job BigQuery (
roles/bigquery.jobUser
)
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce document. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
- Créez un ensemble de données :
bigquery.datasets.create
- Créer, déléguer et utiliser une connexion :
bigquery.connections.*
- Définissez les autorisations du compte de service :
resourcemanager.projects.getIamPolicy
etresourcemanager.projects.setIamPolicy
. - Créez un modèle et exécutez l'inférence :
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.models.updateMetadata
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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.
Dans la console Google Cloud , accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur
Afficher les actions > Créer un ensemble de données.Sur la page Créer un ensemble de données, procédez comme suit :
Pour ID de l'ensemble de données, saisissez un nom pour l'ensemble de données.
Dans Type d'emplacement, sélectionnez un emplacement pour l'ensemble de données.
Cliquez sur Créer un ensemble de données.
Pour créer un ensemble de données, exécutez la commande
bq mk
en spécifiant l'option--location
:bq --location=LOCATION mk -d DATASET_ID
Remplacez les éléments suivants :
LOCATION
: emplacement de l'ensemble de données.DATASET_ID
est l'ID de l'ensemble de données que vous créez.
Vérifiez que l'ensemble de données a été créé :
bq ls
Accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur
Ajouter des données :La boîte de dialogue Ajouter des données s'ouvre.
Dans le panneau Filtrer par, dans la section Type de source de données, sélectionnez Applications métier.
Vous pouvez également saisir
Vertex AI
dans le champ Rechercher des sources de données.Dans la section Sources de données recommandées, cliquez sur Vertex AI.
Cliquez sur la fiche solution Modèles Vertex AI : fédération BigQuery.
Dans la liste Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions à distance 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.
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"}
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf
, par exemplemain.tf
. Dans ce tutoriel, le fichier est appelémain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tf
que vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade
:terraform init -upgrade
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
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.
PROJECT_NUMBER
: votre numéro de projet.MEMBER
: ID du compte de service que vous avez copié précédemmentPROJECT_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
).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
.
Créer un ensemble de données
Créez un ensemble de données BigQuery pour contenir vos ressources :
Console
bq
Créer une connexion
Vous pouvez ignorer cette étape si vous avez configuré une connexion par défaut ou si vous disposez du rôle Administrateur BigQuery.
Créez une connexion de ressource cloud pour que le modèle distant puisse l'utiliser, et obtenez le compte de service de la connexion. Créez la connexion dans le même emplacement que l'ensemble de données que vous avez créé à l'étape précédente.
Sélectionnez l'une des options suivantes :
Console
bq
Terraform
Utilisez la ressource google_bigquery_connection
.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant crée une connexion de ressources Cloud nommée my_cloud_resource_connection
dans la région US
:
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
Appliquer les modifications
Accorder l'accès au compte de service
Sélectionnez l'une des options suivantes :
Console
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 :
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 {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_TRANSLATE_V3');
Remplacez les éléments suivants :
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 :
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.