In questo tutorial imparerai ad addestrare un modello semplice per prevedere le specie di fiori, utilizzando il set di dati Iris. Dopo aver addestrato e salvato il modello in locale, devi eseguirne il deployment AI Platform Prediction ed esegui query per ottenere previsioni online.
Puoi eseguire il deployment e gestire scikit-learn, pipeline on AI Platform Prediction. Il modulo Pipeline in scikit-learn ti consente di applicare più trasformazioni dei dati prima dell'addestramento con un estimatore. In questo modo vengono incapsulati più passaggi nell'elaborazione dei dati e viene garantito che gli stessi dati di addestramento vengano utilizzati in ogni passaggio.
Panoramica
In questo tutorial introduttivo, esegui i seguenti passaggi:
- Utilizza una pipeline scikit-learn per addestrare un modello Set di dati Iris.
- Salva il modello in locale.
- Carica il modello salvato in Cloud Storage.
- Crea una risorsa modello e una versione modello di AI Platform Prediction.
- Ottenere previsioni online per due istanze di dati.
Prima di iniziare
Completa i seguenti passaggi per configurare un account Google Cloud, attiva il API AI Platform Prediction e installare e attivare 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, 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 per provare AI Platform Prediction, ma non è adatto per lo sviluppo continuo.
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 informazioni.
-
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
in modo da utilizzare 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.
Installare framework
macOS
Nell'ambiente virtuale, esegui questo comando per installare le versioni di scikit-learn e pandas utilizzate in AI Platform Prediction versione runtime 2,11
(aip-env)$ pip install scikit-learn==1.0.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. Ciò aiuta a evitare comportamenti imprevisti quando il codice viene eseguito su AI Platform Prediction.
Per ulteriori dettagli, opzioni di installazione e informazioni sulla risoluzione dei problemi, consulta le istruzioni di installazione per ciascun framework:
Cloud Shell
Esegui questo comando per installare scikit-learn e pandas:
pip install --user scikit-learn pandas
Per ulteriori dettagli, opzioni di installazione e informazioni sulla risoluzione dei problemi, consulta le istruzioni di installazione per ogni framework:
Addestra ed esporta il modello
Puoi esportare Pipeline
oggetti
utilizzando la versione di joblib
inclusa in
scikit-learn o pickle
, in modo simile a come
ed esporti gli stimatori scikit-learn. L'esempio seguente configura una pipeline
che utilizza un
Da RandomForestClassifier
a
addestrare un modello sul set di dati Iris.
joblib
Configura la pipeline, addestra il modello e usa joblib
per esportare
Oggetto Pipeline
:
from sklearn import datasets
from sklearn import svm
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.externals import joblib
# Load the Iris dataset
iris = datasets.load_iris()
# Set up a pipeline with a feature selection preprocessor that
# selects the top 2 features to use.
# The pipeline then uses a RandomForestClassifier to train the model.
pipeline = Pipeline([
('feature_selection', SelectKBest(chi2, k=2)),
('classification', RandomForestClassifier())
])
pipeline.fit(iris.data, iris.target)
# Export the classifier to a file
joblib.dump(pipeline, 'model.joblib')
pickle
Configura la pipeline, addestra il modello e usa pickle
per esportare
Oggetto Pipeline
:
from sklearn import datasets
from sklearn import svm
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
import pickle
# Load the Iris dataset
iris = datasets.load_iris()
# Set up a pipeline with a feature selection preprocessor that
# selects the top 2 features to use.
# The pipeline then uses a RandomForestClassifier to train the model.
pipeline = Pipeline([
('feature_selection', SelectKBest(chi2, k=2)),
('classification', RandomForestClassifier())
])
pipeline.fit(iris.data, iris.target)
# Export the classifier to a file
with open('model.pkl', 'wb') as model_file:
pickle.dump(pipeline, model_file)
Requisiti di denominazione dei file del modello
Il file del modello salvato che carichi su Cloud Storage deve avere il nome model.pkl
o model.joblib
, a seconda della libreria utilizzata. Questa
limitazione garantisce che AI Platform Prediction utilizzi lo stesso schema per
ricostruire il modello all'importazione di quello utilizzato durante l'esportazione.
Libreria utilizzata per esportare il modello | Nome del modello corretto |
---|---|
pickle |
model.pkl |
sklearn.externals.joblib |
model.joblib |
Per le future iterazioni del modello, organizza il bucket Cloud Storage in modo che in modo che ogni nuovo modello abbia una directory dedicata.
Archivia il modello in Cloud Storage
Ai fini di questo tutorial, è più semplice utilizzare un modello Bucket Cloud Storage nello stesso progetto che stai utilizzando AI Platform Prediction.
Se stai utilizzando un bucket in un altro progetto, devi assicurarti che il tuo account di servizio AI Platform Prediction possa accedere ai tuoi in Cloud Storage. Senza le autorizzazioni appropriate, la tua richiesta la creazione di una versione del modello AI Platform Prediction non riesce. Scopri di più sulla concessione delle autorizzazioni per lo spazio di archiviazione.
Configura il tuo bucket Cloud Storage
Questa sezione mostra 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 Prediction, devi generare concedere l'accesso agli account di servizio AI Platform Prediction.
-
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 Prediction di lavoro. Scopri le regioni in cui è disponibile per Servizi di AI Platform Prediction.
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
Carica il file del modello esportato in Cloud Storage
Esegui il comando seguente per caricare il file della pipeline salvato nel bucket in Cloud Storage:
gcloud storage cp ./model.joblib gs://$BUCKET_NAME/model.joblib
Puoi utilizzare lo stesso bucket Cloud Storage per più file di modello. Ciascuna del modello deve trovarsi all'interno della sua directory all'interno del bucket.
Formatta input per la previsione
gcloud
Crea un file input.json
con ogni istanza di input su una riga separata:
[6.8, 2.8, 4.8, 1.4]
[6.0, 3.4, 4.5, 1.6]
Tieni presente che il formato delle istanze di input deve corrispondere a quello del modello
si aspetta. In questo esempio, il modello Iris richiede 4 funzionalità, pertanto l'input deve essere una matrice di forma (num_instances, 4
).
API REST
Crea un file input.json
formattato come un semplice elenco di numeri in virgola mobile, con ogni
di input dell'istanza su una riga separata:
{
"instances": [
[6.8, 2.8, 4.8, 1.4],
[6.0, 3.4, 4.5, 1.6]
]
}
Tieni presente che il formato delle istanze di input deve corrispondere a quello del modello
si aspetta. In questo esempio, il modello Iris richiede quattro caratteristiche, quindi l'input
deve essere una matrice di forma (num_instances, 4
).
Leggi ulteriori informazioni su formattare l'input per la previsione online.
Testa il tuo modello con le previsioni locali
Puoi utilizzare lo
gcloud ai-platform local predict
per testare il modo in cui il modello fornisce le previsioni prima di eseguirne il deployment
AI Platform Prediction. Il comando utilizza le dipendenze nel tuo ambiente locale
eseguire la previsione e restituire i risultati nello stesso formato
gcloud ai-platform predict
quando esegue previsioni online. Testare le previsioni in locale può aiutarti a scoprire gli errori prima di sostenere i costi delle richieste di previsione online.
Per l'argomento --model-dir
, specifica una directory contenente il tuo modello di machine learning esportato, sulla tua macchina locale o in Cloud Storage. Per l'argomento --framework
, specifica tensorflow
,
scikit-learn
o xgboost
. Non puoi utilizzare
Comando gcloud ai-platform local predict
con una previsione personalizzata
di Google Cloud.
L'esempio seguente mostra come eseguire una previsione locale:
gcloud ai-platform local predict --model-dir LOCAL_OR_CLOUD_STORAGE_PATH_TO_MODEL_DIRECTORY/ \
--json-instances LOCAL_PATH_TO_PREDICTION_INPUT.JSON \
--framework NAME_OF_FRAMEWORK
Esegui il deployment di modelli e versioni
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 del modello, poi collegala al file del modello archiviato di archiviazione ideale in Cloud Storage.
Crea una risorsa del modello
AI Platform Prediction utilizza le risorse del modello per organizzare le diverse versioni del modello.
Al momento devi decidere se vuoi utilizzare versioni del modello appartenenti a questo questo modello per utilizzare un endpoint a livello di regione o endpoint. Nella maggior parte dei casi, scegli un'area geografica endpoint. Se hai bisogno di funzionalità che siano disponibili solo su tipi di macchine legacy (MLS1), quindi utilizza l'endpoint globale.
A questo punto devi anche decidere se vuoi che le versioni del modello appartenenti a questo modello esportano eventuali log quando generano previsioni. I seguenti esempi includono non abilitare il logging. Scopri come attivare la funzionalità il logging.
console
Apri la pagina Modelli di AI Platform Prediction nella Console Google Cloud:
Fai clic sul pulsante Nuovo modello nella parte superiore della pagina Modelli. Questo per accedere alla pagina Crea modello.
Inserisci un nome univoco per il modello nel campo Nome modello.
Quando la casella di controllo Utilizza endpoint a livello di regione è selezionata, AI Platform Prediction utilizza un endpoint a livello di regione. Per utilizzare endpoint globale Deseleziona la casella di controllo Usa endpoint a livello di regione.
Nell'elenco a discesa Regione, seleziona una località per la previsione nodi. Le regioni disponibili variano a seconda sia che utilizzi un endpoint a livello di regione o di endpoint globale.
Fai clic su Crea.
Verifica di aver fatto ritorno alla pagina Modelli e che il nuovo modello sia presente nell'elenco.
gcloud
Endpoint a livello di regione
Esegui questo comando:
gcloud ai-platform models create MODEL_NAME \
--region=REGION
Sostituisci quanto segue:
- MODEL_NAME: un nome scelto da te per il modello.
- REGION: la regione della regione endpoint in cui vuoi eseguire la previsione nodi da eseguire. Deve essere una regione che supporta i tipi di macchine Compute Engine (N1).
Se non specifichi il flag --region
, allora gcloud CLI
ti chiede di selezionare un endpoint a livello di regione (o di utilizzare us-central
nella
endpoint globale).
In alternativa, puoi impostare la proprietà ai_platform/region
su una regione specifica per assicurarti che l'interfaccia a riga di comando gcloud utilizzi sempre l'endpoint regionale corrispondente per AI Platform Prediction, anche se non specifichi il flag --region
. Questa configurazione non è applicabile
ai comandi
gcloud ai-platform operations
gruppo di comandi).
Endpoint globale
Esegui questo comando:
gcloud ai-platform models create MODEL_NAME \
--regions=REGION
Sostituisci quanto segue:
- MODEL_NAME: un nome scelto da te per il modello.
- REGION: la regione sull'endpoint globale in cui vuoi nodi di previsione da eseguire. Deve essere una regione che supporta i tipi di macchine legacy (MLS1).
Se non specifichi il flag --regions
, allora
gcloud CLI ti chiede di selezionare un endpoint a livello di regione (oppure
usa us-central1
sull'endpoint globale).
API REST
Endpoint a livello di regione
Formatta la richiesta inserendo l'oggetto modello nella corpo della richiesta. Come minimo, specifica un nome per il modello sostituendo MODEL_NAME nel seguente esempio:
{ "name": "MODEL_NAME" }
Effettua una chiamata API REST al seguente URL, sostituendo PROJECT_ID con il tuo ID progetto Google Cloud:
POST https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models/
Sostituisci quanto segue:
REGION: la regione dell'endpoint a livello di regione di cui eseguire il deployment del modello. Deve essere una regione che supporta Tipi di macchine di Compute Engine (N1).
PROJECT_ID: l'ID del tuo progetto Google Cloud.
Ad esempio, puoi effettuare la richiesta seguente utilizzando l'
curl
. Questo comando autorizza la richiesta utilizzando le credenziali associati a Google Cloud CLI l'installazione.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models"
L'API restituisce una risposta simile alla seguente:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Endpoint globale
Formatta la richiesta inserendo l'oggetto modello nella corpo della richiesta. Come minimo, specifica un nome per il modello sostituendo MODEL_NAME nel seguente esempio e specifica una regione per sostituendo REGION con una regione che supporta tipi di macchine legacy (MLS1):
{ "name": "MODEL_NAME", "regions": ["REGION"] }
Effettua una chiamata API REST al seguente URL, sostituendo PROJECT_ID con il tuo ID progetto Google Cloud:
POST https://ml.googleapis.com/v1/projects/PROJECT_ID/models/
Ad esempio, puoi effettuare la seguente richiesta utilizzando il comando
curl
. Questo comando autorizza la richiesta utilizzando le credenziali associati a Google Cloud CLI l'installazione.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME", "regions": ["REGION"]}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://ml.googleapis.com/v1/projects/PROJECT_ID/models"
L'API restituisce una risposta simile alla seguente:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Per ulteriori dettagli, consulta l'API AI Platform Prediction.
Crea una versione del modello
Ora è tutto pronto per creare una versione del modello con il modello addestrato che in precedenza in Cloud Storage. Quando crei una versione, puoi specificare un certo numero di parametri. Il seguente elenco descrive i parametri comuni, alcuni dei quali sono obbligatori:
name
: deve essere univoco all'interno del modello AI Platform Prediction.deploymentUri
: il percorso della directory del modello in Cloud Storage.- Se esegui il deployment di un modello TensorFlow, Directory SavedModel.
- Se esegui il deployment di un modello scikit-learn o XGBoost,
questa è la directory contenente
model.joblib
,model.pkl
omodel.bst
file. - Se esegui il deployment di una routine di previsione personalizzata, questa è la directory contenente tutti gli artefatti del tuo modello. Le dimensioni totali di questa directory devono essere massimo 500 MB.
framework
:TENSORFLOW
,SCIKIT_LEARN
oXGBOOST
.runtimeVersion
: una versione di runtime basata su sulle dipendenze necessarie per il modello. Se stai implementando un modello scikit-learn o XGBoost, deve essere almeno 1.4. Se prevedi di utilizzare la versione del modello per le previsioni in batch, devi utilizzare la versione di runtime 2.1 o precedente.pythonVersion
: deve essere impostato su "3,5" (per le versioni di runtime da 1.4 a 1,14) o "3,7" (per runtime versioni 1.15 e successive) per essere compatibile con i file di modello esportati con Python 3. Può essere impostato anche su "2,7" se utilizzato con della versione 1.15 o precedenti del runtime.machineType
(facoltativo): il tipo di macchina virtuale utilizzata da AI Platform Prediction per i nodi che forniscono le previsioni. Scopri di più sui modelli tipi. Se non viene configurato, il valore predefinito èn1-standard-2
per gli endpoint a livello di regione emls1-c1-m2
sull'endpoint globale.
Visualizza più informazioni su ciascuno di questi parametri e altre informazioni parametri comuni, nel riferimento API per la risorsa versione.
Inoltre, se hai creato il modello su un endpoint a livello di regione, assicurati di Inoltre, crea la versione nella stessa regione endpoint.
console
Apri la pagina Modelli di previsione della piattaforma AI nella console Google Cloud:
Nella pagina Modelli, seleziona il nome della risorsa del modello che vuoi vuoi usare per creare la tua versione. Viene visualizzata la pagina Dettagli modello.
Fai clic sul pulsante Nuova versione nella parte superiore dei Dettagli modello . Viene visualizzata la pagina Crea versione.
Inserisci il nome della tua versione nel campo Nome. Se vuoi, inserisci un della versione nel campo Descrizione.
Inserisci le seguenti informazioni su come hai addestrato il tuo modello nella caselle a discesa corrispondenti:
- Seleziona la versione di Python utilizzata per addestrare il modello.
- Seleziona la Versione frame e Framework.
- Seleziona la versione del runtime ML. Scopri di più su Versioni del runtime di AI Platform Prediction.
Seleziona una macchina tipo per eseguirlo online la previsione.
Nel campo URI modello, inserisci la località del bucket Cloud Storage in cui hai caricato il file del modello. Puoi utilizzare il pulsante Sfoglia per trovare il percorso corretto.
Assicurati di specificare il percorso della directory contenente il file. non il percorso del file del modello stesso. Ad esempio, utilizza
gs://your_bucket_name/model-dir/
anzichégs://your_bucket_name/model-dir/saved_model.pb
ogs://your_bucket_name/model-dir/model.pkl
.Seleziona un'opzione di Scalabilità per il deployment delle previsioni online:
Se selezioni "Scalabilità automatica", il campo Viene visualizzato il campo Numero minimo di nodi. Quando il servizio è stato ridotto, puoi inserire il numero minimo di nodi da mantenere in esecuzione in qualsiasi momento.
Se selezioni "Scalabilità manuale", devi inserire Numero di nodi che vuoi mantenere sempre in esecuzione.
Scopri come le opzioni di scalabilità variano a seconda del computer del testo.
Scopri di più su per i costi di previsione.
Per completare la creazione della versione del modello, fai clic su Salva.
gcloud
Imposta le variabili di ambiente per archiviare il percorso di Cloud Storage directory in cui si trova il file binario del modello, il nome del modello, il nome della versione e la scelta del framework.
Quando crei una versione con gcloud CLI, puoi fornire il nome del framework in maiuscolo con trattini bassi (ad esempio,
SCIKIT_LEARN
) o in lettere minuscole con trattini (ad esempio,scikit-learn
). Entrambe le opzioni generano un comportamento identico.Sostituisci
[VALUES_IN_BRACKETS]
con i valori appropriati:MODEL_DIR="gs://your_bucket_name/" VERSION_NAME="[YOUR-VERSION-NAME]" MODEL_NAME="[YOUR-MODEL-NAME]" FRAMEWORK="[YOUR-FRAMEWORK_NAME]"
Crea la versione:
gcloud ai-platform versions create $VERSION_NAME \ --model=$MODEL_NAME \ --origin=$MODEL_DIR \ --runtime-version=2.11 \ --framework=$FRAMEWORK \ --python-version=3.7 \ --region=REGION \ --machine-type=MACHINE_TYPE
Sostituisci quanto segue:
REGION: la regione della regione endpoint su cui hai creato modello. Se hai creato il modello sull'endpoint globale, ometti il flag
--region
.MACHINE_TYPE: una macchina type, determinando le risorse di calcolo disponibili per i nodi di previsione.
La creazione della versione richiede alcuni minuti. Una volta pronto, consulta l'output seguente:
Creating version (this might take a few minutes)......done.
Informazioni sulla nuova versione:
gcloud ai-platform versions describe $VERSION_NAME \ --model=$MODEL_NAME
Dovresti vedere un output simile al seguente:
createTime: '2018-02-28T16:30:45Z' deploymentUri: gs://your_bucket_name framework: [YOUR-FRAMEWORK-NAME] machineType: mls1-c1-m2 name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME] pythonVersion: '3.7' runtimeVersion: '2.11' state: READY
API REST
Formatta il corpo della richiesta in modo che contenga oggetto versione. Questo esempio specifica la versione
name
,deploymentUri
,runtimeVersion
,framework
emachineType
. Sostituisci[VALUES_IN_BRACKETS]
con i valori appropriati:{ "name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]" }
Effettua la chiamata API REST al seguente percorso, sostituendo
[VALUES_IN_BRACKETS]
con i valori appropriati:POST https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions
Sostituisci REGION con la regione della regione endpoint in cui hai creato modello. Se hai creato il modello sulla endpoint globale, usa
ml.googleapis.com
.Ad esempio, puoi effettuare la richiesta seguente utilizzando l'
curl
:curl -X POST -H "Content-Type: application/json" \ -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions"
La creazione della versione richiede alcuni minuti. Una volta pronto, vedi un output simile a questo:
{ "name": "projects/[YOUR-PROJECT-ID]/operations/create_[YOUR-MODEL-NAME]_[YOUR-VERSION-NAME]-[TIMESTAMP]", "metadata": { "@type": "type.googleapis.com/google.cloud.ml.v1.OperationMetadata", "createTime": "2018-07-07T02:51:50Z", "operationType": "CREATE_VERSION", "modelName": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]", "version": { "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name", "createTime": "2018-07-07T02:51:49Z", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "machineType": "[YOUR_MACHINE_TYPE]", "pythonVersion": "3.7" } } }
Invia richiesta di previsione online
Dopo aver creato una versione, AI Platform Prediction avvia un nuovo server pronto per gestire le richieste di previsione.
gcloud
Imposta le variabili di ambiente per il nome del modello, il nome della versione e nome del file di input:
MODEL_NAME="pipeline" VERSION_NAME="v1" INPUT_FILE="input.json"
Invia la richiesta di previsione:
gcloud ai-platform predict --model $MODEL_NAME --version \ $VERSION_NAME --json-instances $INPUT_FILE
Python
Questo esempio presuppone che tu abbia familiarità con la libreria client Google Cloud per Python. Se non la conosci, consulta Utilizzo della libreria client Python.
import googleapiclient.discovery
def predict_json(project, model, instances, version=None):
"""Send json data to a deployed model for prediction.
Args:
project (str): project where the AI Platform Prediction Model is deployed.
model (str): model name.
instances ([[float]]): List of input instances, where each input
instance is a list of floats.
version: str, version of the model to target.
Returns:
Mapping[str: any]: dictionary of prediction results defined by the
model.
"""
# Create the AI Platform Prediction service object.
# To authenticate set the environment variable
# GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
service = googleapiclient.discovery.build('ml', 'v1')
name = 'projects/{}/models/{}'.format(project, model)
if version is not None:
name += '/versions/{}'.format(version)
response = service.projects().predict(
name=name,
body={'instances': instances}
).execute()
if 'error' in response:
raise RuntimeError(response['error'])
return response['predictions']
Per ulteriori informazioni sui parametri di input della previsione, consulta la l'API AI Platform Prediction per l'input di previsione.
Passaggi successivi
- Scopri come eseguire la pre-elaborazione con le pipeline scikit-learn nel blocco note scikit-learn su GitHub.
- Consulta altre applicazioni di esempio per scikit-learn su GitHub.