Все, что вам нужно, это:
- , чтобы ваша модель находилась в произвольном месте S3 в
model.tar.gz
архиве - , чтобы иметь скрипт вывода в образе докера, совместимого с SageMakerкоторый может прочитать ваш
model.pkl
, обработать его и обработать выводы. - , чтобы создать конечную точку, связывающую ваш артефакт с вашим кодом вывода
Когда вы запрашиваете развертывание конечной точки,SageMaker позаботится о том, чтобы загрузить ваш model.tar.gz
и распаковать его в соответствующее место в образе докера сервера, которое равно /opt/ml/model
В зависимости от используемой вами структуры, вы можете использовать либо уже существующийизображение докера (доступно для Scikit-learn, TensorFlow, PyTorch, MXNet) или вам может потребоваться создать свой собственный.
- Что касается создания собственного образа, см. здесь, в спецификации и здесь. два примера пользовательских контейнеров для R и sklearn (sklearn один менее актуален сейчас, когда есть предварительно созданное изображение докера вместе с sagemaker sklearn SDK )
- Что касается использования существующих контейнеров для Sklearn, PyTorch, MXNet, TF, проверьте этот пример: Случайный лес в контейнере SageMaker Sklearn . В этом примере ничто не мешает вам развернуть модель, которая была обучена в другом месте. Обратите внимание, что при несоответствии среды тренинга / развертывания вы можете работать с ошибками из-за разницы в версии программного обеспечения.
Относительно вашего следующего опыта:
при использовании метода развертыванияон использует то же местоположение s3 для развертывания модели, мы не создаем вручную такое же местоположение в s3, как оно создается моделью aws, и назовем его, используя некоторую временную метку
Я согласен, чтоИногда демонстрации, использующие SageMaker Python SDK (один из многих доступных SDK для SageMaker), могут вводить в заблуждение, в том смысле, что они часто используют тот факт, что Estimator
, чтотолько что обученный может быть развернут (Estimator.deploy(..)
) в том же сеансе, без необходимости создания концепции промежуточной модели, которая отображает код вывода на артефакт модели. Предполагается, что этот дизайн сделан для обеспечения совместимости кода, но в реальной жизни обучение и развертывание данной модели вполне могут быть выполнены с использованием различных сценариев, работающих в разных системах. Вполне возможно развернуть модель, предварительно обучив ее в том же сеансе, вам нужно создать экземпляр объекта sagemaker.model.Model
, а затем развернуть его.