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 più etichette.
Classificazione con etichetta singola
Per la classificazione a singola etichetta, i dati di addestramento sono costituiti da documenti e dalla categoria di classificazione che si applica a questi documenti. La classificazione a singola etichetta consente di assegnare un'unica etichetta a un documento.
Requisiti dei dati
- Devi fornire almeno 20 e non più di 1.000.000 di documenti di addestramento.
- Devi fornire almeno 2 e non più di 5000 etichette di categorie uniche.
- Devi applicare ogni etichetta ad almeno 10 documenti.
- Per la classificazione multi-etichetta, puoi applicare una o più etichette a un documento.
- Puoi includere i documenti inline o fare riferimento ai 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 addestrare i modelli AutoML.
- Utilizza dati di addestramento vari quanto i dati su cui verranno effettuate le previsioni. Includi documenti di lunghezza diversa, documenti scritti da persone diverse, documenti che utilizzano formulazioni o stili diversi e così via.
- Utilizza documenti che possono essere facilmente classificati da un lettore umano. In genere, i modelli AutoML non possono prevedere etichette di categorie che gli esseri umani non possono assegnare. Pertanto, se una persona non può essere addestrata ad assegnare un'etichetta leggendo un documento, è probabile che non possa essere addestrato a farlo nemmeno il tuo modello.
- 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 ripeti l'addestramento finché non raggiungi i tuoi obiettivi di accuratezza, il che potrebbe richiedere centinaia o addirittura migliaia di esempi per etichetta.
- Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per l'etichetta più comune che per l'etichetta meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
- Valuta la possibilità di includere un'etichetta fuori dominio (ad esempio
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 sugli 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 i documenti per i quali queste etichette non sono adatte. - Se hai un gran numero di documenti che al momento non corrispondono alle tue etichette, filtrali in modo che il modello non distorca le previsioni in base a un'etichetta non pertinente. Ad esempio, potresti avere un modello di filtraggio che prevede se un documento rientra nell'insieme attuale di etichette o è fuori dal dominio. Dopo il filtraggio, avrai un altro modello che classifica solo i documenti del dominio.
File di input
La classificazione a etichetta singola supporta file di input JSON Lines o CSV. Puoi specificare una sola etichetta (annotazione) per un determinato documento. Le sezioni seguenti descrivono i file di input e forniscono esempi per ogni tipo di file.
JSON Lines
Il formato, i nomi dei campi e i tipi di valori per i file JSON Lines sono determinati da un file di schema, ovvero file YAML accessibili pubblicamente.
Puoi scaricare il file dello schema per la classificazione a singola etichetta dalla seguente posizione 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 favorire 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
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 da documenti e dalle categorie di classificazione applicabili a questi documenti. La classificazione multi-etichetta consente di assegnare una o più etichette a un documento.
Requisiti dei dati
- Devi fornire almeno 20 e non più di 1.000.000 di documenti di addestramento.
- Devi fornire almeno 2 e non più di 5000 etichette di categorie uniche.
- Devi applicare ogni etichetta ad almeno 10 documenti.
- Per la classificazione multi-etichetta, puoi applicare una o più etichette a un documento.
- Puoi includere i documenti inline o fare riferimento ai 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 addestrare i modelli AutoML.
- Utilizza dati di addestramento vari quanto i dati su cui verranno effettuate le previsioni. Includi documenti di lunghezza diversa, documenti scritti da persone diverse, documenti che utilizzano formulazioni o stili diversi e così via.
- Utilizza documenti che possono essere facilmente classificati da un lettore umano. In genere, i modelli AutoML non possono prevedere etichette di categorie che gli esseri umani non possono assegnare. Pertanto, se una persona non può essere addestrata ad assegnare un'etichetta leggendo un documento, è probabile che non possa essere addestrato a farlo nemmeno il tuo modello.
- Quando utilizzi la classificazione multietichetta, applica tutte le etichette pertinenti a ogni documento. Ad esempio, se etichetti documenti che forniscono dettagli sui 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 quando classifica un documento. Addestra un modello utilizzando 50 esempi per etichetta e valuta i risultati. Aggiungi altri esempi e ripeti l'addestramento finché non raggiungi 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 che per l'etichetta meno comune. Ti consigliamo di rimuovere le etichette con frequenza molto bassa.
- Valuta la possibilità di includere un'etichetta fuori dominio (ad esempio
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 sugli 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 i documenti per i quali queste etichette non sono adatte. - Se hai un gran numero di documenti che al momento non corrispondono alle tue etichette, filtrali in modo che il modello non distorca le previsioni in base a un'etichetta non pertinente. Ad esempio, potresti avere un modello di filtraggio che prevede se un documento rientra nell'insieme attuale di etichette o è fuori dal dominio. Dopo il filtraggio, avrai un altro modello che classifica solo i documenti del dominio.
File di input
La classificazione multi-etichetta supporta file di input JSON Lines o CSV. Puoi specificare più di un'etichetta (annotazione) per un determinato documento. Le sezioni seguenti descrivono i file di input e forniscono esempi per ogni tipo di file.
JSON Lines
Il formato, i nomi dei campi e i tipi di valori per i file JSON Lines sono determinati da un file di schema, ovvero file YAML accessibili pubblicamente.
Puoi scaricare il file schema per la classificazione multi-label dalla seguente posizione 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 favorire 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
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