Introduzione all'algoritmo BERT integrato

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:

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:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. 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

  1. Vai alla pagina Piattaforma IA > Job:

Piattaforma AI > pagina Job

  1. Nella parte superiore della pagina, fai clic sul pulsante "Nuovo job di addestramento" e seleziona "Addestramento dell'algoritmo integrato".

  2. Seleziona BERT come algoritmo di addestramento

  3. Usa il pulsante Sfoglia per contrassegnare i set di dati di addestramento e valutazione nel bucket Cloud Storage, quindi scegli la directory di output.

  4. Nella pagina successiva, utilizza i valori degli argomenti riportati sopra per configurare il job di addestramento.

  5. Assegna un nome al job di addestramento e utilizza il tipo di macchina BASIC_TPU.

  6. 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

  1. 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.

  2. Nella pagina Dettagli job, puoi visualizzare l'avanzamento generale del job o fare clic su Visualizza log per una visualizzazione più dettagliata dell'avanzamento.

  3. 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.

  4. Seleziona "Esegui il deployment come nuovo modello" e inserisci un nome per il modello. Quindi, fai clic su Conferma.

  5. 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.

  6. 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.

  7. 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

  1. 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.

  2. 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]
            }
          ]
        }
    
  3. 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