Как передать переменные среды при развертывании конечной точки sagemaker?

#amazon-sagemaker

Вопрос:

Я пытаюсь отправить параметр в качестве переменной среды для моей развернутой модели. Я запустил настройку гиперпараметров и хочу передать строку для одного из параметров модели в развернутую конечную точку.

Я загружаю свою обученную модель PyTorch с:

 inference_model = PyTorchModel(
entry_point="inference.py",
source_dir="serve",
role=role,
model_data=model_data_s3_path,
env={'MODEL_ARCHITECTURE': best_architecture_name}, 
framework_version="1.8.1",
py_version="py36",
)
 

Я использую «env», чтобы попытаться захватить его во время вывода, но, похоже, это не работает, когда я использую os.environ['MODEL_ARCHITECTURE'] . Я получаю сообщение об ошибке, что такой переменной среды не существует? Что я упускаю? Должен ли я вообще передавать строку таким образом?

Я также использую os.environ['MODEL_ARCHITECTURE'] в model.py скрипте, который называется in inference.py .

Как я могу передать строку дальше? Мне нужно сделать это таким образом (это должно быть автоматизировано, я не могу изменить название модели вручную), так как я передам его некоторым людям, чтобы они провели его напрямую, и они не смогут вручную изменить название архитектуры.

РЕДАКТИРОВАТЬ: Я попробовал SM_ARCHITECTURE_NAME, так как SageMaker часто добавляет «SM_» к переменным среды / гиперпараметрам во время обучения, но это тоже не сработало.

Комментарии:

1. это действительно удивительно, это должно работать нормально (пример здесь github.com/aws/amazon-sagemaker-examples/blob/master/… ). Вы уверены, что строка точно такая же между вызовом SDK и os.environ[‘строка’] в контейнере?