Preparazione dei dati di addestramento testo

Questa pagina descrive come preparare i dati di testo da utilizzare in un set di dati Vertex AI. Il formato dei dati di input di testo dipende dall'obiettivo. Ad esempio, la preparazione dei dati per la classificazione del testo è diversa rispetto all'analisi del sentiment.

Le sezioni seguenti descrivono i requisiti dei dati, i consigli e i file di input per ogni obiettivo.

Classificazione con etichetta singola

Per la classificazione con etichetta singola, i dati di addestramento sono costituiti dai documenti e dalla categoria di classificazione che si applicano a tali documenti. La classificazione con etichetta singola consente di assegnare a un documento una sola etichetta.

Requisiti dei dati

  • Devi fornire almeno 20 documenti di formazione e non più di 1.000.000.
  • Devi fornire da 2 a 5000 etichette di categoria uniche.
  • Devi applicare ogni etichetta ad almeno 10 documenti.
  • Per la classificazione con più etichette, puoi applicare una o più etichette a un documento.
  • Puoi includere documenti incorporati o fare riferimento a file TXT che si trovano nei bucket Cloud Storage.

Best practice per i dati di testo utilizzati per addestrare i modelli AutoML

I seguenti consigli si applicano ai set di dati utilizzati per l'addestramento dei modelli AutoML.

  • Utilizza dati di addestramento diversificati rispetto ai dati su cui verranno eseguite le previsioni. Includi lunghezze diverse di documenti, documenti creati da persone diverse, documenti che utilizzano espressioni o stili diversi e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. I modelli AutoML non possono prevedere etichette di categoria che le persone non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare un'etichetta leggendo un documento, è probabile che anche il tuo modello non possa essere addestrato per farlo.
  • Fornisci il maggior numero possibile di documenti di addestramento per etichetta. Puoi migliorare i punteggi di affidabilità del modello utilizzando più esempi per etichetta. Addestra un modello utilizzando 50 esempi per etichetta e valuta i risultati. Aggiungi altri esempi ed esegui nuovamente l'addestramento fino a raggiungere i target di accuratezza, che potrebbero richiedere centinaia o anche 1000 esempi per etichetta.
  • Il modello funziona meglio quando ci sono al massimo 100 documenti per l'etichetta più comune rispetto a un'etichetta meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Potresti includere un'etichetta al di fuori del dominio (ad esempio None_of_the_above) per i documenti che non corrispondono a nessuna delle etichette che hai definito. Ad esempio, se hai etichettato solo i documenti relativi ad arte e intrattenimento, ma il tuo set di dati contiene documenti relativi ad altri argomenti, come sport o tecnologia, etichetta i documenti su altri argomenti come None_of_the_above. Senza tale etichetta, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche quelle per cui tali etichette non sono adatte.
  • Se hai un numero elevato di documenti che non corrispondono alle etichette, filtrale in modo che il modello non disorienti le previsioni in base a un'etichetta esterna al dominio. Ad esempio, potresti avere un modello di filtro che prevede se un documento rientra nell'insieme corrente di etichette o è fuori dominio. Dopo l'applicazione di filtri, sarebbe disponibile un altro modello che classifica solo i documenti interni al dominio.

File di input

La classificazione con etichetta singola supporta le righe JSON o i file di input CSV. Puoi specificare una sola etichetta (annotazione) per un dato documento. Le seguenti sezioni descrivono i file di input e forniscono esempi per ogni tipo di file.

Linee JSON

Il formato, i nomi dei campi e i tipi di valore per i file JSON Line sono determinati da un file schema, che sono file YAML accessibili pubblicamente.

Puoi scaricare il file di schema per la classificazione con etichetta singola dal seguente percorso in Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classifier_Single_label_io_format_1.0.0.yaml

Esempio di linee JSON

L'esempio seguente mostra come utilizzare lo schema per creare il proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nei file JSON, includi le interruzioni di riga solo dopo ogni documento. Il campo dataItemResourceLabels specifica, ad esempio, ml_use ed è facoltativo.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Ogni riga in un file CSV fa riferimento a un singolo documento. L'esempio seguente mostra il formato generale di un file CSV valido. La colonna ml_use è facoltativa.

[ml_use],gcs_file_uri|"inline_text",label

Il seguente snippet è un esempio di file CSV di input.

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

Classificazione con più etichette

Per la classificazione con più etichette, i dati di addestramento sono costituiti dai documenti e dalle categorie di classificazione che si applicano a tali documenti. La classificazione con più etichette consente di assegnare a un documento una o più etichette.

Requisiti dei dati

  • Devi fornire almeno 20 documenti di formazione e non più di 1.000.000.
  • Devi fornire da 2 a 5000 etichette di categoria uniche.
  • Devi applicare ogni etichetta ad almeno 10 documenti.
  • Per la classificazione con più etichette, puoi applicare una o più etichette a un documento.
  • Puoi includere documenti incorporati o fare riferimento a file TXT che si trovano nei bucket Cloud Storage.

