Con gli algoritmi integrati in AI Platform Training, puoi inviare i tuoi dati di addestramento, selezionare un algoritmo e lasciare che AI Platform Training gestisca la pre-elaborazione e l'addestramento per te, senza scrivere codice per un'applicazione di addestramento.
Panoramica
In questo tutorial, imparerai ad addestrare un modello XGBoost senza scrivere alcun codice. Invii il set di dati reddito censita 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 maggiore di 50.000 $.
Prima di iniziare
Per completare questo tutorial sulla riga di comando, utilizza Cloud Shell o qualsiasi ambiente in cui è installato l'interfaccia a riga di comando di Google Cloud.
Completa i passaggi seguenti per configurare un account GCP, abilitare le API richieste e installare e attivare l'interfaccia a riga di comando di Google Cloud:
- 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 dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.
-
Abilita le API AI Platform Training & Prediction and Compute Engine.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
gcloud init
-
Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.
-
Abilita le API AI Platform Training & Prediction and Compute Engine.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
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 originale di Census per l'utilizzo 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 al bucket Cloud Storage.
Copia i dati di esempio nel bucket Cloud Storage
Innanzitutto, scarica i dati di addestramento e test dal nostro bucket Cloud Storage pubblico.
Accedi al nostro bucket Cloud Storage pubblico:
Scarica sia
test.csv
chetrain.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
.
Dopodiché, carica i dati di addestramento e test nel bucket Cloud Storage.
Vai alla pagina del browser relativo al tuo bucket Cloud Storage. Seleziona il progetto nell'elenco a discesa Seleziona un progetto o aprilo in una nuova scheda:
Fai clic sul nome del bucket che vuoi utilizzare o crea un nuovo bucket se non ne hai uno. Se crei un nuovo bucket, assicurati che sia un bucket a livello di area geografica e seleziona la stessa area geografica in cui esegui il job di addestramento 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 "data") e fai clic su Crea. Quindi, vai alla nuova cartella facendo clic sul nome della cartella.
Fai clic su Carica file per caricare sia i file di addestramento che 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 che vuoi utilizzare.
Seleziona l'algoritmo
Vai alla pagina dei job di addestramento AI Platform in Google Cloud Console:
Fai clic sul pulsante Nuovo job di addestramento. Dalle opzioni visualizzate di seguito, fai clic su Addestramento dell'algoritmo integrato. Viene visualizzata la pagina Crea un nuovo job di addestramento.
La creazione del job di addestramento è suddivisa in quattro passaggi. Il primo passaggio è Algoritmo di addestramento. Seleziona XGBoost 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 sono in 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/boosted_trees: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 XGBoost.
Argomenti generali per il job di addestramento:
Argomenti del job di addestramento | |
---|---|
Argomento | Descrizione |
job-id |
ID univoco del job di addestramento. Puoi utilizzarlo per trovare i log per lo stato del tuo 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 riuscito. |
scale-tier |
Specifica i tipi di macchine per l'addestramento. Utilizza BASIC per selezionare una configurazione di una sola macchina.
|
master-image-uri |
URI Container Registry utilizzato per specificare il container Docker da utilizzare per il job di addestramento. Utilizza il container per l'algoritmo XGBoost integrato definito in precedenza come IMAGE_URI .
|
region |
Specifica l'area geografica disponibile in cui eseguire il job di addestramento. Per questo tutorial, puoi utilizzare l'area geografica us-central1 .
|
Argomenti specifici per l'algoritmo XGBoost integrato:
Argomenti degli algoritmi | |
---|---|
Argomento | Descrizione |
preprocess |
Argomento booleano che indica se AI Platform Training deve pre-elaborare o meno i dati. |
objective |
Indica l'attività di apprendimento e il corrispondente obiettivo di apprendimento. In questo esempio, "binary:logistic". |
training_data_path |
Percorso Cloud Storage dei dati di addestramento, che deve essere un file CSV. |
Per un elenco dettagliato di tutti i flag dell'algoritmo XGBoost, consulta il riferimento XGBoost integrato.
Console
Lascia selezionata l'opzione Attiva pre-elaborazione automatica dei dati.
In Training data path (Percorso dati di addestramento), fai clic su Browse (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
.Nelle sezioni Dati di convalida e Dati di test, lascia le impostazioni predefinite.
In Output directory, inserisci il percorso verso il tuo bucket Cloud Storage, in cui vuoi che AI Platform Training memorizzi gli output del tuo job di addestramento. Puoi inserire direttamente il percorso del bucket di 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 farlo nel riquadro Sfoglia.
Tocca Avanti.
Per Obiettivo, seleziona "binary:logistic", che indica un'attività di apprendimento binario e un obiettivo di regressione logistica.
In Tipo di modello, seleziona Classificazione.
Lascia invariati gli altri campi predefiniti e fai clic su Avanti.
Nella pagina Impostazioni job:
- Inserisci un ID job univoco (ad esempio "xgboost_example").
- Inserisci un'area geografica disponibile (ad esempio "us-central1").
- Seleziona "BASIC" per il livello di scalabilità.
Fai clic su Done (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="xgboost" 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 lavoro:
gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \ -- \ --preprocess --objective=binary:logistic \ --training_data_path=$TRAINING_DATA_PATH
Dopo aver 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
Informazioni sulla directory dei job
Dopo aver completato correttamente un job di addestramento, AI Platform Training crea un modello addestrato nel bucket Cloud Storage, insieme ad altri elementi. Puoi trovare la seguente struttura di directory in JOB_DIR
:
- modello/
- modello.pkl
- deployment_config.yaml
- artefatti/
- instance_generator.py
- metadata.json
- elaborati_dati/
- formazione.csv
- convalida.csv
- test.csv
Verifica che la struttura di directory in JOB_DIR
corrisponda:
gsutil ls -a $JOB_DIR/*
Esegui il deployment del modello addestrato
AI Platform Prediction organizza i modelli addestrati utilizzando risorse model e version. Un modello di AI Platform Prediction è un container per le versioni del tuo modello di machine learning.
Per eseguire il deployment di un modello, crei una risorsa modello in AI Platform Prediction, crei una versione di quel modello, quindi utilizzi il modello e la versione per richiedere le previsioni online.
Scopri di più su come eseguire il deployment dei modelli in AI Platform Prediction.
Console
Nella pagina Offerte di lavoro, puoi trovare un elenco di tutti i tuoi job di addestramento. Fai clic sul nome del job di addestramento che hai appena inviato ("xgboost_example" o sul nome del job che hai utilizzato).
Nella pagina Dettagli job puoi visualizzare l'avanzamento generale del job oppure fare clic su Visualizza log per avere una visualizzazione più dettagliata del relativo avanzamento.
Quando 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 "xgboost_model". Fai clic su Conferma.
Nella pagina Crea versione, inserisci un nome per la 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, viene visualizzato un segno di spunta accanto al nome della versione.
Fai clic sul nome della versione ("v1") per passare alla pagina Dettagli versione. Nel passaggio successivo di questo tutorial, invia una richiesta di previsione
gcloud
Il processo di addestramento con l'algoritmo XGBoost 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 file
deployment_config.yaml
dovrebbe essere simile al seguente:deploymentUri: gs://YOUR_BUCKET_NAME/algorithms_training/census_xgboost_classification/20190227060114/model framework: XGBOOST labels: job_id: census_xgboost_classification_20190227060114 error_percentage: '14' runtimeVersion: '0.81' 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
Per creare la versione sono necessari alcuni minuti.
Ricevi previsioni online
Quando richiedi le previsioni, devi assicurarti che i dati di input siano formattati allo stesso modo dei dati di addestramento. Prima dell'addestramento, AI Platform Training preelabora i tuoi dati trasformandoli nel corpus mostrato in metadata.json
.
Puoi utilizzare instance_generator.py
per applicare le stesse trasformazioni di pre-elaborazione alle istanze di input che AI Platform Training applica ai tuoi dati di addestramento. Questo file legge le informazioni di mappatura archiviate nel file
metadata.json
. Puoi anche utilizzare la funzione
transform_string_instance
nel modulo per trasformare la stringa non elaborata in un
formato accettato dal modello.
Scarica i file dell'elemento di addestramento e rivedi
metadata.json
:gsutil cp $JOB_DIR/artifacts/* . # Let's look at the metadata.json file head metadata.json
Utilizza
instance_generator.py
per preparare l'input della previsione per un'istanza di dati:# 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" # Now let's create a JSON prediction request python instance_generator.py --raw_data_string="${RAW_DATA_POINT}" > sample_input.json # Let's look at 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
La previsione risultante dovrebbe essere un numero superiore a 0, 5,che indica che la persona con maggiore probabilità guadagna uno stipendio superiore a 50.000 $.
Informazioni sui dati
Il set di dati relativo al reddito censito che questo campione utilizza per l'addestramento è ospitato dal repository UC Irvine Machine Learning.
Dati del censimento concessi da: Lichman, M. (2013). Repository di machine learning UCI http://archive.ics.uci.edu/ml. Irvine, CA: Università della California, School of Information and Computer Science.
Passaggi successivi
- Scopri di più sull'utilizzo dell'algoritmo XGBoost integrato.