Questa pagina descrive come preparare i dati di testo da utilizzare in Vertex AI per addestrare modelli di classificazione con etichetta singola e con più etichette.
Classificazione con etichetta singola
Per la classificazione con una singola etichetta, i dati di addestramento sono costituiti da documenti delle categorie di classificazione applicabili ai documenti in questione. Etichetta singola consente di assegnare una sola etichetta a un documento.
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 una documento.
- Puoi includere documenti incorporati o file TXT di riferimento che si trovano di archiviazione dei 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.
- Usa dati di addestramento molto diversificati da quelli su cui saranno apportate le previsioni in cui viene eseguito il deployment. Includere documenti di diversa lunghezza, creati da diverso persone, documenti che usano termini o stili diversi 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. 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.
- 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 altro esempi e riaddestrarli fino a raggiungere i target di accuratezza, richiedono centinaia o perfino 1000 esempi per etichetta.
- Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per il più comune che per l'etichetta meno comune. Ti consigliamo di rimuoverla 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichette i documenti su altri argomenti comeNone_of_the_above
. Senza un etichetta, il modello addestrato tenterà di assegnare tutti i documenti a uno dei etichette definite, anche i documenti per cui queste etichette non sono adatte. - Se hai un numero elevato di documenti che al momento non corrispondono etichette, filtrale in modo che il modello non disallinea le previsioni un'etichetta esterna al dominio. Ad esempio, si potrebbe avere un modello di filtro prevede se un documento rientra nell'insieme corrente di etichette o se non è disponibile del dominio. Dopo l'applicazione di filtri, viene creato un altro modello che classifica solo documenti interni al dominio.
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 seguenti sezioni descrivere i file di input e fornire 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 linee JSON
L'esempio seguente mostra come utilizzare lo schema per creare
proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nel tuo
nei file JSON, includi le interruzioni di riga 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. Colonna ml_use
è facoltativo.
[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 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 una documento.
- Puoi includere documenti incorporati o file TXT di riferimento che si trovano di archiviazione dei 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.
- Usa dati di addestramento molto diversificati da quelli su cui saranno apportate le previsioni in cui viene eseguito il deployment. Includere documenti di diversa lunghezza, creati da diverso persone, documenti che usano termini o stili diversi 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. 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 con più etichette, applica tutte le etichette pertinenti a ogni
documento. Ad esempio, se stai etichettando 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 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, che potrebbero richiedere centinaia o persino 1000 esempi per etichetta.
- Il modello funziona meglio quando ci sono al massimo 100 volte più documenti per il più comune che per l'etichetta meno comune. Ti consigliamo di rimuoverla 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 tuo set di dati contiene documenti su altri argomenti, come sport o tecnologia, etichette i documenti su altri argomenti comeNone_of_the_above
. Senza un etichetta, il modello addestrato tenterà di assegnare tutti i documenti a uno dei etichette definite, anche i documenti per cui queste etichette non sono adatte. - Se hai un numero elevato di documenti che al momento non corrispondono etichette, filtrale in modo che il modello non disallinea le previsioni un'etichetta esterna al dominio. Ad esempio, si potrebbe avere un modello di filtro prevede se un documento rientra nell'insieme corrente di etichette o se non è disponibile del dominio. Dopo l'applicazione di filtri, viene creato un altro modello che classifica solo 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 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 di 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 linee JSON
L'esempio seguente mostra come utilizzare lo schema per creare
proprio file JSON Lines. L'esempio include interruzioni di riga per una migliore leggibilità. Nel tuo
nei file JSON, includi le interruzioni di riga 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. Colonna ml_use
è facoltativo.
[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