Questa pagina descrive in che modo Vertex AI utilizza i set di dati di addestramento, convalida e test per addestrare un modello AutoML e i modi in cui puoi controllare la suddivisione dei dati tra questi tre set. AutoML utilizza le suddivisioni dei dati in modo diverso a seconda del tipo di dati di addestramento.
Questa pagina descrive le suddivisioni dei dati per i dati delle immagini. Per informazioni sulle suddivisioni dei dati per i dati tabulari, consulta Suddivisioni dei dati per i dati tabulari.
Per i set di dati di immagini, AutoML utilizza il set di addestramento per addestrare il modello e il set di convalida per convalidare i risultati restituiti dal modello durante l'addestramento. Al termine dell'addestramento, AutoML utilizza il set di test per fornire le metriche di valutazione finali.
Puoi lasciare che Vertex AI divida automaticamente i dati. I tuoi dati vengono divisi in modo casuale nei tre set in base alla percentuale. Questo è il modo più semplice per dividere i dati e funziona bene nella maggior parte dei casi.
Imposta | Percentuale |
---|---|
Formazione | 80 |
Convalida | 10 |
Test | 10 |
Per utilizzare la suddivisione predefinita dei dati, accetta il valore predefinito nella console Google Cloud oppure lascia vuoto il campo split per l'API.
Se vuoi controllare la suddivisione dei dati in set, hai a disposizione le seguenti opzioni:
Scegli una sola di queste opzioni quando addestri il modello. Alcune di queste opzioni richiedono modifiche ai dati di addestramento (ad esempio,
l'etichetta ml_use
). L'inclusione di dati o etichette per le opzioni di suddivisione dei dati non
richiede l'utilizzo di queste opzioni; puoi comunque scegliere un'altra opzione quando
addestri il modello.
Suddivisione manuale per dati non strutturati
La suddivisione manuale è nota anche come "suddivisione predefinita".
Per utilizzare l'etichetta ml_use
per controllare la suddivisione dei dati, devi impostare
l'etichetta ml_use
sui tuoi dati.
Imposta un valore per l'etichetta ml_use
Puoi impostare l'etichetta ml_use
per i dati delle immagini al momento dell'importazione dei dati (per elemento di dati o per l'intero file di importazione) oppure dopo l'importazione dei dati utilizzando la console Google Cloud .
Impostazione di ml_use su singoli elementi di dati al momento dell'importazione
Imposta l'etichetta ml_use
su ogni elemento di dati includendo un valore per il campo
aiplatform.googleapis.com/ml_use
nei dati
JSON Lines o impostando il valore della prima colonna del file CSV. Per maggiori dettagli, consulta le
informazioni sulla preparazione dei dati per il tuo tipo di dati.
Se uno qualsiasi dei tuoi elementi di dati si ripete nei dati (se lo stesso snippet di immagine viene visualizzato più volte nel file di importazione), Vertex AI utilizza il valore ml_use
per il primo elemento di dati che incontra e ignora tutti i valori ml_use
successivi. Il primo elemento
trovato non è necessariamente quello più vicino all'inizio del file di caricamento.
Impostazione di ml_use per tutti i file di caricamento
Se i dati possono essere ordinati in diversi file di caricamento in base al valore ml_use
, puoi impostare il valore ml_use
per l'intero file di caricamento utilizzando il menu a discesa per file quando carichi i file utilizzando la console Google Cloud o utilizzando il campo di mapping dataItemLabels
nel metodo datasets.import.
Se imposti ml_use
per un file di caricamento e il file contiene anche valori ml_use
,
i valori ml_use
nel file hanno la precedenza sul valore
a livello di file.
Impostazione di ml_use dopo l'importazione
Dopo aver caricato i dati, puoi impostare o aggiornare il valore di ml_use
per elementi di dati specifici nella console Google Cloud selezionando uno o più elementi nella visualizzazione elenco e utilizzando il menu a discesa Assegna utilizzo ML.
Se carichi di nuovo un file di dati, anche se i valori ml_use sono cambiati, il valore ml_use
non viene aggiornato. Non puoi aggiornare i valori di ml_use
dopo l'importazione
utilizzando l'API Vertex AI.
Utilizzare l'etichetta ml_use
Quando addestri il modello, specifica Manuale (avanzato) per la suddivisione dei dati
nella console Google Cloud . Se esegui l'addestramento utilizzando l'API Vertex AI, utilizza l'oggetto
FilterSplit, specificando labels.aiplatform.googleapis.com/ml_use=training
per il filtro di addestramento, labels.aiplatform.googleapis.com/ml_use=validation
per il filtro di convalida e labels.aiplatform.googleapis.com/ml_use=test
per il filtro di test.
Ad esempio:
model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")
Tutti gli elementi di dati con un valore ml_use
vengono assegnati al set specificato. Gli elementi
di dati che non hanno ml_use
impostato vengono esclusi dal processo di addestramento.
Suddivisione del filtro dati
Puoi utilizzare altre etichette (oltre a ml-use) e altri campi per dividere i dati utilizzando l'oggetto FilterSplit nell'API Vertex AI. Ad esempio, potresti impostare trainingFilter
su
labels.flower=rose
, validationFilter
su labels.flower=daisy
e
testFilter
su labels.flower=dahlia
. Questa impostazione fa sì che tutti i dati
etichettati come rose
vengano aggiunti al set di addestramento, tutti i dati etichettati come daisy
vengano aggiunti al set di convalida e tutti i dati etichettati come dahlia
vengano aggiunti
al set di test.
Se filtri in base a più campi, un elemento di dati potrebbe corrispondere a più filtri. In questo caso, ha la precedenza il set di addestramento, seguito dal set di convalida e poi dal set di test. In altre parole, un elemento viene inserito nel set di test solo se corrisponde al filtro per il set di test, ma non ai filtri di addestramento o convalida. Se un elemento non corrisponde ai filtri di nessuno dei set, viene escluso dall'addestramento.
Non utilizzare categorie per la suddivisione dei dati correlate a ciò che il modello prevede; ogni set deve riflettere l'intervallo di dati che il modello utilizza per fare previsioni. Ad esempio, non utilizzare i filtri descritti in precedenza per un modello che dovrebbe classificare le immagini in base al tipo di fiore.
Se non vuoi che un filtro corrisponda ad alcun elemento, impostalo su "-
" (il segno meno).
Divisione matematica
La suddivisione matematica è nota anche come "suddivisione frazionaria".
Per impostazione predefinita, i dati vengono suddivisi casualmente nei set in base alle percentuali predefinite per il tipo di dati. Puoi modificare le percentuali con qualsiasi valore che sommi 100 (per l'API Vertex AI, utilizza frazioni che sommino 1,0).
Per modificare le percentuali (frazioni), utilizza l'oggetto FractionSplit per definire le frazioni. Per i tipi di dati immagine, puoi anche utilizzare la console Google Cloud per aggiornare le percentuali di suddivisione durante l'addestramento del modello.