AWS SageMaker - 实时数据处理

问题描述 投票:2回答:3

我的公司进行在线消费者行为分析,我们使用从各种网站收集的数据(嵌入了我们的java脚本)进行实时预测。

我们一直在使用AWS ML进行实时预测,但现在我们正在尝试使用AWS SageMaker,我们发现实时数据处理与AWS ML相比是个问题。例如,我们有一些AWS ML可以转换为数字的字符串变量,并使用它们自动在AWS ML中进行实时预测。但它看起来不像SageMaker可以做到的。

有没有人对AWS SageMaker中的实时数据处理和预测有任何经验?

prediction amazon-sagemaker
3个回答
1
投票

是的,它可以!您必须创建一个管道(预处理+模型+后处理)并将其部署为端点以进行实时推理。你可以仔细检查sagemaker github网站中的推理示例。它正在使用sagemaker-python-sdk来训练和部署。 1:这适用于小数据sklearn模型。

https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_inference_pipeline

2:它还支持大数据(spark ML Pipeline服务容器),你也可以在其官方github中找到这个例子。


3
投票

听起来你只熟悉SageMaker的训练组件。 SageMaker有几个不同的组成部分:

  1. Jupyter笔记本
  2. 标签
  3. 训练
  4. 推理

你最有可能处理#3和#4。有几种方法可以在这里使用SageMaker。您可以使用其中一个built-in algorithms,它提供可在SageMaker上启动的训练和推理容器。要使用这些,您可以完全从控制台工作,只需指向S3中的数据,类似于AWS ML。如果你没有使用内置的算法,那么你可以使用sagemaker-python-sdk来创建训练和预测容器,如果你使用的是常见的框架,如tensorflow,mxnet,pytorch或其他。最后,如果您使用的是超级自定义算法(如果您从AWS ML移植,则不是这样),那么您可以将自己的docker容器用于培训和推理。

要创建推理端点,您可以转到推理部分下的控制台,然后单击以构建端点。请参阅此处的gif示例:gif showing building an endpoint

除此之外,如果您想使用代码实时调用端点,您可以使用任何AWS开发工具包,我将在此处演示python SDK boto3:

import boto3
sagemaker = boto3.client("runtime.sagemaker")
response = sagemaker.invoke_endpoint(EndpointName="herpderp", Body="some content")

在此代码中,如果您需要将传入的字符串值转换为数值,那么您可以轻松地使用代码执行此操作。


0
投票

在这种情况下,您需要在将数据提供给InvokeEndpoint请求主体之前对其进行预处理。如果使用python,可以使用int('your_integer_string')或float('your_float_string')将字符串转换为整数或浮点数。如果使用java,则可以使用Integer.parseInt(“yourIntegerString”)或Long.parseLong(“yourLongString”)或Double.parseDouble(“yourDoubleString”)或Float.parseFloat(“yourFloatString”)。

希望这可以帮助!

-Han

© www.soinside.com 2019 - 2024. All rights reserved.