Ce tutoriel explique comment créer un modèle de traduction personnalisé à l'aide d'AutoML Translation. L'application entraîne un modèle personnalisé à l'aide d'un ensemble de données en anglais et en espagnol, constitué de paires de phrases axées sur la technologie et issues de la localisation de logiciels.
Ce tutoriel traite de l'entraînement du modèle personnalisé, de l'évaluation de ses performances et de la traduction de nouveaux contenus.
Conditions préalables
Configurer l'environnement de projet
- 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.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.
-
Activer les API AutoML Translation.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.
-
Activer les API AutoML Translation.
- Installez Google Cloud CLI.
- Suivez les instructions pour créer un compte de service et télécharger un fichier de clé.
- Indiquez le chemin d'accès au fichier de clé du compte de service, que vous avez téléchargé lors de la création de ce dernier, comme variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
. Exemple :export GOOGLE_APPLICATION_CREDENTIALS=key-file
- Ajoutez votre nouveau compte de service au rôle IAM de l'éditeur AutoML à l'aide des commandes ci-dessous. Remplacez project-id par le nom de votre projet Google Cloud Project et service-account-name par le nom de votre nouveau compte de service, par exemple
service-account1@myproject.iam.gserviceaccount.com
.gcloud auth login gcloud config set project project-id gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:service-account-name \ --role='roles/automl.editor'
- Autorisez les comptes de service AutoML Translation à accéder aux ressources de votre projet Google Cloud :
gcloud projects add-iam-policy-binding project-id \ --member="serviceAccount:service-project-number@gcp-sa-automl.iam.gserviceaccount.com" \ --role="roles/automl.serviceAgent"
- Installez la bibliothèque cliente.
- Définissez les variables d'environnement PROJECT_ID et REGION_NAME.
Remplacez project-id par l'ID de votre projet Google Cloud Project. AutoML Translation nécessite actuellement l'emplacementus-central1
.export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- Créez un bucket Google Cloud Storage afin de stocker les documents nécessaires pour entraîner votre modèle personnalisé.
Le nom du bucket doit respecter le format suivant :$PROJECT_ID-vcm
. La commande ci-dessous permet de créer un bucket de stockage dans la régionus-central1
, nommé$PROJECT_ID-vcm
.gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
-
Téléchargez le fichier d'archive contenant les exemples de données pour l'entraînement du modèle, extrayez son contenu, puis importez les fichiers dans votre bucket Google Cloud Storage.
Pour en savoir plus sur les formats, consultez la page Préparer les données d'entraînement.L'exemple de code de ce tutoriel utilise un ensemble de données anglais-espagnol. Des ensembles de données ayant pour langue cible l'allemand, le chinois, le français et le russe sont également disponibles. Si vous utilisez l'un d'entre eux, remplacez le code de langue
es
des exemples par le code de langue approprié. - Dans le fichier
en-es.csv
de l'étape précédente, remplacez{project_id}
par l'ID de votre projet.
Emplacements des fichiers de code source
Vous pouvez télécharger le code source depuis l'emplacement indiqué ci-dessous. Une fois le téléchargement terminé, vous pouvez copier le code source dans le dossier de votre projet Google Cloud.
Python
Le tutoriel contient ces fichiers Python :
translate_create_dataset.py
: inclut une fonctionnalité permettant de créer un ensemble de donnéesimport_dataset.py
: inclut une fonctionnalité permettant d'importer un ensemble de donnéestranslate_create_model.py
: inclut une fonctionnalité permettant de créer un modèlelist_model_evaluations.py
: inclut une fonctionnalité permettant de répertorier les évaluations de modèlestranslate_predict.py
: inclut une fonctionnalité liée à la prédictiondelete_model.py
: inclut une fonctionnalité permettant de supprimer un modèle
Java
Le tutoriel contient ces fichiers Java :
TranslateCreateDataset.java
: inclut une fonctionnalité permettant de créer un ensemble de donnéesImportDataset.java
: inclut une fonctionnalité permettant d'importer un ensemble de donnéesTranslateCreateModel.java
: inclut une fonctionnalité permettant de créer un modèleListModelEvaluations.java
: inclut une fonctionnalité permettant de répertorier les évaluations de modèlesTranslatePredict.java
: inclut une fonctionnalité liée à la prédictionDeleteModel.java
: inclut une fonctionnalité permettant de supprimer un modèle
Node.js
Le tutoriel comprend les programmes Node.js suivants :
translate_create_dataset.js
: inclut une fonctionnalité permettant de créer un ensemble de donnéesimport_dataset.js
: inclut une fonctionnalité permettant d'importer un ensemble de donnéestranslate_create_model.js
: inclut une fonctionnalité permettant de créer un modèlelist_model_evaluations.js
: inclut une fonctionnalité permettant de répertorier les évaluations de modèlestranslate_predict.js
: inclut une fonctionnalité liée à la prédictiondelete_model.js
: inclut une fonctionnalité permettant de supprimer un modèle
Exécuter l'application
Étape 1 : Créez un ensemble de données
La première étape de l'élaboration d'un modèle personnalisé consiste à créer un ensemble de données vide, qui contiendra à terme les données d'entraînement du modèle. Lorsque vous créez un ensemble de données, vous devez indiquer les langues source et cible de la traduction.
Copier le code
Python
Java
Node.js
Requête
Exécutez la fonction create_dataset
pour créer un ensemble de données vide. Vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. - Définissez le champ
display_name
pour l'ensemble de données (en_es_dataset
). Remplacez la valeur
ja
du champtarget_language_code
pares
.
Python
python translate_create_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslateCreateDataset"
Node.js
node translate_create_dataset.js
Réponse
La réponse inclut les détails de l'ensemble de données créé, y compris son ID qui permet de le référencer dans des requêtes ultérieures. Nous vous recommandons d'indiquer la valeur de l'ID d'ensemble de données renvoyé sur la ligne d'une variable d'environnement DATASET_ID
.
Dataset name: projects/216065747626/locations/us-central1/datasets/TRL7372141011130533778 Dataset id: TRL7372141011130533778 Dataset display name: en_es_dataset Translation dataset Metadata: source_language_code: en target_language_code: es Dataset example count: 0 Dataset create time: seconds: 1530251987 nanos: 216586000
Étape 2 : Importez les paires de phrases de l'entraînement dans l'ensemble de données
L'étape suivante consiste à insérer une liste de paires de phrases de l'entraînement dans l'ensemble de données.
L'interface de la fonction import_dataset
utilise un fichier .csv qui répertorie les emplacements de tous les documents d'entraînement et le libellé approprié pour chacun de ces documents.
(Consultez la page Préparer vos données pour en savoir plus sur le format requis.) Pour les besoins de ce tutoriel, nous allons utiliser en-es.csv
, que vous avez précédemment importé dans Google Cloud Storage.
Copier le code
Python
Java
Node.js
Requête
Exécutez la fonction import_data
pour importer le contenu de l'entraînement. Vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. - Définissez le champ
dataset_id
pour l'ensemble de données (à partir de la sortie de l'étape précédente). Définissez le champ
path
qui correspond à l'URI du fichier (gs://YOUR_PROJECT_ID-vcm/en-es.csv
).
Python
python import_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ImportDataset"
Node.js
node import_dataset.js
Réponse
Processing import... Dataset imported.
Étape 3 : Créez (entraînez) le modèle
Maintenant que vous disposez d'un ensemble de données de documents d'entraînement étiquetés, vous pouvez entraîner un nouveau modèle.
Copier le code
Python
Java
Node.js
Requête
Pour exécuter create_model
, vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. - Définissez le champ
dataset_id
pour l'ensemble de données (à partir de la sortie de l'étape précédente). Définissez le champ
display_name
pour le nouveau modèle (en_es_test_model).
Python
python translate_create_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranlateCreateModel"
Node.js
node translate_create_model.js
Réponse
La fonction create_model
déclenche une opération d'entraînement et imprime le nom de l'opération. L'entraînement se déroule de manière asynchrone et peut prendre un certain temps. Vous pouvez donc consulter l'état de l'entraînement à l'aide de l'ID d'opération.
Une fois l'entraînement terminé, create_model
renvoie l'ID du modèle. Comme pour l'ID de l'ensemble de données, vous pouvez définir une variable d'environnement MODEL_ID
sur la valeur de l'ID de modèle renvoyé.
Training operation name: projects/216065747626/locations/us-central1/operations/TRL3007727620979824033 Training started... Model name: projects/216065747626/locations/us-central1/models/TRL3007727620979824033 Model id: TRL3007727620979824033 Model display name: en_es_test_model Model create time: seconds: 1529649600 nanos: 966000000 Model deployment state: deployed
Étape 4 : Évaluer le modèle
Après l'entraînement, vous pouvez évaluer l'état de préparation de votre modèle en examinant son score BLEU.
La fonction list_model_evaluations
utilise l'ID du modèle comme paramètre.
Copier le code
Python
Java
Node.js
Requête
Pour afficher les performances d'évaluation globales du modèle, exécutez la requête suivante. Vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. Définissez le champ
model_id
sur l'ID de votre modèle.
Python
python list_model_evaluations.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
Réponse
Si le score BLEU est trop faible, vous pouvez renforcer l'ensemble de données de l'entraînement et entraîner à nouveau votre modèle. Pour plus d'informations, consultez la page Évaluer les modèles.
List of model evaluations: name: "projects/216065747626/locations/us-central1/models/5419131644870929143/modelEvaluations/TRL7683346839371803263" create_time { seconds: 1530196488 nanos: 509247000 } evaluated_example_count: 3 translation_evaluation_metrics { bleu_score: 19.23076957464218 base_bleu_score: 11.428571492433548 }
Étape 5 : Réalisez une prédiction à l'aide d'un modèle
Une fois que votre modèle personnalisé répond à vos attentes en matière de qualité, vous pouvez vous en servir pour traduire un nouveau contenu.
Copier le code
Python
Java
Node.js
Requête
Pour la fonction predict
, vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. - Définissez le champ
model_id
sur l'ID de votre modèle. Définissez le champ
file_path
sur le fichier téléchargé ("resources/input.txt").
Python
python tranlsate_predict.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslatePredict"
Node.js
node translate_predict.js predict
Réponse
La fonction renvoie le contenu traduit.
Translated content: Ver y administrar tus cuentas de Google Tag Manager.
Le contenu ci-dessus correspond à la traduction en espagnol de la phrase anglaise "View and manage your Google Tag Manager accounts". Comparez cette traduction personnalisée à la traduction du modèle Google de base :
Ver y administrar sus cuentas de Administrador de etiquetas de Google
Étape 6 : Supprimez un modèle
Lorsque vous avez fini d'utiliser cet exemple de modèle, vous pouvez le supprimer définitivement. Vous ne pourrez plus vous servir du modèle pour la prédiction.
Copier le code
Python
Java
Node.js
Requête
Effectuez une requête avec le type d'opération delete_model
pour supprimer un modèle que vous avez créé. Vous devez modifier les lignes de code suivantes :
- Définissez le champ
project_id
sur votre valeur PROJECT_ID. Définissez le champ
model_id
sur l'ID de votre modèle.
Python
python delete_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
Réponse
Model deleted.