Il servizio di addestramento di AI Platform Training gestisce le risorse di calcolo nel cloud per addestrare i tuoi modelli. Questa pagina descrive la procedura per addestrare un modello XGBoost utilizzando AI Platform Training.
Questo tutorial addestra un semplice modello per prevedere il livello di reddito di una persona in base al set di dati relativo al reddito del Censimento. Creazione di un'applicazione di addestramento in locale, caricamento su Cloud Storage e invio di un job di addestramento. Il servizio di addestramento AI Platform Training scrive l'output nel tuo bucket Cloud Storage e crea log in Logging.
Questi contenuti sono disponibili anche su GitHub come Jupyter Notebook.
Come addestrare il modello su AI Platform Training
Puoi addestrare il tuo modello su AI Platform Training in tre passaggi:
- Crea il file del modello Python
- Aggiungi il codice per scaricare i dati da Cloud Storage in modo che l'AI Platform Training possa utilizzarli
- Aggiungi il codice per esportare e salvare il modello in Cloud Storage al termine dell'addestramento del modello con AI Platform Training
- Preparare un pacchetto di applicazioni di addestramento
- Invia il job di addestramento
Prima di iniziare
Completa i seguenti passaggi per configurare un account Google Cloud, attivare l'API AI Platform Training e installare e attivare l'Cloud SDK.
Configura il progetto Google Cloud
- 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
Configura l'ambiente
Scegli una delle opzioni riportate di seguito per configurare l'ambiente localmente su macOS o in un ambiente remoto su Cloud Shell.
Per gli utenti di macOS, ti consigliamo di configurare l'ambiente utilizzando la scheda MACOS di seguito. Cloud Shell, visualizzato nella scheda CLOUD SHELL, è disponibile su macOS, Linux e Windows. Cloud Shell offre un modo rapido per provare AI Platform Training, ma non è adatto per lo sviluppo continuo.
macOS
-
Verifica l'installazione di Python
Verifica di avere installato Python e, se necessario, installalo.python -V
-
Verifica l'installazione di
pip
pip
è il gestore dei pacchetti di Python, incluso nelle versioni attuali di Python. Per verificare sepip
è già installato, eseguipip --version
. In caso contrario, scopri come installarepip
.Puoi eseguire l'upgrade di
pip
utilizzando il seguente comando:pip install -U pip
Per ulteriori dettagli, consulta la documentazione di pip.
-
Installa
virtualenv
virtualenv
è uno strumento per creare ambienti Python isolati. Per verificare se hai già installatovirtualenv
, eseguivirtualenv --version
. In caso contrario, installavirtualenv
:pip install --user --upgrade virtualenv
Per creare un ambiente di sviluppo isolato per questa guida, crea un nuovo ambiente virtuale in
virtualenv
. Ad esempio, il seguente comando attiva un ambiente denominatoaip-env
:virtualenv aip-env source aip-env/bin/activate
-
Ai fini di questo tutorial, esegui il resto dei comandi all'interno del tuo ambiente virtuale.
Consulta ulteriori informazioni sull'utilizzo divirtualenv
. Per uscire davirtualenv
, eseguideactivate
.
Cloud Shell
-
Apri la console Google Cloud.
-
Fai clic sul pulsante Attiva Google Cloud Shell nella parte superiore della finestra della console.
All'interno di un nuovo frame nella parte inferiore della console si apre una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Potrebbe essere necessario attendere qualche secondo per l'inizializzazione della sessione della shell.
La sessione Cloud Shell è pronta per l'uso.
-
Configura lo strumento a riga di comando
gcloud
in modo da utilizzare il progetto selezionato.gcloud config set project [selected-project-id]
dove
[selected-project-id]
è l'ID progetto. (Ometti le parentesi graffe di chiusura.)
Installare framework
macOS
Nell'ambiente virtuale, esegui il seguente comando per installare le versioni di scikit-learn, XGBoost e pandas utilizzate nell'AI Platform Training con versione del runtime 2.11:
(aip-env)$ pip install scikit-learn==1.0.2 xgboost==1.6.2 pandas==1.3.5
Fornendo i numeri di versione nel comando precedente, ti assicuri che le dipendenze nel tuo ambiente virtuale corrispondano a quelle nella versione di runtime. In questo modo, puoi evitare comportamenti imprevisti quando il codice viene eseguito su AI Platform Training.
Per ulteriori dettagli, opzioni di installazione e informazioni sulla risoluzione dei problemi, consulta le istruzioni di installazione per ciascun framework:
Cloud Shell
Esegui il seguente comando per installare scikit-learn, XGBoost e pandas:
pip install --user scikit-learn xgboost pandas
Per ulteriori dettagli, opzioni di installazione e informazioni sulla risoluzione dei problemi, consulta le istruzioni di installazione per ciascun framework:
Configura il bucket Cloud Storage
Ti servirà un bucket Cloud Storage per archiviare il codice di addestramento e le dipendenze. Ai fini di questo tutorial, è più semplice utilizzare un bucket Cloud Storage dedicato nello stesso progetto che utilizzi per AI Platform Training.
Se utilizzi un bucket in un progetto diverso, devi assicurarti che l'account di servizio AI Platform Training possa accedere al codice di addestramento e alle dipendenze in Cloud Storage. Senza le autorizzazioni appropriate, il job di addestramento non va a buon fine. Scopri come concedere le autorizzazioni per lo spazio di archiviazione.
Assicurati di utilizzare o configurare un bucket nella stessa regione in cui esegui i job di addestramento. Consulta le regioni disponibili per i servizi AI Platform Training.
Questa sezione spiega come creare un nuovo bucket. Puoi utilizzare un bucket esistente, ma deve trovarsi nella stessa regione in cui prevedi di eseguire i job di AI Platform. Inoltre, se non fa parte del progetto che utilizzi per eseguire AI Platform Training, devi esplicitamente concedere accesso agli account di servizio AI Platform Training.
-
Specifica un nome per il nuovo bucket. Il nome deve essere univoco in tutti i bucket di Cloud Storage.
BUCKET_NAME="YOUR_BUCKET_NAME"
Ad esempio, utilizza il nome del progetto con
-aiplatform
aggiunto:PROJECT_ID=$(gcloud config list project --format "value(core.project)") BUCKET_NAME=${PROJECT_ID}-aiplatform
-
Controlla il nome del bucket che hai creato.
echo $BUCKET_NAME
-
Seleziona una regione per il bucket e imposta una variabile di ambiente
REGION
.Utilizza la stessa regione in cui prevedi di eseguire i job di AI Platform Training. Consulta le regioni disponibili per i servizi AI Platform Training.
Ad esempio, il seguente codice crea
REGION
e lo imposta suus-central1
:REGION=us-central1
-
Crea il nuovo bucket:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
Informazioni sui dati
Il set di dati censuatari sul reddito utilizzato da questo esempio per l'addestramento è ospitato dal repository di machine learning dell'Università di Irvine.
Dati del censimento forniti da: Lichman, M. (2013). UCI Machine Learning Repository http://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science. Questo set di dati è disponibile pubblicamente per chiunque lo voglia utilizzare ai seguenti termini forniti dall'origine del set di dati - http://archive.ics.uci.edu/ml - ed è fornito "COSÌ COM'È" senza alcuna garanzia, espressa o implicita, da parte di Google. Google esclude qualsiasi responsabilità per eventuali danni, diretti o indiretti, derivanti dall'uso del set di dati.
Per praticità, abbiamo ospitato i dati in un bucket Cloud Storage pubblico: gs://cloud-samples-data/ai-platform/sklearn/census_data/
, che puoi scaricare nel file di addestramento Python.
Crea il file del modello Python
Puoi trovare tutto il codice di addestramento per questa sezione su GitHub:
train.py
.
Il resto di questa sezione fornisce una spiegazione della funzione del codice di addestramento.
Configurazione
Importa le seguenti librerie da Python, Google Cloud CLI, XGBoost e scikit-learn. Imposta una variabile per il nome del bucket Cloud Storage.
import xgboost as xgb
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import subprocess
from google.cloud import storage
# Fill in your Cloud Storage bucket name
BUCKET_ID = <YOUR_BUCKET_NAME>
Scaricare i dati da Cloud Storage
Durante il normale processo di sviluppo, carichi i tuoi dati su Cloud Storage in modo che AI Platform Training possa accedervi. I dati per questo tutorial sono ospitati in un bucket pubblico:
gs://cloud-samples-data/ai-platform/sklearn/census_data/
Il codice seguente scarica il set di dati di addestramento adult.data
. I dati di valutazione
sono disponibili in adult.test
, ma non vengono utilizzati in questo tutorial.
Aggiungi il codice del modello
Il codice di addestramento del modello esegue alcuni passaggi di base:
- Definire e caricare i dati
- Convertire le caratteristiche categoriche in caratteristiche numeriche
- Estrarre caratteristiche numeriche con una pipeline di scikit-learn
- Esporta e salva il modello in Cloud Storage
Definire e caricare i dati
Convertire le caratteristiche categoriche in caratteristiche numeriche
Addestrare, esportare e salvare il modello in Cloud Storage
Se il bucket Cloud Storage si trova nello stesso progetto utilizzato per AI Platform Training, quest'ultimo può leggere e scrivere nel tuo bucket. In caso contrario, devi assicurarti che il progetto che utilizzi per eseguire AI Platform Training possa accedere al tuo bucket Cloud Storage. Scopri come concedere le autorizzazioni per lo spazio di archiviazione.
Assicurati di chiamare il file del modello model.pkl
, model.joblib
o
model.bst
se vuoi utilizzarlo per richiedere previsioni online con AI Platform Prediction.
(Facoltativo) Verifica il caricamento del file del modello in Cloud Storage
Nella riga di comando, visualizza i contenuti della cartella del modello di destinazione per verificare che il file del modello sia stato caricato su Cloud Storage. Se non lo hai già fatto, imposta una variabile di ambiente (BUCKET_ID
) per il nome del bucket.
gcloud storage ls gs://$BUCKET_ID/census_*
L'output dovrebbe essere simile al seguente:
gs://[YOUR-PROJECT-ID]/census_[DATE]_[TIME]/model.bst
Crea il pacchetto dell'applicazione di addestramento
Il modo più semplice (e consigliato) per creare un pacchetto di applicazioni di addestramento utilizza gcloud
per pacchettizzare e caricare l'applicazione quando invii il job di addestramento. Questo metodo consente di creare una struttura di file molto semplice con solo due
file. Per questo tutorial, la struttura del file del pacchetto dell'applicazione di addestramento dovrebbe essere simile alla seguente:
census_training/
__init__.py
train.py
Crea una directory localmente:
mkdir census_training
Crea un file vuoto denominato
__init__.py
:touch census_training/__init__.py
Salva il codice di addestramento in un file Python e salva il file nella directory
census_training
. Consulta l'esempio di codice pertrain.py
. Puoi utilizzarecURL
per scaricare e salvare il file:curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloudml-samples/master/xgboost/notebooks/census_training/train.py > census_training/train.py
Scopri di più sulla pacchettizzazione di un'applicazione di formazione.
Invia il job di addestramento
In questa sezione utilizzerai
gcloud ai-platform jobs submit training
per inviare
il tuo job di addestramento.
Specificare i parametri del job di addestramento
Imposta le seguenti variabili di ambiente per ogni parametro nella richiesta del job di addestramento:
PROJECT_ID
: utilizza l'ID PROJECT_ID corrispondente al tuo progetto Google Cloud.BUCKET_ID
: il nome del bucket Cloud Storage.JOB_NAME
: un nome da utilizzare per il job (solo lettere maiuscole e minuscole, numeri e trattini bassi, che deve iniziare con una lettera). In questo caso:census_training_$(date +"%Y%m%d_%H%M%S")
JOB_DIR
: il percorso di una posizione Cloud Storage da utilizzare per i file di output del job di addestramento. Ad esempio,gs://$BUCKET_ID/xgboost_job_dir
.TRAINING_PACKAGE_PATH
: il percorso locale alla directory principale della tua applicazione di addestramento. In questo caso:./census_training/
.MAIN_TRAINER_MODULE
: specifica il file che deve essere eseguito dal servizio di addestramento AI Platform Training. Questo valore è formattato come[YOUR_FOLDER_NAME.YOUR_PYTHON_FILE_NAME]
. In questo caso,census_training.train
.REGION
: il nome della regione utilizzata per eseguire il job di addestramento. Utilizza una delle regioni disponibili per il servizio di addestramento AI Platform Training. Assicurati che il bucket Cloud Storage si trovi nella stessa regione. Questo tutorial utilizzaus-central1
.RUNTIME_VERSION
: devi specificare una versione di runtime di AI Platform Training che supporti scikit-learn. In questo esempio,2.11
.PYTHON_VERSION
: la versione di Python da utilizzare per il job. Per questo tutorial, specifica Python 3.7.SCALE_TIER
: una specifica del cluster predefinita per le macchine su cui eseguire il job di addestramento. In questo caso,BASIC
. Puoi anche utilizzare livelli di scalabilità personalizzati per definire la tua configurazione del cluster per l'addestramento.
Per comodità, di seguito sono riportate le variabili di ambiente per questo tutorial.
Sostituisci [VALUES-IN-BRACKETS]
con i valori appropriati:
PROJECT_ID=[YOUR-PROJECT-ID]
BUCKET_ID=[YOUR-BUCKET-ID]
JOB_NAME=census_training_$(date +"%Y%m%d_%H%M%S")
JOB_DIR=gs://$BUCKET_ID/xgboost_job_dir
TRAINING_PACKAGE_PATH="[YOUR-LOCAL-PATH-TO-TRAINING-PACKAGE]/census_training/"
MAIN_TRAINER_MODULE=census_training.train
REGION=us-central1
RUNTIME_VERSION=2.11
PYTHON_VERSION=3.7
SCALE_TIER=BASIC
Invia la richiesta:
gcloud ai-platform jobs submit training $JOB_NAME \
--job-dir $JOB_DIR \
--package-path $TRAINING_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--region $REGION \
--runtime-version=$RUNTIME_VERSION \
--python-version=$PYTHON_VERSION \
--scale-tier $SCALE_TIER
Dovresti vedere un output simile al seguente:
Job [census_training_[DATE]_[TIME]] submitted successfully. Your job is still active. You may view the status of your job with the command $ gcloud ai-platform jobs describe census_training_20180718_160825 or continue streaming the logs with the command $ gcloud ai-platform jobs stream-logs census_training_[DATE]_[TIME] jobId: census_training_[DATE]_[TIME] state: QUEUED
(Facoltativo) Visualizzazione dei log di addestramento
AI Platform Training acquisisce tutti gli stream e le istruzioni di logging stdout
e stderr
. Questi log vengono archiviati in Logging e sono visibili sia durante sia dopo l'esecuzione.
Per visualizzare i log del job di addestramento:
Console
Apri la pagina Job di AI Platform Training.
Seleziona il nome del job di addestramento da ispezionare. Viene visualizzata la pagina Dettagli job per il job di addestramento selezionato.
Nei dettagli del job, seleziona il link Visualizza log. Viene visualizzata la pagina Logging, in cui puoi cercare e filtrare i log relativi al job di addestramento selezionato.
gcloud
Puoi visualizzare i log nel terminale con
gcloud ai-platform jobs stream-logs
.
gcloud ai-platform jobs stream-logs $JOB_NAME
Passaggi successivi
- Genera previsioni online con XGBoost su AI Platform Training.
- Scopri come utilizzare i livelli di scalabilità personalizzati. per definire la tua configurazione del cluster per l'addestramento.