Hostowany model niestandardowy w Earth Engine

Wykonywanie wnioskowania za pomocą modelu wytrenowanego niestandardowo przy użyciu frameworku systemów uczących się, takiego jak TensorFlow czy PyTorch, wymaga zapisania i przesłania modelu do Vertex AI, utworzenia punktu końcowego prognoz i wdrażania modelu w celu obsługi ruchu w utworzonym punkcie końcowym.

Dane wejściowe modelu

Zanim zapiszesz i prześlesz model do Vertex AI, sprawdź, czy model akceptuje dane w formacie ładunku, który obsługuje Earth Engine. Więcej informacji znajdziesz na stronie Formaty danych.

Artefakt modelu

Kolejnym krokiem jest zapisanie modelu w formacie, który można hostować w Vertex AI.

TensorFlow

Modele oparte na TensorFlow można zapisywać w różnych formatach, ale Vertex AI wymaga formatu SavedModel. Modele oparte na Keras muszą być eksportowane jako SavedModel z tf.keras.Model.export(). Inne modele TensorFlow wymagają użycia bardziej prymitywnego tf.saved_model.save(). Aby dowiedzieć się więcej, zapoznaj się z dokumentacją dotyczącą formatu SavedModel.

PyTorch

Modele PyTorch wymagają nieco innego sposobu przygotowywania artefaktów modelu na potrzeby prognozowania. Jeśli tworzysz model wytrenowany niestandardowo, musisz go najpierw zapisać. Ze względu na wydajność zalecamy przekonwertowanie modelu PyTorch do TorchScript i zapisanie pliku modelu za pomocą:

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

Po zapisaniu pliku modelu należy go zarchiwizować, aby można było go wdrożyć w Vertex AI. Jeśli używasz gotowego kontenera, model musi mieć nazwę „model”. Aby zarchiwizować model, należy uruchomić narzędzie torch-model-archiver, uwzględniając dowolne niestandardowe przetwarzanie i dodatkowe pliki wymagane przez model. Przykład:

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

Wdrażanie modelu w Vertex AI

Po zapisaniu plików modelu należy przesłać model do Vertex AI. Jeśli artefakt modelu nie znajduje się jeszcze w Google Cloud Storage, najpierw skopiuj archiwum modelu za pomocą polecenia podobnego do gsutil cp $model_path gs://${your-bucket}/models/model.

Po skopiowaniu możesz przesłać model za pomocą rejestru modeli Vertex AI lub użyć wiersza poleceń gcloud i uruchomić coś takiego:

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

WSKAZÓWKA: aby zapewnić optymalną wydajność, włącz prognozy gRPC za pomocą flagi container-grpc-ports. Więcej informacji o prognozach gRPC znajdziesz w dokumentacji formatów danych. Tę opcję można określić tylko za pomocą narzędzia wiersza poleceń gcloud.

Model zarządzania punktami końcowymi

Po przesłaniu modelu do Vertex AI utwórz punkt końcowy i wdróż model na stronie Prognozy online, tworząc nowy punkt końcowy, lub za pomocą wiersza poleceń gcloud za pomocą poleceń endpoints createendpoints deploy-model. Na przykład:

Tworzenie modelu:

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

Wdrażanie modelu

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}

Po wdrożeniu modelu możesz połączyć się z nim w Earth Engine, aby wykonywać na nim wnioskowanie.