Grazie agli algoritmi integrati in AI Platform Training, puoi inviare i tuoi dati di addestramento, selezionare un algoritmo e lasciare che sia AI Platform Training per gestire la pre-elaborazione e l'addestramento al posto tuo, senza scrivere alcun codice per un'applicazione di addestramento.
Panoramica
In questo tutorial imparerai ad addestrare un modello di Linear Learner senza scrivere alcun codice. Devi inviare il set di dati Census Income ad AI Platform Training per la pre-elaborazione e l'addestramento, quindi esegui il deployment del modello su AI Platform Training per ottenere previsioni. Il modello risultante prevede la probabilità che il reddito annuo di un individuo sia superiore a 50.000 $.
Prima di iniziare
Per completare questo tutorial nella riga di comando, utilizza Cloud Shell o un qualsiasi ambiente in cui è installata Google Cloud CLI.
Completa i seguenti passaggi per configurare un account Google Cloud, abilitare le API richieste e installare e attivare Google Cloud CLI:
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AI Platform Training & Prediction and Compute Engine.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AI Platform Training & Prediction and Compute Engine.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
Configurazione
Per utilizzare algoritmi tabulari integrati, devi rimuovere la riga di intestazione dal file CSV e spostare i valori di destinazione nella prima colonna. Abbiamo modificato il set di dati del censimento originale per utilizzarlo con questo tutorial e lo abbiamo ospitato in un bucket Cloud Storage pubblico,
gs://cloud-samples-data/ai-platform/census/algorithms/data/
.
Console
Prima di iniziare il job di addestramento, devi copiare i dati dal nostro bucket Cloud Storage pubblico nel bucket Cloud Storage.
Copia i dati di esempio nel bucket Cloud Storage
Per prima cosa, scarica i dati di addestramento e test dal nostro bucket Cloud Storage pubblico.
Vai al nostro bucket Cloud Storage pubblico:
Scarica sia
test.csv
siatrain.csv
:Fai clic sul nome del file.
Nella pagina Dettagli oggetto, fai clic su Scarica. Questi file vengono scaricati nel tuo ambiente locale rispettivamente come
ai-platform_census_algorithms_data_test.csv
eai-platform_census_algorithms_data_train.csv
.
Successivamente, carica i dati di addestramento e test nel bucket Cloud Storage.
Vai alla pagina Browser del bucket Cloud Storage. Seleziona il progetto dall'elenco a discesa Seleziona un progetto o aprilo in una nuova scheda:
Fai clic sul nome del bucket che vuoi utilizzare oppure, se non ne hai uno, creane uno nuovo. Se crei un nuovo bucket, assicurati che sia a livello di regione e seleziona la stessa regione in cui esegui il job di addestramento di AI Platform Training.
(Facoltativo) Fai clic su Crea cartella per creare una cartella per i file che carichi. Inserisci un nome per la cartella (ad esempio "dati") e fai clic su Crea. Passa quindi alla nuova cartella facendo clic sul suo nome.
Fai clic su Carica file per caricare i file di addestramento e di test,
ai-platform_census_algorithms_data_train.csv
eai-platform_census_algorithms_data_test.csv
nel bucket.
Ora che i dati sono stati copiati nel bucket, puoi avviare un job di addestramento selezionando il tipo di algoritmo da utilizzare.
Seleziona l'algoritmo
Vai alla pagina Job di addestramento di AI Platform nella console Google Cloud:
Fai clic sul pulsante Nuovo job di addestramento. Tra le opzioni visualizzate di seguito, fai clic su Addestramento con algoritmi integrati. Viene visualizzata la pagina Crea un nuovo job di addestramento.
La creazione del job di formazione è suddivisa in quattro passaggi. Il primo passaggio è Algoritmo di addestramento. Seleziona Linear Learner e fai clic su Avanti.
gcloud
Configura le variabili di ambiente per l'ID progetto, il bucket Cloud Storage, il percorso Cloud Storage dei dati di addestramento e la selezione dell'algoritmo.
Gli algoritmi integrati di AI Platform Training si trovano all'interno di container Docker ospitati in Container Registry.
PROJECT_ID=YOUR_PROJECT_ID
BUCKET_NAME=YOUR_BUCKET_NAME
REGION="us-central1"
gcloud config set project $PROJECT_ID
gcloud config set compute/region $REGION
# Copy the training data into your Cloud Storage bucket, and set the path
# to your copy of the training data.
TRAINING_DATA_SOURCE=gs://cloud-samples-data/ai-platform/census/algorithms/data/train.csv
TRAINING_DATA_PATH=gs://$BUCKET_NAME/algorithms-demo/data/train.csv
gsutil cp $TRAINING_DATA_SOURCE $TRAINING_DATA_PATH
# Specify the Docker container URI specific to the algorithm.
IMAGE_URI="gcr.io/cloud-ml-algos/linear_learner_cpu:latest"
Invia un job di addestramento
Per inviare un job, devi specificare alcuni argomenti di addestramento di base e alcuni argomenti di base relativi all'algoritmo Linear Learner.
Argomenti generali per il job di addestramento:
Argomenti dei job di addestramento | |
---|---|
Argomento | Descrizione |
job-id |
ID univoco per il job di addestramento. Puoi utilizzarlo per trovare i log per lo stato del job di addestramento dopo l'invio. |
job-dir |
Percorso di Cloud Storage in cui AI Platform Training salva i file di addestramento dopo aver completato un job di addestramento con esito positivo. |
scale-tier |
Specifica i tipi di macchina per l'addestramento. Utilizza BASIC per selezionare
la configurazione di una sola macchina.
|
master-image-uri |
URI di Container Registry utilizzato per specificare il container Docker da usare per il job di addestramento. Utilizza il container per l'algoritmo Linear Learner integrato in precedenza definito come IMAGE_URI .
|
region |
Specifica la regione disponibile in cui eseguire il job di addestramento. Per
questo tutorial, puoi utilizzare la regione us-central1 .
|
Argomenti specifici dell'algoritmo Linear Learner integrato:
Argomenti degli algoritmi | |
---|---|
Argomento | Descrizione |
preprocess |
Argomento booleano che indica se AI Platform Training deve pre-elaborare i dati. |
model_type |
Indica il tipo di modello da addestrare: classificazione o regressione. |
training_data_path |
Percorso Cloud Storage dei dati di addestramento, che deve essere un file CSV. |
learning_rate |
Il tasso di apprendimento utilizzato dall'ottimizzatore lineare. |
max_steps |
Numero di passaggi per i quali eseguire l'addestramento. |
batch_size |
Numero di esempi da utilizzare per passaggio di addestramento. |
Per un elenco dettagliato di tutti gli altri flag dell'algoritmo Linear Learner, consulta la documentazione di riferimento per lo studente lineare integrato.
Console
Lascia selezionata l'opzione Abilita pre-elaborazione automatica dei dati.
In Percorso dati di addestramento, fai clic su Sfoglia. Nel riquadro a destra, fai clic sul nome del bucket in cui hai caricato i dati di addestramento e vai al file
ai-platform_census_algorithms_data_train.csv
.Lascia le impostazioni predefinite nei campi Dati di convalida e Dati di test.
In Directory di output, inserisci il percorso del tuo bucket Cloud Storage in cui vuoi che AI Platform Training archivi gli output del job di addestramento. Puoi compilare direttamente il percorso del bucket Cloud Storage oppure fare clic sul pulsante Sfoglia per selezionarlo.
Per mantenere tutto organizzato, crea una nuova directory all'interno del bucket Cloud Storage per questo job di addestramento. Puoi eseguire questa operazione nel riquadro Sfoglia.
Tocca Avanti.
In Tipo di modello, seleziona Classificazione.
Lascia invariate le impostazioni predefinite di tutti gli altri campi e fai clic su Avanti.
Nella pagina Impostazioni job:
- Inserisci un ID job univoco (ad esempio "linear_example").
- Inserisci una regione disponibile (ad es. "us-central1").
- Seleziona "BASIC" per il livello di scalabilità.
Fai clic su Fine per inviare il job di addestramento.
gcloud
Configura tutti gli argomenti per il job di addestramento e l'algoritmo, prima di utilizzare
gcloud
per inviare il job:DATASET_NAME="census" ALGORITHM="linear" MODEL_TYPE="classification" MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" # Give a unique name to your training job. DATE="$(date '+%Y%m%d_%H%M%S')" JOB_ID="${MODEL_NAME}_${DATE}" # Make sure you have access to this Cloud Storage bucket. JOB_DIR="gs://${BUCKET_NAME}/algorithms_training/${MODEL_NAME}/${DATE}"
Invia il job:
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_PATH
Una volta inviato correttamente il job, puoi visualizzare i log utilizzando i seguenti comandi
gcloud
:gcloud ai-platform jobs describe $JOB_ID gcloud ai-platform jobs stream-logs $JOB_ID
Comprendi la directory dei job
Dopo il completamento corretto di un job di addestramento, AI Platform Training
crea un modello addestrato nel tuo bucket Cloud Storage, insieme ad altri
artefatti. All'interno di JOB_DIR
puoi trovare la seguente struttura di directory:
- artefatti/
- metadata.json
- model/ (una directory
SaveModel di TensorFlow
che contiene anche un file
deployment_config.yaml
)- saved_model.pb
- deployment_config.yaml
- dati_elaborati/
- test.csv
- training.csv
- validation.csv
La directory dei job contiene anche vari file di checkpoint dei modelli in una directory "esperimento".
Verifica che la struttura di directory in JOB_DIR
corrisponda a:
gsutil ls -a $JOB_DIR/*
Esegui il deployment del modello addestrato
AI Platform Prediction organizza i modelli addestrati utilizzando le risorse di model e model. Un modello di previsione di AI Platform è un container per le versioni del modello di machine learning.
Per eseguire il deployment di un modello, devi creare una risorsa del modello in AI Platform Prediction, creare una versione del modello, quindi utilizzare il modello e la versione per richiedere previsioni online.
Scopri di più su come eseguire il deployment dei modelli in AI Platform Prediction.
Console
Nella pagina Job, puoi trovare un elenco di tutti i job di addestramento. Fai clic sul nome del job di addestramento appena inviato ("linear_example" o il nome del job utilizzato).
Nella pagina Dettagli job puoi visualizzare l'avanzamento generale del job o fare clic su Visualizza log per una visualizzazione più dettagliata del suo avanzamento.
Se il job ha esito positivo, viene visualizzato il pulsante Esegui il deployment del modello in alto. Fai clic su Esegui il deployment del modello.
Seleziona "Esegui il deployment come nuovo modello" e inserisci un nome per il modello, ad esempio "linear_model". Quindi, fai clic su Conferma.
Nella pagina Crea versione, inserisci un nome di versione, ad esempio "v1", e lascia le impostazioni predefinite per tutti gli altri campi. Fai clic su Salva.
Nella pagina Dettagli modello viene visualizzato il nome della versione. La creazione della versione richiede alcuni minuti. Quando la versione è pronta, accanto al nome della versione viene visualizzata un'icona a forma di segno di spunta.
Fai clic sul nome della versione ("v1") per accedere alla pagina Dettagli versione. Nel passaggio successivo di questo tutorial, invierai una richiesta di previsione
gcloud
Il processo di addestramento con l'algoritmo di Linear Learner integrato produce un
file, deployment_config.yaml
, che semplifica il deployment del modello su AI Platform Prediction per le previsioni.
Copia il file nella directory locale e visualizzane i contenuti:
gsutil cp $JOB_DIR/model/deployment_config.yaml . cat deployment_config.yaml
Il tuo file
deployment_config.yaml
dovrebbe apparire simile al seguente:deploymentUri: gs://YOUR_BUCKET_NAME/algorithms_training/census_linear_classification/20190227060114/model framework: TENSORFLOW labels: global_step: '1000' job_id: census_linear_classification_20190227060114 accuracy: '86' runtimeVersion: '1.14' pythonVersion: '2.7'
Crea il modello e la versione in AI Platform Training:
MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" gcloud ai-platform models create $MODEL_NAME --regions $REGION # Create a model and a version using the file above. VERSION_NAME="v_${DATE}" gcloud ai-platform versions create $VERSION_NAME \ --model $MODEL_NAME \ --config deployment_config.yaml
La creazione della versione richiede alcuni minuti.
Ricevi previsioni online
Quando richiedi previsioni, devi assicurarti che i dati di input siano formattati nello stesso modo dei dati di addestramento. Prima dell'addestramento, AI Platform Training pre-elabora i dati trasformandoli nel corpus mostrato in metadata.json
.
Il modello Linear Learner applica una pre-elaborazione simile ai dati di input prima di fare previsioni.
Console
Nella pagina Dettagli versione di "v1", la versione appena creata, puoi inviare una richiesta di previsione di esempio.
Seleziona la scheda Testa e utilizza.
Copia il seguente esempio nel campo di immissione:
{ "instances": [ {"csv_row": "44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States", "key": "dummy-key"} ] }
Fai clic su Test.
Il risultato della previsione di esempio contiene diversi campi. L'elenco
classes
mostra la classe prevista>50K'
:{ "predictions": [ { ... "classes": [ ">50K" ], ... } ] }
In questo caso, il modello di cui hai eseguito il deployment prevede la persona le cui informazioni che hai fornito guadagnano uno stipendio superiore a 50.000 $. (Poiché l'addestramento non è deterministico, il modello può differire.)
gcloud
Rivedi le ultime righe di
metadata.json
:gsutil cat $JOB_DIR/artifacts/metadata.json | tail
L'oggetto
target_column.mapping
mostra come verranno visualizzate le classi previste nei risultati della previsione:"target_algorithm": "TensorFlow", "target_column": { "mapping": { "0": "<=50K", "1": ">50K" }, "num_category": 2, "type": "classification" } }
Prepara l'input di previsione per un'istanza di dati. Tieni presente che devi fornire ogni istanza di dati come oggetto JSON con i seguenti campi:
csv_row
, una stringa contenente una riga di caratteristiche separate da virgole nello stesso formato delle istanze utilizzate durante l'addestramento.key
, un identificatore stringa univoco per ogni istanza. Agisce come una chiave di istanza che viene visualizzata come parte dell'output della previsione, in modo da poter abbinare ogni previsione all'istanza di input corrispondente.Questa operazione è necessaria per la previsione batch, poiché questa elabora l'input e salva l'output in un ordine imprevedibile.
Per la previsione online, che produce output nello stesso ordine dell'input fornito, le chiavi di istanza sono meno cruciali. Questo esempio esegue la previsione solo su una singola istanza, quindi il valore della chiave dell'istanza non è importante.
Per inviare una richiesta di previsione online utilizzando Google Cloud CLI, come in questo esempio, scrivi ogni istanza in una riga in un file JSON delimitato da una nuova riga.
Esegui i comandi seguenti nel terminale per creare un input per una singola istanza che puoi inviare ad AI Platform Prediction:
# A sample record from census dataset. Ground truth is >50K RAW_DATA_POINT='44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States' # Create a prediction request file echo "{\"csv_row\": \"$RAW_DATA_POINT\", \"key\": \"dummy-key\"}" > sample_input.json # Check the prediction request file. cat sample_input.json
Invia la richiesta di previsione:
gcloud ai-platform predict \ --model $MODEL_NAME \ --version $VERSION_NAME \ --json-instances sample_input.json \ --format "value(predictions[0].classes[0])" \ --signature-name "predict"
Questo output di previsione viene filtrato per mostrare solo la classe prevista:
>50K
Molto probabilmente, l'output della previsione è >50K
. Il modello di cui hai eseguito il deployment prevede
la persona le cui informazioni da te fornite guadagnano uno stipendio superiore a
50.000 $. Poiché l'addestramento non è deterministico, il modello può differire.
Informazioni sui dati
Il set di dati Census Income utilizzato da questo campione per l'addestramento è ospitato dal repository UC Irvine Machine Learning.
Dati del censimento gentilmente concessi da: Lichman, M. (2013); Repository di machine learning per UCI http://archive.ics.uci.edu/ml. Irvine, California: University of California, School of Information and Computer Science.
Passaggi successivi
- Scopri di più sull'utilizzo dell'algoritmo Linear Learner integrato.