Questo tutorial illustra come creare un modello di traduzione personalizzato utilizzando AutoML Translation. L'applicazione addestra un modello personalizzato utilizzando un set di dati dall'inglese allo spagnolo di coppie di frasi orientate alla tecnologia dalla localizzazione del software.
Il tutorial tratta l'addestramento del modello personalizzato, la valutazione delle sue prestazioni e la traduzione di nuovi contenuti.
Prerequisiti
Configura l'ambiente del progetto
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.
-
Abilita le API AutoML Translation.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.
-
Abilita le API AutoML Translation.
- Installa Google Cloud CLI.
- Segui le istruzioni per creare un account di servizio e scaricare un file della chiave.
- Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file della chiave dell'account di servizio scaricato al momento della creazione dell'account di servizio. Ad esempio:export GOOGLE_APPLICATION_CREDENTIALS=key-file
- Aggiungi il nuovo account di servizio al ruolo IAM AutoML Editor con i seguenti comandi. Sostituisci project-id con il nome del tuo progetto Google Cloud e service-account-name con il nome del tuo nuovo account di servizio, ad esempio
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'
- Consenti agli account di servizio AutoML Translation di accedere alle risorse del progetto 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"
- Installa la libreria client.
- Imposta le variabili di ambiente PROJECT_ID e REGION_NAME.
Sostituisci project-id con l'ID progetto del tuo progetto Google Cloud. Al momento AutoML Translation richiede la localitàus-central1
.export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- Crea un bucket Google Cloud Storage per archiviare i documenti che utilizzerai per addestrare il modello personalizzato.
Il nome del bucket deve essere nel formato:$PROJECT_ID-vcm
. Il comando seguente crea un bucket di archiviazione denominato$PROJECT_ID-vcm
nella regioneus-central1
.gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
-
Scarica il file di archivio contenente i dati di esempio per addestrare il modello, estrai i suoi contenuti e carica i file nel bucket di Google Cloud Storage.
Vedi Preparare i dati di addestramento per i dettagli sui formati.Il codice campione in questo tutorial utilizza il set di dati dall'inglese allo spagnolo. Sono disponibili anche set di dati con lingue di destinazione tedesco, francese, russo e cinese. Se utilizzi uno di questi set di dati alternativi, sostituisci il codice della lingua
es
negli esempi con il codice della lingua appropriato. -
Nel file
en-es.csv
del passaggio precedente, sostituisci{project_id}
con l'ID progetto del tuo progetto.
Località dei file di codice sorgente
Puoi scaricare il codice sorgente dalla posizione fornita di seguito. Dopo il download, puoi copiare il codice sorgente nella cartella del tuo progetto Google Cloud.
Python
Il tutorial è composto da questi file Python:
translate_create_dataset.py
: include la funzionalità per creare un set di datiimport_dataset.py
- Include la funzionalità per importare un set di datitranslate_create_model.py
- Include la funzionalità per creare un modellolist_model_evaluations.py
: funzionalità inclusa per elencare le valutazioni dei modellitranslate_predict.py
: include funzionalità relative alla previsionedelete_model.py
- Includi la funzionalità per eliminare un modello
Java
Il tutorial consiste in questi file Java:
TranslateCreateDataset.java
: include la funzionalità per creare un set di datiImportDataset.java
- Include la funzionalità per importare un set di datiTranslateCreateModel.java
- Include la funzionalità per creare un modelloListModelEvaluations.java
: funzionalità inclusa per elencare le valutazioni dei modelliTranslatePredict.java
: include funzionalità relative alla previsioneDeleteModel.java
: include la funzionalità per eliminare un modello
Node.js
Il tutorial consiste in questi programmi Node.js:
translate_create_dataset.js
: include la funzionalità per creare un set di datiimport_dataset.js
- Include la funzionalità per importare un set di datitranslate_create_model.js
- Include la funzionalità per creare un modellolist_model_evaluations.js
: funzionalità inclusa per elencare le valutazioni dei modellitranslate_predict.js
: include funzionalità relative alla previsionedelete_model.js
- Includi la funzionalità per eliminare un modello
Esecuzione dell'applicazione
Passaggio 1: crea un set di dati
Il primo passaggio nella creazione di un modello personalizzato è creare un set di dati vuoto che contenga i dati di addestramento del modello. Quando crei un set di dati, devi specificare le lingue di origine e di destinazione per la traduzione.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Esegui la funzione create_dataset
per creare un set di dati vuoto. Devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID - Imposta il
display_name
per il set di dati (en_es_dataset
) Modifica il campo
target_language_code
daja
aes
Python
python translate_create_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslateCreateDataset"
Node.js
node translate_create_dataset.js
Risposta
La risposta include i dettagli del set di dati appena creato, incluso l'ID del set di dati che utilizzerai per fare riferimento al set di dati nelle richieste future. Ti consigliamo di impostare una variabile di ambiente DATASET_ID
sul valore restituito del set di dati.
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
Passaggio 2: importa le coppie di frasi di addestramento nel set di dati
Il passaggio successivo consiste nel completare il set di dati con un elenco di coppie di frasi di addestramento.
L'interfaccia delle funzioni import_dataset
utilizza un file .csv in cui sono elencate le posizioni di tutti i documenti di addestramento e l'etichetta corretta per ciascun documento di addestramento.
Per ulteriori dettagli sul formato richiesto, consulta l'articolo Preparare i dati. Per questo tutorial, utilizzeremo en-es.csv
, che hai caricato in Google Cloud Storage qui sopra.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Esegui la funzione import_data
per importare i contenuti di addestramento. Devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID - Imposta il
dataset_id
per il set di dati (dall'output del passaggio precedente) Imposta il
path
che corrisponde all'URI di (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
Risposta
Processing import... Dataset imported.
Passaggio 3: crea (addestra) il modello
Ora che hai un set di dati di documenti di addestramento etichettati, puoi addestrare un nuovo modello.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Per eseguire create_model
, devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID - Imposta il
dataset_id
per il set di dati (dall'output del passaggio precedente) Imposta il
display_name
per il nuovo modello (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
Risposta
La funzione create_model
avvia un'operazione di addestramento e stampa il nome dell'operazione. L'addestramento avviene in modo asincrono e il completamento può richiedere un po' di tempo, quindi puoi utilizzare l'ID operazione per controllare lo stato dell'addestramento.
Una volta completato l'addestramento, create_model
restituisce l'ID modello. Come per l'ID del set di dati, ti consigliamo di impostare una variabile di ambiente MODEL_ID
sul valore dell'ID modello restituito.
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
Passaggio 4: valuta il modello
Dopo l'addestramento, puoi valutare l'idoneità del tuo modello esaminando il relativo punteggio BLEU.
La funzione list_model_evaluations
accetta l'ID modello come parametro.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Esegui una richiesta per visualizzare le prestazioni complessive della valutazione del modello eseguendo la richiesta seguente. Devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID Imposta
model_id
sull'ID del modello
Python
python list_model_evaluations.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
Risposta
Se il punteggio BLEU è troppo basso, puoi rafforzare il set di dati di addestramento e reimpostare il modello. Per ulteriori informazioni, consulta la sezione Valutare i modelli.
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 }
Passaggio 5: utilizza un modello per eseguire una previsione
Se il tuo modello personalizzato soddisfa i tuoi standard qualitativi, puoi utilizzarlo per tradurre contenuti nuovi.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Per la funzione predict
devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID - Imposta
model_id
sull'ID del modello Imposta il file
file_path
sul file scaricato ("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
Risposta
La funzione restituisce il contenuto tradotto.
Translated content: Ver y administrar tus cuentas de Google Tag Manager.
Sopra è presente la traduzione spagnola per la frase inglese: "View and management your Google Tag Manager accounts". Confronta questa traduzione personalizzata con la traduzione del modello Google di base:
Ver y administrar sus cuentas de Administrador de etiquetas de Google
Passaggio 6: elimina un modello
Quando hai finito di utilizzare questo modello di esempio, puoi eliminarlo definitivamente. Non potrai più utilizzare il modello per la previsione.
Copia il codice
Python
Java
Node.js
Risorse richieste:
Effettua una richiesta con il tipo di operazione delete_model
per eliminare un modello che hai creato. Devi modificare le seguenti righe di codice:
- Imposta il
project_id
su PROJECT_ID Imposta
model_id
sull'ID del modello
Python
python delete_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
Risposta
Model deleted.