Informazioni sulle suddivisioni di dati per i modelli AutoML

Questa pagina descrive in che modo Vertex AI utilizza i set di addestramento, convalida e test dei tuoi dati per addestrare un modello AutoML, nonché i modi in cui puoi controllare in che modo i dati vengono suddivisi in 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 di dati per dati di immagini, testo e video. Per informazioni sulle suddivisioni dei dati per i dati tabulari, consulta Suddivisione dei dati per dati tabulari.

Immagine

Per i set di dati immagine, 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 usa il set di test per fornire le metriche di valutazione finale.

Testo

Per i set di dati di testo, i set di addestramento e convalida vengono utilizzati per provare diverse combinazioni di opzioni di pre-elaborazione, architettura e iperparametri. Queste prove danno vita a modelli addestrati, che vengono poi valutati in base alla qualità del set di convalida e per guidare l'esplorazione di combinazioni di opzioni aggiuntive.

Quando un numero maggiore di prove non porta più a miglioramenti della qualità, quella versione del modello viene considerata il modello finale con le migliori prestazioni e addestrato. Successivamente, Vertex AI addestra altri due modelli, utilizzando i parametri e l'architettura determinati nella fase di ottimizzazione parallela:

  1. Un modello addestrato con i tuoi set di addestramento e convalida.

    Vertex AI genera le metriche di valutazione su questo modello utilizzando il tuo set di test. È la prima volta nel processo in cui viene utilizzato il set di test. Questo approccio garantisce che le metriche di valutazione finale rispecchino imparzialmente le prestazioni del modello addestrato finale in produzione.

  2. Un modello addestrato con i set di addestramento, convalida e test.

    Questo modello è quello che utilizzi per richiedere previsioni.

Video

Per i set di dati video, AutoML utilizza il set di addestramento per addestrare il modello, quindi lo utilizza per fornire le metriche di valutazione finale. Il set di convalida non viene utilizzato per i set di dati video.

Puoi consentire a Vertex AI di dividere automaticamente i dati. I dati vengono suddivisi in modo casuale nei tre insiemi per percentuale. Questo è il modo più semplice per suddividere i dati e funziona bene nella maggior parte dei casi.

Imposta Testo Immagine Video
Formazione 80 80 80
Convalida 10 10 N/A
Test 10 10 20

Per utilizzare la suddivisione dati predefinita, accetta il valore predefinito nella console Google Cloud o lascia vuoto il campo split per l'API.

Se vuoi controllare in che modo i dati vengono suddivisi in set, hai a disposizione le seguenti opzioni:

Puoi scegliere solo una di queste opzioni; sei tu a scegliere quando addestra 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 addestra 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 aver impostato l'etichetta ml_use sui dati.

Imposta un valore per l'etichetta ml_use

Puoi impostare l'etichetta ml_use per i dati di visione artificiale, video e testo al momento dell'importazione dei dati (per elemento di dati o per l'intero file di importazione) o dopo l'importazione dei dati utilizzando la console Google Cloud.

Impostazione di ml_use su singoli elementi di dati al momento dell'importazione

Puoi impostare l'etichetta ml_use su ogni elemento di dati includendo un valore per il campo aiplatform.googleapis.com/ml_use nei dati di JSON Lines o impostando il valore della prima colonna del file CSV. Per ulteriori dettagli, consulta le informazioni sulla preparazione dei dati per il tuo tipo di dati.

Se uno qualsiasi dei tuoi elementi di dati viene ripetuto nei dati (se lo stesso video, la stessa immagine o lo stesso snippet di testo compare più volte nel file di importazione), Vertex AI utilizza il valore ml_use per il primo elemento di dati rilevato e ignora i valori ml_use successivi. Il primo elemento rilevato non corrisponde necessariamente all'elemento più vicino all'inizio del file di caricamento.

Impostazione di ml_use per interi 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 il campo mappa 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 del 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 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 ricarichi un file di dati, anche se i valori ml_use sono cambiati, il valore ml_use non viene aggiornato. Non puoi aggiornare i valori ml_use dopo l'importazione utilizzando l'API Vertex AI.

Utilizzare l'etichetta ml_use

Quando addestra il modello, specifichi Manuale (avanzato) per la suddivisione dei dati nella console Google Cloud. Se l'addestramento viene eseguito 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 all'insieme specificato. Gli elementi di dati per cui non è impostato ml_use vengono esclusi dal processo di addestramento.

Suddivisione filtri dati

Puoi utilizzare altre etichette (oltre a ml-use) e altri campi per suddividere 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. Con questa impostazione, tutti i dati etichettati come rose vengono aggiunti al set di addestramento, tutti i dati etichettati come daisy aggiunti al set di convalida e tutti i dati etichettati come dahlia vengono aggiunti al set di test.

Se applichi un filtro in base a più campi, un elemento di dati potrebbe corrispondere a più di un filtro. In questo caso, il set di addestramento ha la precedenza, seguito dal set di convalida e dal set di test. In altre parole, un elemento viene inserito nel set di test solo se corrisponde al filtro del set di test, ma non ai filtri di addestramento e convalida. Se un elemento non corrisponde ai filtri per nessuno degli insiemi, viene escluso dall'addestramento.

Non utilizzare per la suddivisione dei dati categorie relative a ciò che sarà previsto dal modello; ciascun set deve riflettere l'intervallo di dati che il modello utilizza per fare previsioni. Ad esempio, non usare i filtri descritti in precedenza per un modello che prevede la classificazione delle immagini per tipo di fiore.

Se non vuoi che un filtro corrisponda ad alcun elemento, impostalo su "-" (il segno meno).

Divisione matematica

La divisione matematica è nota anche come "suddivisione frazione".

Per impostazione predefinita, i dati vengono suddivisi casualmente nei set in base alle percentuali predefinite per il tuo tipo di dati. Puoi modificare le percentuali in qualsiasi valore che sommati fino a 100 (per l'API Vertex AI, utilizzi frazioni la somma di 1,0).

Per modificare le percentuali (frazioni), utilizza l'oggetto FractionSplit per definire le frazioni. Per i tipi di dati di immagini, testo e video, puoi anche utilizzare la console Google Cloud per aggiornare le percentuali di suddivisione durante l'addestramento del modello.