Prepara i dati di addestramento testuale per la classificazione

Questa pagina descrive come preparare i dati di testo da utilizzare in un set di dati Vertex AI per addestrare modelli di classificazione con etichetta singola e con più etichette.

Classificazione con etichetta singola

Per la classificazione con etichetta singola, i dati di addestramento sono costituiti dai documenti e dalle categorie di classificazione applicabili a questi documenti. La classificazione con etichetta singola consente di assegnare a un documento una sola etichetta.

Requisiti dei dati

  • Devi fornire almeno 20 e non più di 1.000.000 di documenti per l'addestramento.
  • Devi fornire almeno 2 e non più di 5000 etichette di categoria uniche.
  • Devi applicare ciascuna 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 file TXT di riferimento presenti nei bucket Cloud Storage.

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

I seguenti suggerimenti si applicano ai set di dati utilizzati per addestrare i modelli AutoML.

  • Usa dati di addestramento diversificati da quelli su cui verranno fatte le previsioni. Includono documenti di diversa lunghezza, documenti creati da persone diverse, documenti che utilizzano formulazioni o stili differenti e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. I modelli AutoML in genere non sono in grado di prevedere etichette di categoria che gli esseri umani non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare un'etichetta leggendo un documento, probabilmente non può essere addestrato nemmeno per il modello.
  • 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 e riaddestra fino a raggiungere i target di accuratezza, il che potrebbe richiedere centinaia o persino 1000 esempi per etichetta.
  • Il modello funziona meglio quando i documenti per l'etichetta più comune sono al massimo 100 volte superiori rispetto a quelli per l'etichetta meno comune. Consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta esterna al dominio (ad esempio None_of_the_above) per i documenti che non corrispondono a nessuna delle etichette definite. Ad esempio, se hai etichettato solo documenti su arte e intrattenimento, ma il set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti relativi ad altri argomenti come None_of_the_above. Senza un'etichetta di questo tipo, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche quelli per cui queste etichette non sono adatte.
  • Se hai molti documenti che attualmente non corrispondono alle tue etichette, filtrali in modo che il modello non disallinea le previsioni verso 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 se è fuori dominio. Dopo l'applicazione del filtro, viene creato un altro modello che classifica solo i documenti interni al dominio.

File di input

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

Righe JSON

Il formato, i nomi dei campi e i tipi di valori dei file JSON Lines sono determinati da un file di schema, che è file YAML pubblicamente accessibile.

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

Esempio di linee JSON

L'esempio seguente mostra come utilizzare lo schema per creare il tuo 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 di 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

Lo snippet che segue è 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 questi documenti. La classificazione con più etichette consente di assegnare a un documento una o più etichette.

Requisiti dei dati

  • Devi fornire almeno 20 e non più di 1.000.000 di documenti per l'addestramento.
  • Devi fornire almeno 2 e non più di 5000 etichette di categoria uniche.
  • Devi applicare ciascuna 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 file TXT di riferimento presenti nei bucket Cloud Storage.

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

I seguenti suggerimenti si applicano ai set di dati utilizzati per addestrare i modelli AutoML.

  • Usa dati di addestramento diversificati da quelli su cui verranno fatte le previsioni. Includono documenti di diversa lunghezza, documenti creati da persone diverse, documenti che utilizzano formulazioni o stili differenti e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. I modelli AutoML in genere non sono in grado di prevedere etichette di categoria che gli esseri umani non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare un'etichetta leggendo un documento, probabilmente non può essere addestrato nemmeno per il modello.
  • Quando utilizzi la classificazione con più etichette, applica tutte le etichette pertinenti a ciascun documento. Ad esempio, se etichetti documenti che forniscono dettagli sui prodotti farmaceutici, potresti avere un documento con 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 riaddestra fino a raggiungere gli obiettivi di accuratezza, il che potrebbe richiedere centinaia o persino 1000 esempi per etichetta.
  • Il modello funziona meglio quando i documenti per l'etichetta più comune sono al massimo 100 volte superiori rispetto a quelli per l'etichetta meno comune. Consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta esterna al dominio (ad esempio None_of_the_above) per i documenti che non corrispondono a nessuna delle etichette definite. Ad esempio, se hai etichettato solo documenti su arte e intrattenimento, ma il set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti relativi ad altri argomenti come None_of_the_above. Senza un'etichetta di questo tipo, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche quelli per cui queste etichette non sono adatte.
  • Se hai molti documenti che attualmente non corrispondono alle tue etichette, filtrali in modo che il modello non disallinea le previsioni verso 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 se è fuori dominio. Dopo l'applicazione del filtro, viene creato un altro modello che classifica solo i documenti interni al dominio.

File di input

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

Righe JSON

Il formato, i nomi dei campi e i tipi di valori dei file JSON Lines sono determinati da un file di schema, che è file YAML pubblicamente accessibile.

Puoi scaricare il file di schema per la classificazione multietichetta dal seguente percorso di Cloud Storage:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Esempio di linee JSON

L'esempio seguente mostra come utilizzare lo schema per creare il tuo 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 di 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,...

Lo snippet che segue è 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