Il servizio di addestramento di AI Platform Training gestisce le risorse di calcolo nel cloud per addestrare i modelli. Questa pagina descrive il processo per addestrare un XGBoost utilizzando AI Platform Training.
Questo tutorial addestra un modello semplice per prevedere il livello di reddito di una persona in base a il set di dati sul reddito da censimento. Creerai un di addestramento personalizzato, caricarla in Cloud Storage e inviare un lavoro di addestramento lungo. Il servizio di addestramento di AI Platform Training scrive l'output del bucket Cloud Storage e crea i log Logging.
Questi contenuti sono disponibili anche su GitHub come un Blocco note Jupyter.
Come addestrare il tuo modello su AI Platform Training
Puoi addestrare il tuo modello su AI Platform Training in tre passaggi:
- crea il file del tuo modello Python
- Aggiungi il codice per scaricare i tuoi dati da Cloud Storage in modo che AI Platform Training può usarlo
- Aggiungi il codice per esportare e salvare il modello in Cloud Storage dopo AI Platform Training termina l'addestramento del modello
- prepara un pacchetto dell'applicazione di addestramento
- Invia il job di addestramento
Prima di iniziare
Completa i seguenti passaggi per configurare un account Google Cloud, attiva il API AI Platform Training e installare e attivare Cloud SDK.
Configura il progetto 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
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.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
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 seguenti per configurare il tuo ambiente localmente su macOS oppure in un ambiente remoto su Cloud Shell.
Per gli utenti di macOS, consigliamo di configurare l'ambiente utilizzando MACOS sotto. Cloud Shell, mostrato nella scheda CLOUD SHELL, disponibile su macOS, Linux e Windows. Cloud Shell offre un modo rapido provare AI Platform Training, ma non è adatta per attività di sviluppo continue.
macOS
-
Controlla l'installazione di Python
Conferma di avere Python installato e, se necessario, installarlo.python -V
-
Controlla l'installazione di
pip
pip
è il gestore di pacchetti di Python, incluso nelle versioni correnti di Python. Esegui l'operazione per verificare se hai già installatopip
pip --version
. In caso contrario, scopri come installarepip
.Puoi eseguire l'upgrade di
pip
utilizzando il seguente comando:pip install -U pip
Consulta la documentazione pip per ulteriori dettagli.
-
Installa
virtualenv
virtualenv
è uno strumento per creare ambienti Python isolati. Controlla hanno già installatovirtualenv
eseguendovirtualenv --version
. In caso contrario, installavirtualenv
:pip install --user --upgrade virtualenv
Per creare un ambiente di sviluppo isolato per questa guida, crea una nuova in
virtualenv
. Ad esempio, attiva un ambiente denominatoaip-env
:virtualenv aip-env source aip-env/bin/activate
-
Ai fini di questo tutorial, esegui gli altri comandi all'interno completamente gestito di Google Cloud.
Consulta ulteriori informazioni sull'utilizzo divirtualenv
. Per uscirevirtualenv
, eseguideactivate
.
Cloud Shell
-
Apri la console Google Cloud.
-
Fai clic sul pulsante Attiva Google Cloud Shell in alto. della finestra della console.
Una sessione di Cloud Shell si apre all'interno di un nuovo frame nella parte inferiore della console Cloud e visualizza un prompt della riga di comando. L'operazione può richiedere alcuni secondi per inizializzare la sessione di shell.
La sessione di Cloud Shell è pronta per essere utilizzata.
-
Configura lo strumento a riga di comando
gcloud
per usare il progetto selezionato.gcloud config set project [selected-project-id]
dove
[selected-project-id]
è l'ID progetto. (Ometti tra parentesi quadre che racchiudono il testo.
Installa framework
macOS
Nell'ambiente virtuale, esegui questo comando per installare le versioni di scikit-learn, XGBoost e pandas utilizzate in AI Platform Training versione runtime 2,11
(aip-env)$ pip install scikit-learn==1.0.2 xgboost==1.6.2 pandas==1.3.5
Se fornisci i numeri di versione nel comando precedente, ti assicuri che il parametro delle dipendenze nel tuo ambiente virtuale corrispondano di runtime. Ciò aiuta a evitare comportamenti imprevisti quando il codice viene eseguito in AI Platform Training.
Per ulteriori dettagli, opzioni di installazione e informazioni sulla risoluzione dei problemi, consulta le istruzioni di installazione per ogni framework:
Cloud Shell
Esegui questo 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 ogni framework:
Configura il tuo bucket Cloud Storage
Avrai bisogno di un bucket Cloud Storage in cui archiviare il codice di delle dipendenze. Ai fini di questo tutorial, è più semplice utilizzare un un bucket Cloud Storage dedicato nello stesso progetto che stai utilizzando e AI Platform Training.
Se stai utilizzando un bucket in un altro progetto, garantire che l'account di servizio AI Platform Training possa accedere il codice di addestramento e le dipendenze in Cloud Storage. Senza l'appropriata autorizzazioni, il job di addestramento non va a buon fine. Scopri come concedere autorizzazioni per l'archiviazione.
Assicurati di utilizzare o configurare un bucket nella stessa regione che usi per l'esecuzione di addestramento. Scopri le regioni in cui è disponibile per e i servizi di AI Platform Training.
Questa sezione mostra come creare un nuovo bucket. Puoi utilizzare un modello esistente ma deve trovarsi nella stessa regione in cui prevedi di eseguire AI Platform di lavoro. Inoltre, se non fa parte del progetto che utilizzi per eseguire AI Platform Training, devi esplicitamente concedere agli account di servizio AI Platform Training.
-
Specifica un nome per il nuovo bucket. Il nome deve essere univoco in tutti in Cloud Storage.
BUCKET_NAME="YOUR_BUCKET_NAME"
Ad esempio, utilizza il nome del progetto aggiungendo
-aiplatform
: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 AI Platform Training di lavoro. Scopri le regioni in cui è disponibile per e i servizi di 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 sul reddito da censimento 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. Questo set di dati è disponibile pubblicamente e può essere utilizzato da chiunque ai sensi del 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 ambiente Cloud Storage pubblico
bucket: gs://cloud-samples-data/ai-platform/sklearn/census_data/
, che puoi eseguire
scaricalo all'interno del file di addestramento Python.
crea il file del tuo 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 librerie seguenti 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 tipico processo di sviluppo, carichi i tuoi dati in
Cloud Storage in modo che AI Platform Training possa accedervi. I dati
per questo tutorial è ospitato 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
. (Dati di valutazione
è disponibile in adult.test
, ma non viene utilizzato in questo tutorial.
Aggiungi il codice del modello
Il codice di addestramento del modello esegue alcuni passaggi di base:
- Definisci e carica i dati
- Convertire le caratteristiche categoriche in caratteristiche numeriche
- Estrarre caratteristiche numeriche con una pipeline scikit-learn
- Esporta e salva il modello in Cloud Storage
Definisci e carica i dati
Convertire le caratteristiche categoriche in caratteristiche numeriche
Addestra, esporta e salva il modello in Cloud Storage
Se il bucket Cloud Storage si trova nello stesso progetto che stai utilizzando AI Platform Training può quindi leggere e scrivere del bucket. In caso contrario, devi assicurarti che il progetto per eseguire AI Platform Training possono accedere ai tuoi Cloud Storage di sincronizzare la directory di una VM con un bucket. Scopri come concedere autorizzazioni per lo spazio di archiviazione.
Assicurati di assegnare al file del modello il nome model.pkl
, model.joblib
oppure
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 il contenuto della cartella del modello di destinazione da verificare
che il file del modello sia stato caricato su Cloud Storage. Imposta un
variabile di ambiente (BUCKET_ID
) per il nome del bucket, se non hai
già fatto.
gcloud storage ls gs://$BUCKET_ID/census_*
L'output dovrebbe essere simile al seguente:
gs://[YOUR-PROJECT-ID]/census_[DATE]_[TIME]/model.bst
Crea pacchetto dell'applicazione di addestramento
Il modo più semplice (e consigliato) per creare un pacchetto di un'applicazione di addestramento
gcloud
per pacchettizzare e caricare la domanda quando invii la formazione
un lavoro. Questo metodo consente di creare una struttura di file molto semplice con solo due
. Per questo tutorial, la struttura dei file della tua applicazione di addestramento
dovrebbe avere un aspetto simile al seguente:
census_training/
__init__.py
train.py
Crea una directory in locale:
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 poi salva il file all'interno Directory
census_training
. Vedi l'esempio di codice pertrain.py
Puoi utilizzarecURL
per scaricare e salva 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 addestramento.
Invio del job di addestramento
In questa sezione, utilizzi
gcloud ai-platform jobs submit training
per inviare
il tuo job di addestramento.
Specifica i parametri del job di addestramento
Imposta le seguenti variabili di ambiente per ciascun parametro nel job di addestramento richiesta:
PROJECT_ID
- Usa l'ID progetto (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 (lettere minuscole, numeri e solo trattini bassi, che iniziano con una lettera). In questo caso:census_training_$(date +"%Y%m%d_%H%M%S")
JOB_DIR
: il percorso di una località di 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 della directory radice del tuo di addestramento personalizzato. In questo caso:./census_training/
.MAIN_TRAINER_MODULE
- Specifica il file di AI Platform Training di addestramento personalizzato. Il formato è[YOUR_FOLDER_NAME.YOUR_PYTHON_FILE_NAME]
. In questo richiesta,census_training.train
.REGION
: il nome della regione che stai utilizzando per eseguire il job di addestramento. Utilizza le funzionalità di in una delle regioni disponibili per tramite il servizio di addestramento su AI Platform Training. Assicurati che Il bucket Cloud Storage si trova nella stessa regione. Questo tutorial usaus-central1
.RUNTIME_VERSION
- Devi specificare un Versione del runtime di AI Platform Training che supporta scikit-learn. In questo esempio,2.11
.PYTHON_VERSION
- La versione Python da utilizzare per il job. Per questo tutorial, e specificare Python 3.7.SCALE_TIER
- Una specifica predefinita del cluster per le macchine su cui eseguire un lavoro di addestramento lungo. In questo caso,BASIC
. Puoi anche Usa livelli di scalabilità personalizzati per definire la configurazione del tuo cluster per l'addestramento.
Per praticità, 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 i flussi e i log stdout
e stderr
istruzioni. Questi log vengono archiviati in Logging; sono visibili
sia durante che dopo l'esecuzione.
Per visualizzare i log per il job di addestramento:
Console
Apri la pagina Job di AI Platform Training.
Seleziona il nome del job di addestramento da ispezionare. Questo ti porta Pagina Dettagli job per il job di addestramento selezionato.
Nei dettagli del job, seleziona il link Visualizza log. Questo ti porta alla pagina Logging, dove puoi cercare e filtrare i log il job di addestramento selezionato.
gcloud
Puoi visualizzare i log nel tuo terminale con
gcloud ai-platform jobs stream-logs
gcloud ai-platform jobs stream-logs $JOB_NAME
Passaggi successivi
- Ottieni previsioni online con XGBoost su AI Platform Training.
- Scopri come utilizzare i livelli di scalabilità personalizzati. per definire la configurazione del tuo cluster per l'addestramento.