Questo tutorial mostra come addestrare il modello BERT (Bidirectional Encoder Representations from Transformers) in AI Platform Training.
BERT è un metodo di preaddestramento delle rappresentazioni linguistiche. L'addestramento predefinito si riferisce al modo in cui BERT viene inizialmente addestrato su una grande fonte di testo, come Wikipedia. Puoi poi applicare i risultati dell'addestramento ad altre attività di elaborazione del linguaggio naturale (NLP), come la risposta a domande e l'analisi del sentiment. Con BERT e AI Platform Training, puoi addestrare vari modelli NLP tra circa 30 minuti.
Per ulteriori informazioni su BERT, consulta le risorse seguenti:
- Open Sourcing BERT: pre-addestramento all'avanguardia per l'elaborazione del linguaggio naturale
- BERT: pre-addestramento dei Deep Bidirectional Transformers per la comprensione del linguaggio
Obiettivi
- Crea un bucket Cloud Storage per conservare l'output del tuo modello.
- Esegui il job di addestramento.
- Verifica i risultati dell'output.
Prima di iniziare questo tutorial, controlla che il progetto Google Cloud sia configurato correttamente.
Completa i seguenti passaggi per configurare un account Google Cloud, abilitare le API richieste e installare e attivare Google Cloud CLI:
- 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 AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Prepara i dati
Questo tutorial non richiede alcuna preelaborazione o download di dati. Tutti i checkpoint dei dati e del modello sono disponibili nei bucket di archiviazione pubblici. Se ti interessa questa procedura, consulta la Tutorial su Cloud TPU, che illustra la creazione di questo set di dati dalla riga di comando.
Invio di un job di addestramento
Per inviare un job, devi specificare alcuni argomenti di addestramento di base argomenti correlati all'algoritmo BERT.
Argomenti generali per il job di addestramento:
Argomenti del job di addestramento | |
---|---|
Argomento | Descrizione |
job-id |
ID univoco per il tuo job di addestramento. Puoi utilizzarlo per trovare i log lo stato del job di addestramento dopo l'invio. |
job-dir |
Percorso Cloud Storage in cui AI Platform Training salva i file di addestramento dopo aver completato un job di addestramento riuscito. |
scale-tier |
Specifica i tipi di macchine per l'addestramento. Usa BASIC per selezionare
la configurazione di una sola macchina.
|
master-image-uri |
URI di Container Registry utilizzato per specificare il container Docker da usare per il job di addestramento. Utilizza il contenitore per l'algoritmo BERT integrato definito in precedenza come IMAGE_URI .
|
region |
Specifica la regione disponibile in cui eseguire il job di addestramento. Per
questo tutorial, puoi utilizzare la regione us-central1 .
|
Argomenti specifici dell'addestramento dell'algoritmo BERT integrato con il set di dati fornito:
Argomenti degli algoritmi | ||
---|---|---|
Argomento | Valore | Descrizione |
mode |
train_and_eval | Indica se eseguire o meno l'addestramento di ottimizzazione fine o esportare il modello. |
train_dataset_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_train.tf_record | Percorso di Cloud Storage in cui sono memorizzati i dati di addestramento. |
eval_dataset_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_eval.tf_record | Percorso di Cloud Storage in cui sono memorizzati i dati di valutazione. |
input_meta_data_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_meta_data | Percorso di Cloud Storage in cui è archiviato lo schema di input. |
bert_config_file |
gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_config.json | Percorso di Cloud Storage in cui è archiviato il file di configurazione di BERT. |
init_checkpoint |
gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_model.ckpt | Checkpoint iniziale per la messa a punto (di solito un modello BERT preaddestrato). |
train_batch_size |
32 | Dimensione del batch per l'addestramento. |
eval_batch_size |
32 | Dimensioni del batch per la valutazione. |
learning_rate |
2e-5 | Tasso di apprendimento utilizzato dall'ottimizzatore Adam. |
num_train_epochs |
1 | Numero di epoche di addestramento da eseguire (disponibile solo
in modalità train_and_eval .
|
steps_per_loop |
1000 | Il numero di passaggi per loop in modalità grafico. |
Per un elenco dettagliato di tutti gli altri flag dell'algoritmo BERT, fai riferimento riferimento BERT integrato.
esegui il job di addestramento
- Vai alla pagina Piattaforma IA > Job:
Nella parte superiore della pagina, fai clic sul pulsante "Nuovo job di addestramento" e seleziona "Addestramento dell'algoritmo integrato".
Seleziona BERT come algoritmo di addestramento
Usa il pulsante Sfoglia per contrassegnare i set di dati di addestramento e valutazione nel bucket Cloud Storage, quindi scegli la directory di output.
Nella pagina successiva, utilizza i valori degli argomenti riportati sopra per configurare il job di addestramento.
Assegna un nome al job di addestramento e utilizza il tipo di macchina
BASIC_TPU
.Fai clic su "Invia" per avviare il job.
Informazioni sulla directory dei job
Al termine di un job di addestramento, AI Platform Training
crea un modello addestrato nel tuo bucket Cloud Storage, insieme ad alcuni altri
gli artefatti. All'interno di JOB_DIR
puoi trovare la seguente struttura di directory:
- model/ (una directory SavedModel di TensorFlow)
- saved_model.pb
- assets/
- variables/
- riassunti/ (registrazione da formazione e valutazione)
- eval/
- train/
- vari file di checkpoint (creati e usati durante l'addestramento)
- posto di blocco
- ctl_checkpoint-1.data-00000-of-00002
- …
- ctl_checkpoint-1.index
Verifica che la struttura della directory in JOB_DIR
corrisponda alla struttura
descritti nell'elenco precedente:
gcloud storage ls -a $JOB_DIR/*
esegui il deployment del modello addestrato
AI Platform Prediction organizza i modelli addestrati utilizzando modello e Risorse della versione. Un modello di previsione di AI Platform è un contenitore per le versioni del tuo modello di machine learning.
Per eseguire il deployment di un modello, crea una risorsa del modello in AI Platform Prediction, crea una versione di quel modello, poi utilizza il modello e la versione per richiedere per le previsioni.
Scopri di più su come eseguire il deployment dei modelli in AI Platform Prediction.
Console
Nella pagina Job, puoi trovare un elenco di tutti i tuoi job di addestramento. Fai clic sul nome del job di addestramento che hai appena inviato.
Nella pagina Dettagli job, puoi visualizzare l'avanzamento generale del job o fare clic su Visualizza log per una visualizzazione più dettagliata dell'avanzamento.
Se il job ha esito positivo, nella parte superiore viene visualizzato il pulsante Esegui il deployment del modello. Fai clic su Esegui il deployment del modello.
Seleziona "Esegui il deployment come nuovo modello" e inserisci un nome per il modello. Quindi, fai clic su Conferma.
Nella pagina Crea versione, inserisci un nome per la versione, ad esempio
v1
e lascia le impostazioni predefinite per tutti gli altri campi. Fai clic su Salva.Nella pagina Dettagli modello viene visualizzato il nome della versione. La creazione della versione richiede alcuni minuti. Quando la versione è pronta, viene visualizzato un segno di spunta accanto al nome della versione.
Fai clic sul nome della versione (
v1
) per passare alla pagina Dettagli della versione. Nel passaggio successivo di questo tutorial, invia una richiesta di previsione
Ricevere previsioni online
Quando richiedi le previsioni, devi formattare i dati di input come JSON nel modo previsto dal modello. Gli attuali modelli BERT non pre-elaborare automaticamente gli input.
Console
Nella pagina Dettagli della versione per
v1
, la versione appena creata, puoi inviare una richiesta di previsione di esempio.Seleziona il pulsante Testa e Usa.
Copia il seguente esempio nel campo di immissione:
{ "instances": [ { "input_mask": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "input_type_ids":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "input_word_ids": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } ] }
Fai clic su Test.
Attendi un istante e dovrebbe essere restituito un vettore di previsione.
Passaggi successivi
In questo tutorial hai addestrato il modello BERT utilizzando un set di dati di esempio. Nella maggior parte dei casi, i risultati di questo addestramento non sono utilizzabili per l'inferenza. Per utilizzare un modello per l'inferenza, puoi addestrare i dati su un set di dati disponibile pubblicamente o sul tuo set di dati. I modelli addestrati su Cloud TPU richiedono che i set di dati siano in formato TFRecord.
Puoi utilizzare l'esempio dello strumento di conversione dei set di dati per convertire un set di dati di classificazione delle immagini in formato TFRecord. Se non utilizzi un modello di classificazione delle immagini, dovrai convertire manualmente il set di dati in formato TFRecord. Per ulteriori informazioni, consulta TFRecord e tf.Example
- Scopri di più su utilizzando l'algoritmo BERT integrato.