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 a singola etichetta, i dati di addestramento sono costituiti dai documenti e dalla categoria di classificazione che si applicano a questi documenti. La classificazione a singola etichetta 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 etichette di categoria univoche e non più di 5000.
  • Devi applicare ogni etichetta ad almeno 10 documenti.
  • Per la classificazione con più etichette, puoi applicare una o più etichette a una documento.
  • Puoi includere documenti in linea o file TXT di riferimento che si trovano 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 l'addestramento AutoML.

  • Utilizza dati di addestramento diversificati quanto i dati su cui verranno eseguite le previsioni in cui viene eseguito il deployment. Includi documenti di lunghezze diverse, documenti scritti da persone diverse, documenti che utilizzano un testo o uno stile diverso 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 le etichette di categoria che gli esseri umani impossibile assegnare. Pertanto, se una persona non può essere addestrata ad assegnare un'etichetta leggendo un documento, probabilmente neanche il tuo modello può essere addestrato a 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 e esegui nuovamente l'addestramento fino a raggiungere i tuoi obiettivi di accuratezza, il che potrebbe richiedere centi o addirittura 1000 esempi per etichetta.
  • Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per l'etichetta più comune rispetto a quella meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta fuori dominio (ad es. 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichette i documenti su 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 a quelli per i quali queste etichette non sono adatte.
  • Se hai un numero elevato di documenti che al momento non corrispondono alle tue etichette, rimuovili in modo che il modello non sposti le previsioni verso un'etichetta fuori dominio. Ad esempio, potresti avere un modello di filtri che predittivo se un documento rientra nell'insieme corrente di etichette o è al di fuori del dominio. Dopo l'applicazione del filtro, avrai un altro modello che classifica solo i documenti in-domain.

File di input

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

Righe JSON

Vengono determinati il formato, i nomi dei campi e i tipi di valori per i file JSON Lines. tramite un file di schema, ovvero file YAML accessibili pubblicamente.

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 righe JSON

L'esempio seguente mostra come utilizzare lo schema per creare il tuo proprio file JSON Lines. L'esempio include interruzioni di riga per favorire la leggibilità. Nei file JSON, includi gli a capo solo dopo ogni documento. La 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. Le seguenti 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 da documenti e le categorie di classificazione applicabili a questi documenti. 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 etichette di categoria univoche e non più di 5000.
  • Devi applicare ogni etichetta ad almeno 10 documenti.
  • Per la classificazione con più etichette, puoi applicare una o più etichette a una documento.
  • Puoi includere documenti in linea o file TXT di riferimento che si trovano 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 l'addestramento AutoML.

  • Utilizza dati di addestramento diversificati quanto i dati su cui verranno eseguite le previsioni in cui viene eseguito il deployment. Includi documenti di lunghezze diverse, documenti scritti da persone diverse, documenti che utilizzano un testo o uno stile diverso e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. In genere, i modelli AutoML non possono prevedere etichette di categoria che gli esseri umani non possono assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare un'etichetta leggendo un molto probabilmente non è nemmeno possibile addestrare il modello per farlo.
  • Quando utilizzi la classificazione multietichetta, applica tutte le etichette pertinenti a ogni documento. Ad esempio, se etichetti documenti che forniscono dettagli su prodotti farmaceutici, potresti avere un documento etichettato con 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 il modello fino a raggiungere i tuoi obiettivi di accuratezza, il che potrebbe richiedere centinaia o addirittura 1000 esempi per etichetta.
  • Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per l'etichetta più comune rispetto a quella meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta fuori dominio (ad es. 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichette i documenti su 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 a quelli per i quali queste etichette non sono adatte.
  • Se hai un numero elevato di documenti che al momento non corrispondono alle tue etichette, rimuovili in modo che il modello non sposti le previsioni verso un'etichetta fuori dominio. Ad esempio, potresti avere un modello di filtri che predittivo se un documento rientra nell'insieme corrente di etichette o è al di fuori del dominio. Dopo l'applicazione del filtro, avrai un altro modello che classifica solo i documenti in-domain.

File di input

La classificazione multietichetta supporta i file di input JSON Lines o CSV. Puoi specificare più di un'etichetta (annotazione) per un determinato documento. Le seguenti sezioni descrivere i file di input e fornire 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 una di schema, che sono file YAML accessibili pubblicamente.

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

Esempio di righe JSON

L'esempio seguente mostra come utilizzare lo schema per creare il tuo proprio file JSON Lines. L'esempio include interruzioni di riga per favorire la leggibilità. Nei file JSON, includi gli a capo solo dopo ogni documento. La 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. Le seguenti 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