Как связать AWS Sagemaker с веб-приложением?
У меня есть конечная точка и работает в AWS Sagemaker. Однако я не уверен, как отправить данные в эту конечную точку и получить прогноз.
Документация также не ясно по этому вопросу. Любая помощь будет оценена.
2 ответа
Как предложил Гай, используйте AWS SDK для вызова конечной точки Sagemaker и получения прогнозов.
Чтобы проверить использование Postman, вы можете выполнить следующие действия:
- На вкладке "Авторизация" выберите "Подпись AWS".
- Введите свой Access и секретный ключ пользователя IAM, который имеет разрешение на ресурсы Sagemaker.
- Введите регион AWS. eg.us-восток-1
- Введите "Service Name" как "sagemaker"
- Выберите правильный тип контента. Некоторые алгоритмы ML принимают только text/csv.
- Выберите тип запроса как "POST"
- Введите URL-адрес вызова Sagemaker. например: " https://runtime.sagemaker.us-east-1.amazonaws.com/endpoints/xgboost-xxxx-xx-xx-xx-xx-xx-xxx/invocations"
Я использую Nodejs для вызова конечной точки sagemaker, как показано ниже:
var AWS = require('aws-sdk');
var sageMakerRuntime = new AWS.SageMakerRuntime({region: 'us-east-1'});
var params = {
Body: new Buffer('{"instances": [1.0,2.0,5.0]}'),
EndpointName: 'EndpointName-XXX'
};
sageMakerRuntime.invokeEndpoint(params, function(err, data) {
responseData = JSON.parse(Buffer.from(data.Body).toString('utf8'))
console.log(responseData);
});
Способ вызова конечной точки - через конечную точку invoke, которую вы можете найти в API среды выполнения Amazon SageMaker: https://docs.aws.amazon.com/sagemaker/latest/dg/API_runtime_InvokeEndpoint.html
Вы можете использовать этот API через различные SDK, включая CLI, JavaScript, Java, C#, Python и другие.
Обратите внимание, что у вас есть пара версий SDK для Python. Один из них основан на boto, как вы можете видеть выше, а другой python SDK более лаконичен и может использоваться внутри ноутбука Jypther. Смотрите здесь для примера: https://docs.aws.amazon.com/sagemaker/latest/dg/tf-example1-invoke.html или https://docs.aws.amazon.com/sagemaker/latest/dg/mxnet-example-invoke.html
Самый простой способ вызвать конечную точку, если вы не интегрируете ее с существующим кодом на одном из вышеупомянутых языков, - это вызвать ее через функцию Lambda. Лямбда-функция должна иметь разрешения IAM для вызова этой конкретной конечной точки, а затем вы можете запускать лямбда-функцию из различных источников, таких как API-GW, мобильное устройство и т. Д.