Prepara i dati di addestramento del testo per la classificazione

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

Classificazione con etichetta singola

Per la classificazione con etichetta singola, i dati di addestramento sono costituiti dai documenti e dalla categoria 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 documenti di addestramento e non più di 1.000.000.
  • Devi fornire un minimo di 2 e un massimo di 5000 etichette di categoria univoche.
  • 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 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 addestrare i modelli AutoML.

  • Utilizza dati di addestramento che siano diversi da quelli su cui verranno effettuate le previsioni. Includi documenti di diversa lunghezza, documenti creati da persone diverse, documenti con formulazioni o stili diversi e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. In genere, i modelli AutoML non sono in grado di prevedere etichette di categoria che gli esseri umani non possono assegnare. Quindi, se una persona non può essere addestrata per assegnare un'etichetta leggendo un documento, probabilmente anche il tuo modello non può 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 e riaddestra finché non raggiungi gli obiettivi di precisione, il che potrebbe richiedere centinaia o anche 1000 esempi per etichetta.
  • Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per l'etichetta più comune rispetto all'etichetta meno comune. Consigliamo di rimuovere le etichette di 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti su altri argomenti come None_of_the_above. Senza questa etichetta, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche i documenti per cui queste etichette non sono adatte.
  • Se disponi di un numero elevato di documenti che al momento non corrispondono alle tue etichette, filtrali in modo che il modello non distorce le previsioni verso un'etichetta esterna al dominio. Ad esempio, potresti avere un modello di filtro che prevede se un documento rientra nell'insieme di etichette corrente o è esterno al dominio. Dopo aver applicato i filtri, devi creare un altro modello che classifica solo i documenti interni al dominio.

File di input

La classificazione con etichetta singola supporta Righe JSON o 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 ciascun tipo di file.

Righe JSON

Il formato, i nomi dei campi e i tipi di valore per i file JSON Lines sono determinati da un file di schema, che sono 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 JSON Lines

L'esempio seguente mostra come utilizzare lo schema per creare il tuo file JSON Lines. L'esempio include interruzioni di riga per migliorare la leggibilità. Nei file JSON, includi 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

In un file CSV, ogni riga 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 da documenti e dalle categorie di classificazione applicabili 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 documenti di addestramento e non più di 1.000.000.
  • Devi fornire un minimo di 2 e un massimo di 5000 etichette di categoria univoche.
  • 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 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 addestrare i modelli AutoML.

  • Utilizza dati di addestramento che siano diversi da quelli su cui verranno effettuate le previsioni. Includi documenti di diversa lunghezza, documenti creati da persone diverse, documenti con formulazioni o stili diversi e così via.
  • Utilizza documenti che possono essere facilmente classificati da un lettore umano. In genere, i modelli AutoML non sono in grado di prevedere etichette di categoria che gli esseri umani non possono assegnare. Quindi, se una persona non può essere addestrata per assegnare un'etichetta leggendo un documento, probabilmente anche il tuo modello non può essere addestrato per farlo.
  • Quando 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 riaddestra finché non hai raggiunto gli obiettivi di precisione, 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 all'etichetta meno comune. Consigliamo di rimuovere le etichette di 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti su altri argomenti come None_of_the_above. Senza questa etichetta, il modello addestrato tenterà di assegnare tutti i documenti a una delle etichette definite, anche i documenti per cui queste etichette non sono adatte.
  • Se disponi di un numero elevato di documenti che al momento non corrispondono alle tue etichette, filtrali in modo che il modello non distorce le previsioni verso un'etichetta esterna al dominio. Ad esempio, potresti avere un modello di filtro che prevede se un documento rientra nell'insieme di etichette corrente o è esterno al dominio. Dopo aver applicato i filtri, devi creare un altro modello che classifica solo i documenti interni al dominio.

File di input

La classificazione con più etichette supporta le righe JSON o i 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 ciascun tipo di file.

Righe JSON

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

Puoi scaricare il file schema per la classificazione con più etichette 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 JSON Lines

L'esempio seguente mostra come utilizzare lo schema per creare il tuo file JSON Lines. L'esempio include interruzioni di riga per migliorare la leggibilità. Nei file JSON, includi 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

In un file CSV, ogni riga 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