Best practice per i dati di testo utilizzati per addestrare i modelli AutoML

I seguenti consigli si applicano ai set di dati utilizzati per l'addestramento dei modelli AutoML.

  • Utilizza dati di addestramento diversificati rispetto ai dati su cui verranno eseguite le previsioni. Includi lunghezze diverse di documenti, documenti creati da persone diverse, documenti che utilizzano espressioni o stili diversi e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. I modelli AutoML non possono prevedere etichette di categoria che le persone non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare un'etichetta leggendo un documento, è probabile che anche il tuo modello non possa essere addestrato per farlo.
  • Se utilizzi la classificazione con più etichette, applica tutte le etichette pertinenti a ciascun documento. Ad esempio, se stai etichettando documenti che forniscono dettagli sui prodotti farmaceutici, potresti avere un documento con l'etichetta Dosage e Side Effects.
  • Fornisci il maggior numero possibile di documenti di addestramento per etichetta. Puoi migliorare i punteggi di affidabilità del modello utilizzando più esempi per etichetta. I punteggi di affidabilità migliori sono particolarmente utili quando il modello restituisce più etichette quando classifica un documento. Addestra un modello utilizzando 50 esempi per etichetta e valuta i risultati. Aggiungi altri esempi e ripeti l'addestramento fino a raggiungere i tuoi obiettivi di precisione, il che potrebbe richiedere centinaia o anche 1000 esempi per etichetta.
  • Il modello funziona meglio quando ci sono al massimo 100 documenti per l'etichetta più comune rispetto a un'etichetta meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Potresti includere un'etichetta al di fuori del dominio (ad esempio None_of_the_above) per i documenti che non corrispondono a nessuna delle etichette che hai definito. Ad esempio, se hai etichettato solo i documenti relativi ad arte e intrattenimento, ma il tuo set di dati contiene documenti relativi ad altri argomenti, come sport o tecnologia, etichetta i documenti su altri argomenti come None_of_the_above. Senza tale etichetta, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche quelle per cui tali etichette non sono adatte.
  • Se hai un numero elevato di documenti che non corrispondono alle etichette, filtrale in modo che il modello non disorienti le previsioni in base a un'etichetta esterna al dominio. Ad esempio, potresti avere un modello di filtro che prevede se un documento rientra nell'insieme corrente di etichette o è fuori dominio. Dopo l'applicazione di filtri, sarebbe disponibile un altro modello che classifica solo i documenti interni al dominio.

File di input

La classificazione di più etichette supporta le righe JSON o i file di input CSV. Puoi specificare più di un'etichetta (annotazione) per un dato documento. Le seguenti sezioni descrivono i file di input e forniscono esempi per ogni tipo di file.

Linee JSON

Il formato, i nomi dei campi e i tipi di valore per i file JSON Line sono determinati da un file schema, che sono file YAML accessibili pubblicamente.

Puoi scaricare il file di schema per la classificazione con più etichette dalla seguente posizione di Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classifier_multi_label_io_format_1.0.0.yaml

Esempio di linee JSON

L'esempio seguente mostra come utilizzare lo schema per creare il proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nei file JSON, includi le interruzioni di riga solo dopo ogni documento. Il campo dataItemResourceLabels specifica, ad esempio, ml_use ed è facoltativo.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Ogni riga in un file CSV fa riferimento a un singolo documento. L'esempio seguente mostra il formato generale di un file CSV valido. La colonna ml_use è facoltativa.

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

Il seguente snippet è un esempio di file CSV di input.

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5

Estrazione di entità

I dati di addestramento per l'estrazione delle entità sono costituiti da documenti annotati con le etichette che identificano i tipi di entità che vuoi che il modello identifichi. Ad esempio, puoi creare un modello di estrazione delle entità per identificare una terminologia specializzata in documenti legali o brevetti. Le annotazioni specificano le posizioni delle entità che stai etichettando e delle etichette stesse.

Se stai annotando documenti strutturati o semi-struttura per un set di dati utilizzato per addestrare i modelli AutoML, come fatture o contratti, Vertex AI può prendere in considerazione l'annotazione di un'annotazione nella pagina come un fattore che contribuisce all'etichetta appropriata. Ad esempio, un contratto immobiliare ha sia una data di accettazione che una data di chiusura. Vertex AI può imparare a distinguere tra le entità in base alla posizione spaziale dell'annotazione.

