Sagemaker - дополнительная конечная точка - PullRequest
0 голосов
/ 28 января 2019

Я создал свою собственную модель с помощью scikit learn.Помимо стандартных конечных точек, '/ ping' и '/ invocations', я добавил третью, '/ оценки' (она называет предсказание_probabilities ()).

Когда я запускаю локально контейнер, все конечные точки работают правильно.Когда я развертываю это как конечную точку в Sagemaker, '/ invocations' работает правильно.С тем же аутентификационным токеном (сгенерированным Почтальоном) вызов «/ оценки» дает мне ошибку:

<AccessDeniedException>
  <Message>Unable to determine service/operation name to be authorized</Message>
</AccessDeniedException>

Я даже не вижу попыток вызвать «/ оценки» в cloudwatch.Есть ли способ создать третью конечную точку или я должен создать другой контейнер для этого и обслуживать вероятности из '/ invocations'?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Я предполагаю, что вы пытались вызвать https://runtime.sagemaker.us-west-2.amazonaws.com/endpoints/<YOUR_ENDPOINT_NAME>/estimates, когда увидели AccessDeniedException?

Если это так, то это связано с тем, что вы делаете запрос на URL, который не сопоставлен с SageMakerAPI времени выполнения.SigV4 не знает, как интерпретировать или подписать ваш запрос без таких сопоставлений, поэтому он не может аутентифицировать вас.

Чтобы вызвать конечную точку, вы всегда должны отправлять запросы на https://runtime.sagemaker.us-west-2.amazonaws.com/endpoints/<YOUR_ENDPOINT_NAME>/invocations.SageMaker всегда перенаправляет запросы к контейнеру вашей модели по пути /invocations, как указано в документации .

Если вы хотите объединить различные модели поведения в один и тот же контейнер, яЯ предлагаю включить CustomAttribute в ваши запросы InvokeEndpoint.Этот заголовок будет передан вашему контейнеру, который затем может по-разному отвечать в зависимости от значения пользовательского атрибута.

0 голосов
/ 29 января 2019

Похоже, вы используете пользовательский контейнер, поэтому трудно точно знать, что происходит :) У меня была такая проблема: вы пробовали и GET, и POST?

К вашему сведению, SageMaker теперь включает встроенный контейнер с открытым исходным кодом для sklearn: https://github.com/aws/sagemaker-scikit-learn-container. Может быть, это более простая отправная точка?:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...