Чтобы выполнить инференс с помощью пользовательской обученной модели, используя фреймворк машинного обучения, например TensorFlow или PyTorch, необходимо сохранить и загрузить модель в Vertex AI, создать конечную точку прогнозирования и развернуть модель для обслуживания трафика в созданной конечной точке.
Входные данные модели
Прежде чем сохранять и загружать модель в Vertex AI, убедитесь, что она принимает данные в формате полезной нагрузки, который поддерживает Earth Engine. Подробную информацию вы найдете на странице Форматы полезной нагрузки.
Объект модели
Следующий шаг – сохранить модель в формате, который можно разместить в Vertex AI.
TensorFlow
Модели на основе TensorFlow можно сохранять в нескольких разных форматах, но Vertex AI требует формат SavedModel. Модели на основе Keras необходимо экспортировать как SavedModel с помощью tf.keras.Model.export().
Для других моделей TensorFlow требуется использовать более примитивный tf.saved_model.save().
Подробную информацию вы найдете в документации по формату SavedModel.
PyTorch
Для моделей PyTorch подготовка артефактов для прогнозирования выполняется немного иначе. Если вы создаете собственную обученную модель, ее сначала нужно сохранить. Для повышения производительности рекомендуется преобразовать модель PyTorch в TorchScript и сохранить файл модели с помощью:
model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save
После сохранения файла модели его необходимо заархивировать, чтобы его можно было развернуть в Vertex AI. При использовании готового контейнера модель должна называться model. Чтобы заархивировать модель, необходимо запустить torch-model-archiver, включая все пользовательские обработчики и дополнительные файлы, необходимые для вашей модели. Вот пример:
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
Развертывание модели в Vertex AI
После сохранения файлов модели следующим шагом будет загрузка модели в Vertex AI. Если артефакт модели ещё не находится в Google Cloud Storage, сначала скопируйте туда архив модели с помощью команды gsutil cp $model_path
gs://${your-bucket}/models/model.
После копирования вы можете использовать Model Registry Vertex AI, чтобы загрузить модель, или командную строку gcloud и выполнить команду, подобную следующей:
gcloud ai models upload \
--artifact-uri=gs://{your-bucket}/models/model \
--display-name=${display-name} \
--container-image-uri=${model-container} \
--container-grpc-ports=8500
СОВЕТ. Чтобы обеспечить оптимальную производительность, включите прогнозы gRPC с помощью флага container-grpc-ports. Дополнительную информацию о прогнозах gRPC можно найти в документации по форматам полезной нагрузки.
Этот флаг можно указать только с помощью инструмента командной строки gcloud.
Управление конечными точками модели
После загрузки модели в Vertex AI создайте конечную точку и разверните модель на странице онлайн-прогнозирования, создав новую конечную точку или используя командную строку gcloud с командами endpoints create и endpoints deploy-model. Пример:
Создание модели:
gcloud ai endpoints create \
--display-name=${endpoint-name}
Развертывание модели
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}
После развертывания модели вы можете подключиться к ней в Earth Engine, чтобы выполнять логические выводы.