【问题标题】:How send multiple request to AWS Sagemaker Endpoint on single invoke?如何在一次调用时向 AWS Sagemaker Endpoint 发送多个请求?
【发布时间】:2019-04-12 07:55:00
【问题描述】:

我在 SageMaker 端点上部署了一个深度学习模型,并且可以使用 sagemaker_client.invoke_endpoint 请求/获取答案。但是每个invoke_endpoint 都接受单个主体。如何发送多个正文以在单个请求中获得多个结果?

我尝试设置body='{"instances": [myData1, myData2]}',但它识别为单个字符串。

def sagemaker_handler(doc):
    data = doc.encode("UTF-8")
    response = sagemaker_client.invoke_endpoint(EndpointName='myEndpoint',
                                                ContentType='application/json',
                                                Accept='application/json', Body=data)
return response

【问题讨论】:

  • 我认为你只能在invoke_endpoint中发送一个正文
  • 除了invoke_endpoint之外还有其他选择吗?

标签: python-3.x amazon-web-services amazon-sagemaker


【解决方案1】:

此时无法使用invoke_endpoint 传递多个请求。 invoke_endpoint 只接受 body 中的一个请求并返回一个预测。 https://docs.aws.amazon.com/sagemaker/latest/dg/API_runtime_InvokeEndpoint.html

SageMaker 支持可用于多个请求的批处理,但这不是通过端点。 https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-batch-transform.html

亚马逊有用于传递多个请求和格式的文档,但这仅用于批量转换。 https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html

【讨论】:

    【解决方案2】:

    根据文档,invoke_endpoint() 支持body中的多个实例

    https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-runtime.html#SageMakerRuntime.Client.invoke_endpoint https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html

    我一次又一次地将它用于内置算法。你可以看看这个笔记本的例子:https://github.com/awslabs/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/blazingtext_text_classification_dbpedia/blazingtext_text_classification_dbpedia.ipynb

    我想知道深度学习容器的行为是否不同。我会试着找出答案。你能告诉我更多关于你的用例以及你为什么想一次预测多个实例的信息吗?很高兴阅读您的反馈并将其传递给 SageMaker 团队。

    或者,如果您实际上不需要 HTTPS 端点(即不需要实时预测),那么批量转换可能会解决您的问题:

    https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-batch-transform.html

    【讨论】:

    • 端点需要接受实时批量请求来提供预测。一个一个的请求非常耗时。 [link] https://github.com/tensorflow/serving/tree/master/tensorflow_serving/servables/tensorflow/testdata/saved_model_counter/00000123 这个*.pb 模型接受输入数据列表。我检查了很多来源,他们是如何为此创建 serving_input_fn 的,但一无所获。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2020-08-01
    • 2019-03-23
    • 2020-04-17
    • 1970-01-01
    • 2017-09-08
    • 2020-01-01
    相关资源
    最近更新 更多