Requisiti dei dati

  • Devi fornire almeno 50 e non più di 100.000 documenti di formazione.
  • Devi fornire da 1 a 100 etichette uniche per annotare le entità che vuoi estrarre.
  • Puoi utilizzare un'etichetta per includere un'annotazione compresa tra 1 e 10 parole.
  • I nomi delle etichette possono essere compresi tra 2 e 30 caratteri.
  • Puoi includere annotazioni nei file delle righe JSON oppure aggiungere annotazioni in un secondo momento utilizzando Google Cloud Console dopo aver caricato i documenti.
  • Puoi includere documenti incorporati o fare riferimento a file TXT che si trovano nei bucket Cloud Storage.

Best practice per i dati di testo utilizzati per addestrare i modelli AutoML

I seguenti consigli si applicano ai set di dati utilizzati per l'addestramento dei modelli AutoML.

  • Utilizza ogni etichetta almeno 200 volte nel set di dati di addestramento.
  • Annota ogni occorrenza delle entità che vuoi che il modello identifichi.

File di input

I tipi di file di input per l'estrazione delle entità devono essere righe JSON. Il formato, i nomi dei campi e i tipi di valore per i file JSON Line sono determinati da un file schema, che sono file YAML accessibili pubblicamente.

Puoi scaricare il file di schema per l'estrazione delle entità dalla seguente posizione di Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.

L'esempio seguente mostra come utilizzare lo schema per creare il proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nei file JSON, includi le interruzioni di riga solo dopo ogni documento. Il campo dataItemResourceLabels specifica, ad esempio, ml_use ed è facoltativo.

{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}
{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

Puoi anche aggiungere annotazioni ai documenti utilizzando Google Cloud Console. Crea un file JSON Lines solo con contenuti (senza il campo textSegmentAnnotations); i documenti vengono caricati su Vertex AI senza annotazioni.

Analisi del sentiment

I dati di addestramento del sentiment sono costituiti da documenti associati a un valore di sentiment che indica il sentiment dei contenuti. Ad esempio, potresti avere tweet su un determinato dominio, come quello sui viaggi aerei. Ogni tweet è associato a un valore di sentiment che indica se è positivo, negativo o neutro.

Requisiti dei dati

  • Devi fornire almeno 10, ma non più di 100.000 documenti di addestramento totali.
  • Un valore di sentiment deve essere un numero intero compreso tra 0 e 10. Il valore massimo del sentiment è la tua scelta. Ad esempio, se vuoi identificare se il sentiment è negativo, positivo o neutro, puoi etichettare i dati di addestramento con punteggi di 0 (negativo), 1 (neutro) e 2 (positivo). Il punteggio di sentiment massimo per questo set di dati è 2. Se vuoi avere una maggiore granularità, ad esempio cinque livelli di sentiment, puoi etichettare i documenti da 0 (più negativi) a 4 (più positivi).
  • Devi applicare ogni valore di sentiment ad almeno 10 documenti.
  • I valori del punteggio di sentiment devono essere numeri interi consecutivi a partire da zero. Se disponi di lacune nei punteggi o non inizi da zero, rimappa i tuoi punteggi in modo che siano numeri interi consecutivi a partire da zero.
  • Puoi includere documenti incorporati o fare riferimento a file TXT che si trovano nei bucket Cloud Storage.

Best practice per i dati di testo utilizzati per addestrare i modelli AutoML

I seguenti consigli si applicano ai set di dati utilizzati per l'addestramento dei modelli AutoML.

  • Fornisci almeno 100 documenti per ogni valore di sentiment.
  • Utilizza un numero di documenti bilanciato per ogni punteggio di sentiment. Avere più esempi per punteggi di sentiment specifici possono introdurre un bias nel modello.

File di input

I tipi di file di input per l'analisi del sentiment possono essere JSON Lines o CSV.

Linee JSON

Il formato, i nomi dei campi e i tipi di valore per i file JSON Line sono determinati da un file schema, che sono file YAML accessibili pubblicamente.

Puoi scaricare il file di schema per l'analisi del sentiment dalla seguente località di Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml

Esempio di linee JSON

L'esempio seguente mostra come utilizzare lo schema per creare il proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nei file Linee JSON, includi le interruzioni di riga solo dopo ogni documento. Il campo dataItemResourceLabels specifica, ad esempio, ml_use ed è facoltativo.

{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Ogni riga in un file CSV fa riferimento a un singolo documento. L'esempio seguente mostra il formato generale di un file CSV valido. La colonna ml_use è facoltativa.

[ml_use],gcs_file_uri|"inline_text",sentiment,sentimentMax

Il seguente snippet è un esempio di file CSV di input.

test,gs://path_to_file,sentiment_value,sentiment_max_value
test,"inline_text",sentiment_value,sentiment_max_value
training,gs://path_to_file,sentiment_value,sentiment_max_value
validation,gs://path_to_file,sentiment_value,sentiment_max_value

Passaggi successivi