Как запустить предварительно обученную модель в AWS Sagemaker? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть файл model.pkl, который предварительно обучен, и все другие файлы, связанные с моделью ml. Я хочу, чтобы он развернул его на мудреца AWS. Но без обучения, как развернуть его на aws sagmekaer, так как метод fit () в aws sagemaker запускает команду train и передает файл model.tar.gz в местоположение s3, а при использовании метода deploy он использует то же местоположение s3 дляразвернуть модель, мы не создаем вручную такое же местоположение в s3, как оно создается моделью aws, и назовите его, используя некоторую временную метку. Как поместить наш собственный персонализированный файл model.tar.gz в папку s3 и вызвать функцию deploy (), используя то же местоположение s3.

1 Ответ

0 голосов
/ 11 октября 2019

Все, что вам нужно, это:

  1. , чтобы ваша модель находилась в произвольном месте S3 в model.tar.gz архиве
  2. , чтобы иметь скрипт вывода в образе докера, совместимого с SageMakerкоторый может прочитать ваш model.pkl, обработать его и обработать выводы.
  3. , чтобы создать конечную точку, связывающую ваш артефакт с вашим кодом вывода

Когда вы запрашиваете развертывание конечной точки,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, а затем развернуть его.

...