Sagemaker - дополнительная конечная точка

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

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

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

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

2 ответа

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

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

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

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

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

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

Другие вопросы по тегам