Размещенная пользовательская модель для Earth Engine

Выполнение вывода с помощью специально обученной модели с использованием платформы машинного обучения, такой как TensorFlow или PyTorch, требует сохранения и загрузки модели в Vertex AI, создания конечной точки прогнозирования и развертывания модели для обслуживания трафика в созданной конечной точке.

Ввод модели

Прежде чем сохранить и загрузить свою модель в Vertex AI, вы должны убедиться, что модель принимает данные в формате полезной нагрузки, который поддерживает Earth Engine. Для получения более подробной информации посетите нашу страницу форматов полезной нагрузки .

Модель Артефакта

Следующий шаг — сохранить вашу модель в формате, который можно разместить в Vertex AI.

Тензорфлоу

Модели на основе TensorFlow можно сохранять в нескольких различных форматах, но для Vertex AI требуется формат SavedModel. Модели на основе Keras необходимо экспортировать как SavedModels с помощью 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 .

После копирования вы можете либо использовать реестр моделей 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 для выполнения логических выводов.