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 create
i endpoints 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.