Modello personalizzato ospitato per Earth Engine

L'esecuzione dell'inferenza con un modello addestrato personalizzato utilizzando un framework di machine learning come TensorFlow o PyTorch richiede il salvataggio e il caricamento del modello su Vertex AI, la creazione di un endpoint di previsione e il deployment del modello per gestire il traffico nell'endpoint creato.

Input del modello

Prima di salvare e caricare il modello in Vertex AI, devi assicurarti che il modello accetti i dati in un formato di payload supportato da Earth Engine. Per ulteriori dettagli, consulta la nostra pagina sui formati dei payload.

Artefatto del modello

Il passaggio successivo consiste nel salvare il modello in un formato ospitabile in Vertex AI.

TensorFlow

I modelli basati su TensorFlow possono essere salvati in diversi formati, ma Vertex AI richiede il formato SavedModel. I modelli basati su Keras devono essere esportati come SavedModel con tf.keras.Model.export(). Altri modelli TensorFlow richiedono l'utilizzo del più primitivo tf.saved_model.save(). Per ulteriori dettagli, consulta la documentazione sul formato SavedModel.

PyTorch

I modelli PyTorch hanno un modo leggermente diverso di preparare gli artefatti del modello per la pubblicazione delle previsioni. Se crei un modello con addestramento personalizzato, devi prima salvarlo. Per motivi di prestazioni, ti consigliamo di convertire il modello PyTorch in TorchScript e di salvare il file del modello con:

model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save

Una volta salvato, il file del modello deve essere archiviato in modo da poter essere sottoposto a deployment in Vertex AI. Quando utilizzi un container predefinito, il modello deve essere denominato "model". Per archiviare il modello, è necessario eseguire torch-model-archiver, includendo eventuali gestori personalizzati e file aggiuntivi richiesti dal modello. Ecco un esempio:

torch-model-archiver -f \
  --model-name model \
  --version 1.0  \
  --serialized-file $model_file \
  --handler $hander_file \
  --extra-files $index_to_name_file \
  --export-path $model_path

Deployment del modello su Vertex AI

Una volta salvati i file del modello, il passaggio successivo consiste nel caricare il modello in Vertex AI. Se l'artefatto del modello non è già in Google Cloud Storage, copia prima l'archivio del modello con un comando come gsutil cp $model_path gs://${your-bucket}/models/model.

Una volta copiato, puoi utilizzare Model Registry di Vertex AI per caricare il modello o utilizzare la riga di comando gcloud ed eseguire un comando simile al seguente:

gcloud ai models upload \
  --artifact-uri=gs://{your-bucket}/models/model \
  --display-name=${display-name} \
  --container-image-uri=${model-container} \
  --container-grpc-ports=8500

SUGGERIMENTO: per prestazioni ottimali, attiva le previsioni gRPC con il flag container-grpc-ports. Per saperne di più sulle previsioni gRPC, consulta la nostra documentazione sui formati dei payload. Questo flag può essere specificato solo utilizzando lo strumento a riga di comando gcloud.

Gestione degli endpoint del modello

Una volta caricato un modello su Vertex AI, crea un endpoint ed esegui il deployment del modello tramite la pagina Previsione online creando un nuovo endpoint o utilizzando la riga di comando gcloud con i comandi endpoints create e endpoints deploy-model. Ad esempio:

Creazione di un modello:

gcloud ai endpoints create \
  --display-name=${endpoint-name}

Deployment di un modello

gcloud ai endpoints deploy-model {endpoint-id} \
  --model=${model-id} \
  --traffic-split=0=100 \
  --display-name=${model-display-name} \
  --min-replica-count=${min-replica-count} \
  --max-replica-count=${max-replica-count}

Una volta eseguito il deployment del modello, puoi connetterti al modello in Earth Engine per eseguire le inferenze.