AWS SageMaker - 实时数据处理

4

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

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

有没有人在AWS SageMaker中有实时数据处理和预测方面的经验?

4个回答

4

听起来你只熟悉SageMaker的培训组件。SageMaker有几个不同的组件:

  1. Jupyter笔记本
  2. 标注
  3. 培训
  4. 推理
你很可能正在处理 #3 和 #4。在这里使用 SageMaker 有几种方法。您可以使用其中一个内置算法,它们提供了可在 SageMaker 上启动的训练和推理容器。要使用这些算法,您可以完全从控制台工作,并只需指向 S3 中的数据,类似于 AWS ML。如果您没有使用内置算法,则可以使用sagemaker-python-sdk创建训练和预测容器,如果您正在使用常见框架(如 tensorflow、mxnet、pytorch 或其他框架)。最后,如果您正在使用超级自定义算法(如果您正在从 AWS ML 迁移,则不是),则可以为训练和推理带来自己的 Docker 容器。
要创建推理端点,您可以进入控制台,在推理部分单击并四处浏览以构建您的端点。有关示例,请参见此处的 gif: gif showing building an endpoint

如果您想使用代码实时调用端点,可以使用任何AWS SDK,这里我将演示如何使用Python SDK boto3:

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

在这段代码中,如果您需要将传入的字符串值转换为数字值,则可以轻松地使用该代码实现。

2
可以!您需要创建一个管道(预处理+模型+后处理),并将其部署为实时推理的端点。您可以在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 上找到示例。

感谢您的回复,Seninus!是的,我应该在这里更新并使用管道是我走的路!对我来说效果很好! - DanZimmerman

1
AWS SageMaker 是 AWS 中一款强大的机器学习服务,它管理机器学习实现的各个重要方面,包括数据准备、模型构建、训练和微调以及部署。
准备
SageMaker 使用多种资源使得从多个来源或格式准备数据变得简单。使用 SageMaker Ground Truth,可以轻松标注视频、图像和文本等数据,并将其自动处理成可用数据。GroundWork 将使用自动分割和一套工具来处理和合并此数据,创建可以在机器学习模型中使用的单个数据标签。与 SageMaker Data Wrangler 和 SageMaker Processing 一起使用,AWS 可将可能需要数周或数月的数据准备阶段缩短至仅需数天甚至数小时。
构建
SageMaker Studio Notebooks 将与机器学习模型相关的所有内容集中于一处,方便共享,包括关联数据。使用 SageMaker JumpStart,可以选择多种内置的开源算法来开始处理数据,也可以为机器学习模型构建自定义参数。

一旦您选择了模型,SageMaker会自动处理数据,并提供一个简单易懂的界面来跟踪您的模型进展和性能。

训练

SageMaker提供了一系列工具来从您准备的数据中训练模型,包括一个内置的调试器,用于检测可能的错误。

机器学习 训练作业的结果保存在Amazon S3存储桶中,可以使用其他AWS服务,包括AWS Quicksight查看.

部署

如果强大的机器学习模型无法轻松部署到您的托管基础设施上,那么它们就毫无意义。幸运的是,SageMaker允许将机器学习模型部署到当前服务和应用程序中,只需单击一下即可完成。

安装后,SageMaker允许进行实时数据处理和预测。这对各种领域都有深远的影响,包括金融和健康。例如,在股票市场运营的企业可能会实时做出关于股票的财务决策,并通过确定购买最佳时间而进行更有吸引力的收购。

与Amazon Comprehend的结合,允许自然语言处理,将人类语音转化为可用数据来训练更好的模型,或通过Amazon Lex向客户提供聊天机器人。

最后…

机器学习不再是一种小众技术好奇心;它现在在全球数千家公司的决策过程中发挥着关键作用。现在开始你的机器学习之旅比以往任何时候都更好,因为几乎有无限的框架,并且可以轻松集成到AWS系统中。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接