L'addestramento con algoritmi integrati in AI Platform Training ti consente di inviare il tuo set di dati e addestrare un modello senza scrivere codice di addestramento. Questa pagina spiega come funziona l'algoritmo Linear Learner integrato e come utilizzarlo.
Panoramica
Questo algoritmo integrato esegue la pre-elaborazione e l'addestramento di:
- Pre-elaborazione: AI Platform Training elabora il tuo mix di dati categorici e numerici in un set di dati interamente numerici per prepararlo per l'addestramento.
- Addestramento: utilizzando il set di dati e i parametri del modello che hai fornito, AI Platform Training esegue l'addestramento utilizzando lo Strumento per la stima lineare di TensorFlow.
Limitazioni
Le seguenti funzionalità non sono supportate per l'addestramento con l'algoritmo Linear Learner integrato:
- Formazione su più GPU. Gli algoritmi integrati utilizzano una sola GPU alla volta. Per sfruttare al massimo l'addestramento con più GPU su una singola macchina, devi creare un'applicazione di addestramento. Scopri di più sui tipi di macchina.
- Addestramento con TPU. Per l'addestramento con le TPU, devi creare un'applicazione di addestramento. Scopri come eseguire un job di addestramento con le TPU.
- Addestramento distribuito. Per eseguire un job di addestramento distribuito su AI Platform Training, devi creare un'applicazione di addestramento.
Tipi di macchine supportati
Sono supportati i seguenti livelli di scalabilità e tipi di macchine di AI Platform Training:
- Livello di scalabilità
BASIC
- livello di scalabilità
CUSTOM
con uno dei tipi di macchine Compute Engine supportati da AI Platform Training. - livello di scalabilità
CUSTOM
con uno dei seguenti tipi di macchine legacy:standard
large_model
complex_model_s
complex_model_m
complex_model_l
standard_gpu
standard_p100
standard_v100
large_model_v100
Formatta i dati di input
Ogni riga di un set di dati rappresenta un'istanza e ogni colonna di un set di dati rappresenta un valore delle caratteristiche. La colonna di destinazione rappresenta il valore che vuoi prevedere.
Prepara il file CSV
I dati di input devono essere un file CSV con codifica UTF-8. Se i dati di addestramento sono composti solo da valori categorici e numerici, puoi utilizzare il nostro modulo di pre-elaborazione per compilare i valori numerici mancanti, suddividere il set di dati e rimuovere le righe con oltre il 10% dei valori mancanti. In caso contrario, puoi eseguire l'addestramento senza attivare la pre-elaborazione automatica.
Devi preparare il file CSV di input per soddisfare i seguenti requisiti:
- Rimuovi la riga di intestazione. La riga di intestazione contiene le etichette di ciascuna colonna. Rimuovi la riga di intestazione per evitare di inviarla con le altre istanze di dati come parte dei dati di addestramento.
- Assicurati che la colonna di destinazione sia la prima. La colonna di destinazione contiene il valore che stai cercando di prevedere. Per un algoritmo di classificazione, tutti i valori nella colonna di destinazione sono una classe o una categoria. Per un algoritmo di regressione, tutti i valori nella colonna di destinazione sono valori numerici.
Gestire valori interi
Il significato dei valori interi può essere ambiguo, il che rende problematiche le colonne di valori interi nella pre-elaborazione automatica. AI Platform Training determina automaticamente come gestire i valori interi. Per impostazione predefinita:
- Se ogni valore intero è univoco, la colonna viene trattata come chiavi di istanza.
- Se sono disponibili solo pochi valori interi univoci, la colonna viene trattata come categoria.
- In caso contrario, i valori nella colonna vengono convertiti in numeri in virgola mobile e trattati come numerici.
Per ignorare queste determinazioni predefinite:
- Se i dati devono essere trattati come numerici, converti tutti i valori interi della colonna in virgola mobile, ad esempio {101,0; 102,0; 103,0}
- Se i dati devono essere trattati come categorici, anteponi un prefisso non numerico a tutti i valori interi nella colonna, ad esempio {codice_101, codice_102, codice_103}
Controlla le autorizzazioni dei bucket Cloud Storage
Per archiviare i dati, utilizza un bucket Cloud Storage nello stesso progetto Google Cloud che stai utilizzando per eseguire i job di AI Platform Training. In caso contrario, concedi ad AI Platform Training l'accesso al bucket Cloud Storage in cui sono archiviati i tuoi dati.
Inviare un job di addestramento per Linear Learner
Questa sezione spiega come inviare un job di addestramento utilizzando l'algoritmo Linear Learner integrato.
Puoi trovare brevi spiegazioni di ciascun iperparametro all'interno della console Google Cloud e una spiegazione più completa nel riferimento per l'algoritmo Linear Learner integrato.
Console
Vai alla pagina Job di addestramento di AI Platform nella console Google Cloud:
Fai clic sul pulsante Nuovo job di addestramento. Dalle opzioni visualizzate di seguito, fai clic su Addestramento con algoritmi integrati.
Nella pagina Crea un nuovo job di addestramento, seleziona Studente lineare e fai clic su Avanti.
Per scoprire di più su tutti i parametri disponibili, segui i link nella console Google Cloud e consulta il riferimento per la Linear Learner integrato per ulteriori dettagli.
gcloud
Imposta le variabili di ambiente per il job, inserendo
[VALUES-IN-BRACKETS]
con i tuoi valori:# Specify the name of the Cloud Storage bucket where you want your # training outputs to be stored, and the Docker container for # your built-in algorithm selection. BUCKET_NAME='BUCKET_NAME' IMAGE_URI='gcr.io/cloud-ml-algos/linear_learner_cpu:latest' # Specify the Cloud Storage path to your training input data. TRAINING_DATA='gs://$BUCKET_NAME/YOUR_FILE_NAME.csv' DATE="$(date '+%Y%m%d_%H%M%S')" MODEL_NAME='MODEL_NAME' JOB_ID="${MODEL_NAME}_${DATE}" JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
Invia il job di addestramento utilizzando
gcloud ai-platform jobs training submit
. Modifica questo esempio generico in modo che funzioni con il tuo set di dati:gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \ -- \ --preprocess --model_type=$MODEL_TYPE --batch_size=250 \ --learning_rate=0.1 --max_steps=1000 \ --training_data_path=$TRAINING_DATA
Monitora lo stato del job di addestramento visualizzando i log con
gcloud
. Consultagcloud ai-platform jobs describe
egcloud ai-platform jobs stream-logs
.gcloud ai-platform jobs describe ${JOB_ID} gcloud ai-platform jobs stream-logs ${JOB_ID}
Come funziona la pre-elaborazione
La pre-elaborazione automatica funziona per dati categorici e numerici. La routine di pre-elaborazione analizza e poi trasforma i dati.
Analisi
Innanzitutto, AI Platform Training rileva automaticamente il tipo di dati di ogni colonna, identifica il modo in cui deve essere trattata e calcola alcune statistiche dei dati nella colonna. Queste informazioni vengono acquisite nel file metadata.json
.
AI Platform Training analizza il tipo di colonna di destinazione per
identificare se il set di dati è destinato a regressione o classificazione. Se questa analisi è in conflitto con la selezione per model_type
, viene restituito un errore. Indica esplicitamente come deve essere trattata la colonna di destinazione formattando chiaramente i dati in casi ambigui.
Tipo: la colonna può essere numerica o categorica.
Trattamento: AI Platform Training identifica come trattare ogni colonna nel seguente modo:
- Se la colonna include un singolo valore in tutte le righe, viene trattata come costante.
- Se la colonna è categorica e include valori univoci in tutte le righe, viene trattata come row_identifier.
- Se è numerica con valori in virgola mobile o con valori interi e contiene molti valori univoci, la colonna viene trattata come numerica.
- Se la colonna è numerica con valori interi e contiene pochi valori univoci sufficienti, viene trattata come una colonna categorica in cui i valori interi sono l'identità o il vocabolario.
- Una colonna ha pochi valori univoci se il numero di valori univoci nella colonna è inferiore al 20% del numero di righe nel set di dati di input.
- Se la colonna è categorica con cardinalità elevata, viene trattata con l'hashing, in cui il numero di bucket di hash equivale alla radice quadrata del numero di valori univoci nella colonna.
- Una colonna categorica ha una cardinalità elevata se il numero di valori univoci è maggiore della radice quadrata del numero di righe nel set di dati.
- Se la colonna è categorica e il numero di valori univoci è inferiore o uguale alla radice quadrata del numero di righe nel set di dati, la colonna viene trattata come una normale colonna di categoria con vocabulary.
Statistiche: AI Platform Training calcola le seguenti statistiche, in base al tipo di colonna e all'elaborazione identificati, da utilizzare per trasformare la colonna in una fase successiva.
- Se la colonna è numerica, vengono calcolate la media e i valori di varianza.
- Se la colonna è categorica e il trattamento è l'identità o il vocabolario, i valori distinti vengono estratti dalla colonna.
- Se la colonna è categorica e il trattamento prevede l'hashing, il numero di bucket di hash viene calcolato in base alla cardinalità della colonna.
Trasformazione
Una volta completata l'analisi iniziale del set di dati, AI Platform Training trasforma i dati in base ai tipi, ai gruppi sperimentali e alle statistiche applicati al set di dati. AI Platform Training esegue le trasformazioni nel seguente ordine:
- Suddivide il set di dati di addestramento in set di dati di convalida e test se specifichi le percentuali di suddivisione.
- Rimuove le righe in cui mancano più del 10% di funzionalità.
- Riempie i valori numerici mancanti utilizzando la media della colonna.
Esempi di trasformazioni
Le righe con il 10% di valori mancanti vengono rimosse. Negli esempi seguenti, supponiamo che la riga abbia 10 valori. Per semplicità, ogni riga di esempio viene troncata.
Problema con la riga | Valori originali | Valori trasformati | Spiegazione |
---|---|---|---|
Riga di esempio senza valori mancanti | [3, 0,45, ..., 'fruits', 0, 1] |
[3; 0,45; ..., 1, 0, 0, 0, 1] |
La stringa "fruits" viene trasformata nei valori "1, 0, 0" nella codifica one-hot. Ciò avviene in seguito, nel grafico TensorFlow. |
Troppi valori mancanti | [3, 0,45, ..., 'frutti', __, __] |
La riga è stata rimossa | Manca più del 10% dei valori nella riga. |
Valore numerico mancante | [3, 0,45, ..., 'fruits', 0, __] |
[3; 0,45; ..., 1; 0; 0; 0; 0,54] |
|
Valore categoriale mancante | [3; 0,45; ..., __, 0, 1] |
[3; 0,45; ..., 0, 0, 0, 0, 1] |
|
Colonne funzionalità
Durante la trasformazione, le colonne non vengono elaborate. Al contrario, i metadati prodotti durante l'analisi vengono trasmessi ad AI Platform Training per creare le colonne delle caratteristiche di conseguenza:
Tipo di colonna | Trattamento colonna | Colonna delle funzionalità risultanti |
---|---|---|
Numerico | (Tutti i tipi di trattamento delle colonne) |
tf.feature_column.numeric_column
I valori della media e della varianza vengono utilizzati per standardizzare i
valori: |
Categorica | Identità |
tf.feature_column.categorical_column_with_identity
|
Categorica | Glossario |
tf.feature_column.categorical_column_with_vocabulary_list
|
Categorica | Hashing |
tf.feature_column.categorical_column_with_hash_bucket
|
Categorica | Costante o identificatore di riga | Ignorato. Nessuna colonna delle caratteristiche creata. |
Una volta completata la pre-elaborazione automatica, AI Platform Training carica di nuovo il set di dati elaborato nel bucket Cloud Storage nella directory specificata nella richiesta del job.
Ulteriori risorse di apprendimento
- Scopri di più sui modelli lineari su larga scala.
- Scopri di più su come vengono creati i modelli lineari con l'API TensorFlow Estimator.
- Scopri di più sulle colonne delle funzionalità TensorFlow.