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 accetti i dati in un formato del payload supportato da Earth Engine. Per ulteriori dettagli, consulta la nostra pagina sui formati del 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 di tf.saved_model.save() più primitivo. Per ulteriori dettagli, consulta la documentazione relativa al formato SavedModel.

PyTorch

I modelli PyTorch hanno un modo leggermente diverso per preparare gli elementi 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 implementato in Vertex AI. Quando utilizzi un contenitore predefinito, il modello deve essere denominato "model". Per archiviare il modello, è necessario eseguire torch-model-archiver, inclusi 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 in Vertex AI

Una volta salvati i file del modello, il passaggio successivo consiste nel caricare il modello in Vertex AI. Se l'elemento 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 il 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 un rendimento ottimale, attiva le previsioni gRPC con il container-grpc-ports flag. Per ulteriori informazioni 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.

Gestire gli endpoint del modello

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

Per creare 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 deduzioni.