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 una serie di modelli di NLP in circa 30 minuti.
Per ulteriori informazioni su BERT, consulta le seguenti risorse:
- Open Sourcing BERT: pre-addestramento all'avanguardia per l'elaborazione del linguaggio naturale
- BERT: pre-addestramento di trasformatori bidirezionali profondi per la comprensione del linguaggio
Obiettivi
- Crea un bucket Cloud Storage per contenere l'output del modello.
- Esegui il job di addestramento.
- Verifica i risultati dell'output.
Prima di iniziare questo tutorial, controlla che il Google Cloud progetto sia configurato correttamente.
Completa i seguenti passaggi per configurare un account Google Cloud, abilitare le API richieste, e installare e attivare la CLI Google Cloud:
- 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 dei modelli di cui hai bisogno sono disponibili nei bucket di archiviazione pubblico. Se ti interessa questa procedura, consulta il tutorial su Cloud TPU, che illustra la creazione di questo set di dati da riga di comando.
Invia un job di addestramento
Per inviare un job, devi specificare alcuni argomenti di addestramento di base e alcuni argomenti di base correlati all'algoritmo BERT.
Argomenti generali per il job di addestramento:
Argomenti dei job di addestramento | |
---|---|
Argomento | Descrizione |
job-id |
ID univoco per il job di addestramento. Puoi utilizzarlo per trovare i log relativi allo stato del job di addestramento dopo averlo inviato. |
job-dir |
Percorso di 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. Utilizza BASIC per selezionare
una 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 per l'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 è memorizzato 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 è memorizzato 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 | Il 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 ciclo in modalità grafico. |
Per un elenco dettagliato di tutti gli altri flag dell'algoritmo BERT, consulta il 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
Utilizza il pulsante Sfoglia per contrassegnare i set di dati di addestramento e valutazione nel bucket Cloud Storage e scegliere 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
BASIC_TPU
tipo di macchina.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 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/
- summaries/ (logging from training and evaluation)
- eval/
- train/
- vari file checkpoint (creati e utilizzati 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 a quella
descritta nell'elenco precedente:
gcloud storage ls -a $JOB_DIR/*
Esegui il deployment del modello addestrato
AI Platform Prediction organizza i modelli addestrati utilizzando le risorse model e version. 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 modello in AI Platform Prediction, crea una versione del modello e poi utilizza il modello e la versione per richiedere le previsioni online.
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. Poi, fai clic su Conferma.
Nella pagina Crea versione, inserisci un nome per la versione, ad esempio
v1
, e lascia invariate le impostazioni predefinite di 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, accanto al nome viene visualizzata un'icona con un segno di spunta.
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
Ottenere previsioni online
Quando richiedi le previsioni, devi formattare i dati di input come JSON nel modo previsto dal modello. I modelli BERT attuali non pre-elaborano automaticamente gli input.
Console
Nella pagina Dettagli della versione per
v1
, la versione appena creata, puoi inviare una richiesta di previsione di esempio.Seleziona la scheda Testa e utilizza.
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 saperne di più, consulta TFRecord e tf.Example
- Scopri di più sull'utilizzo dell'algoritmo BERT integrato.