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 documenti di 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 multi-etichetta, puoi applicare una o più etichette a un 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 consigli si applicano ai set di dati utilizzati per addestrare i modelli AutoML.
- Utilizza dati di addestramento il più diversificati possibile rispetto ai dati su cui verranno eseguite le previsioni. 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. Pertanto, se un essere umano non può essere addestrato 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 confidenza 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 i documenti relativi ad arte e intrattenimento, ma il tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti relativi ad altri argomenti comeNone_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 filtro che prediriga 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 un'etichetta supporta i file di input JSON Lines o 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
Il formato, i nomi dei campi e i tipi di valore per i file JSON Lines sono determinati da un file schema, ovvero file YAML accessibili pubblicamente.
Puoi scaricare il file dello schema per la classificazione con una sola etichetta dalla seguente posizione 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. 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 si riferisce 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 multi-etichetta, i dati di addestramento sono costituiti dai documenti e dalle categorie di classificazione applicabili a questi documenti. La classificazione con più etichette consente di assegnare una o più etichette a un documento.
Requisiti dei dati
- Devi fornire almeno 20 e non più di 1.000.000 documenti di 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 multi-etichetta, puoi applicare una o più etichette a un 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 consigli si applicano ai set di dati utilizzati per addestrare i modelli AutoML.
- Utilizza dati di addestramento il più diversificati possibile rispetto ai dati su cui verranno eseguite le previsioni. 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. 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.
- 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
eSide Effects
. - Fornisci il maggior numero possibile di documenti di addestramento per etichetta. Puoi migliorare i punteggi di confidenza del modello utilizzando più esempi per etichetta. Punteggi di confidenza migliori sono particolarmente utili quando il modello restituisce più etichette durante la classificazione di 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 i documenti relativi ad arte e intrattenimento, ma il tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichetta i documenti relativi ad altri argomenti comeNone_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 filtro che prediriga 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 sezioni seguenti descriveranno i file di input e forniranno esempi per ogni 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 schema, ovvero 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. 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 si riferisce 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