Con gli algoritmi integrati in AI Platform Training, puoi inviare i dati di addestramento, selezionare un algoritmo e lasciare che AI Platform Training gestisca la preelaborazione e l'addestramento per te, senza scrivere codice per un'applicazione di addestramento.
Panoramica
In questo tutorial, addestri un modello XGBoost senza scrivere alcun codice. Devi inviare il set di dati del reddito da censimento a AI Platform Training per la pre-elaborazione e l'addestramento, poi esegui il deployment 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 dalla riga di comando, utilizza Cloud Shell o qualsiasi 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:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
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
set di dati originale del censimento da utilizzare in questo tutorial, che è stato ospitato in un
nel bucket Cloud Storage,
gs://cloud-samples-data/ai-platform/census/algorithms/data/
.
Console
Prima di iniziare il job di addestramento, devi copiare i dati dal nostro dal 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 dai nostri nel bucket Cloud Storage.
Accedi 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 di file vengono scaricati nel tuo ambiente locale
ai-platform_census_algorithms_data_test.csv
e rispettivamenteai-platform_census_algorithms_data_train.csv
.
Quindi, carica i dati di addestramento e test in Cloud Storage di sincronizzare la directory di una VM con un bucket.
Vai alla pagina Browser per il tuo bucket Cloud Storage. Seleziona il tuo progetto dal menu a discesa Seleziona un progetto elenco o aprilo in una nuova scheda:
Fai clic sul nome del bucket che vuoi utilizzare o creane uno nuovo se non ne hai uno. Se crei un nuovo bucket, assicurati che sia un bucket regionale e seleziona la stessa regione in cui stai eseguendo 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. Poi vai alla nuova cartella facendo clic sul nome della cartella.
Fai clic su Carica file per caricare sia l'addestramento che il test. file,
ai-platform_census_algorithms_data_train.csv
eai-platform_census_algorithms_data_test.csv
al tuo 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 AI Platform Training nella Console Google Cloud:
Fai clic sul pulsante Nuovo job di addestramento. Tra le opzioni che Fai clic su Addestramento con algoritmi integrati sotto. La Viene visualizzata la pagina Crea un nuovo job di addestramento.
La creazione del job di addestramento è divisa in quattro passaggi. Il primo è Algoritmo di addestramento. Seleziona XGBoost e fai clic su Avanti.
gcloud
Configura le variabili di ambiente per l'ID progetto, per Cloud Storage il percorso dei dati di addestramento in Cloud Storage e l'algoritmo selezione.
Gli algoritmi integrati di AI Platform Training si trovano 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
gcloud storage 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"
Invio di un job di addestramento
Per inviare un job, devi specificare alcuni argomenti di addestramento di base argomenti correlati all'algoritmo XGBoost.
Argomenti generali per il job di addestramento:
Argomenti del job di addestramento | |
---|---|
Argomento | Descrizione |
job-id |
ID univoco per il job di addestramento. Puoi utilizzarlo per trovare i log lo stato del job di addestramento dopo l'invio. |
job-dir |
Percorso 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 macchina per l'addestramento. Utilizza BASIC per selezionare
una configurazione di una sola macchina.
|
master-image-uri |
URI di Container Registry utilizzato per specificare il container Docker in cui eseguire
per il job di addestramento. Utilizza il contenitore per l'algoritmo
XGBoost integrato definito in precedenza come IMAGE_URI .
|
region |
Specifica la regione disponibile in cui eseguire il job di addestramento. Per
questo tutorial, puoi usare la regione us-central1 .
|
Argomenti specifici dell'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 l'obiettivo di apprendimento corrispondente. 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 gli altri flag dell'algoritmo XGBoost, fai riferimento Riferimento XGBoost 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 invariati i campi Validation data (Dati di convalida) e Test data (Dati di test). impostazioni predefinite.
In Directory di output, inserisci il percorso del tuo bucket Cloud Storage in cui vuoi che AI Platform Training archivi gli output un lavoro di addestramento lungo. Puoi compilare direttamente il percorso del bucket Cloud Storage, o fai clic sul pulsante Sfoglia per selezionarla.
Per tenere tutto in ordine, crea una nuova directory all'interno bucket Cloud Storage per questo job di addestramento. Puoi farlo all'interno Riquadro Sfoglia.
Fai clic su Avanti.
Per Obiettivo, seleziona "binary:logistic", che indica un compito di apprendimento binario e uno scopo di regressione logistica.
Per 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 "xgboost_example").
- Inserisci un'regione disponibile (ad es. "us-central1").
- Seleziona "STANDARD" 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="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 job:
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 che il job è stato inviato correttamente, 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 di lavoro
Dopo aver completato con successo un job
di addestramento, AI Platform Training
crea un modello addestrato nel bucket Cloud Storage, insieme
artefatti. All'interno di JOB_DIR
puoi trovare la seguente struttura di directory:
- model/
- model.pkl
- deployment_config.yaml
- artifacts/
- instance_generator.py
- metadata.json
- processed_data/
- training.csv
- validation.csv
- test.csv
Verifica che la struttura della directory in JOB_DIR
corrisponda a:
gcloud storage ls $JOB_DIR/* --all-versions
esegui il deployment del modello addestrato
AI Platform Prediction organizza i modelli addestrati utilizzando modello e Risorse della versione. Un modello AI Platform Prediction è un container per più versioni del tuo modello di machine learning.
Per eseguire il deployment di un modello, crea una risorsa del modello in AI Platform Prediction, crea una versione di quel modello, poi utilizza il modello e la versione per richiedere per le previsioni.
Scopri di più su come eseguire il deployment di modelli in AI Platform Prediction.
Console
Nella pagina Job 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 il nome del job che hai utilizzato).
Nella pagina Dettagli job puoi visualizzare l'avanzamento generale della tua job oppure fai clic su Visualizza log per una visualizzazione più dettagliata dell'avanzamento.
Se il job ha esito positivo, nella parte superiore viene visualizzato il pulsante Esegui il deployment del modello. 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". Quindi, fai clic su Conferma.
Nella pagina Crea versione, inserisci un nome per la versione, ad esempio "v1" e lascia invariate le impostazioni predefinite di tutti gli altri campi. Clic 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 ai Dettagli versione. . Nel passaggio successivo di questo tutorial, invia una richiesta di previsione
gcloud
Il processo di addestramento con l'algoritmo XGBoost integrato produce
deployment_config.yaml
, che semplifica il deployment del modello
su AI Platform Prediction per le previsioni.
Copia il file nella tua directory locale e visualizzane il contenuto:
gcloud storage cp $JOB_DIR/model/deployment_config.yaml . cat deployment_config.yaml
Il file
deployment_config.yaml
dovrebbe essere simile al seguenti: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
La creazione della versione richiede alcuni minuti.
Ricevere previsioni online
Quando richiedi le 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
.
Puoi utilizzare instance_generator.py
per applicare la stessa pre-elaborazione
alle tue istanze di input a cui si applica AI Platform Training
per i dati di addestramento. Questo file legge le informazioni di mappatura archiviate nel
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 degli artefatti di addestramento e rivedi
metadata.json
:gcloud storage cp $JOB_DIR/artifacts/* . # Let's look at the metadata.json file head metadata.json
Utilizza
instance_generator.py
per preparare l'input di previsione per un dato istanza:# 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 il privato guadagna molto probabilmente uno stipendio superiore a 50.000 $.
Informazioni sui dati
Il set di dati Census Income usati da questo esempio per l'addestramento, UC Irvine Machine Learning Repository.
Dati del censimento gentilmente concessi da: Lichman, M. (2013); Repository di machine learning UCI http://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science.
Passaggi successivi
- Scopri di più su utilizzando l'algoritmo XGBoost integrato.