如何自动化 sagemaker 批量转换?

0

【以下的问题经过翻译处理】 cloudformation 是否支持 sagemaker 批量转换?如果是,是否可以在创建堆栈后自动触发/运行作业?

1 Antwort
0

【以下的回答经过翻译处理】 虽然 CloudFormation 当前不为 SageMaker 批量转换提供资源(文档中的资源列表),但有许多其他集成点可以自动运行这些作业。

CloudFormation

实际上,我认为 CloudFormation 可能不太适合这种情况,因为 CloudFormation 定义了可以创建、更新和删除的资源。我也许可以看到“创建”=“运行作业”、“删除”=“删除作业输出”和“更新”=“重新运行作业”之间的对应关系?但这些都是自以为是的选择,可能并非在所有情况下都有意义。

如果您真的想要,您可以使用 CreateTransformJob API(通过您喜欢的任何语言,例如 [Python 中的 boto3](https://boto3.amazonaws.com/v1 /documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_transform_job))。

注意:

  • 如果您想使用 SageMaker Python SDKimport sagemakerTransformer 等)而不是 Python 中的低级 boto3 接口- 您需要在 Lambda 函数中安装这个额外的库。 AWS SAM 和 CDK 等工具可以帮助解决这个问题。
  • 最大 Lambda 超时为 15 分钟,您可能不希望让 Lambda 函数保持运行(收费)只是等待转换完成,甚至整个自定义资源也将有更长的最大超时,在此期间它必须在创建/更新/删除请求...因此,除了单个同步 Lambda 函数调用之外,可能还需要额外的编排。

其他(更好?)选项

如上所述,您可以在能够调用 AWS API/使用 AWS SDK 的任何环境中创建、描述和停止 SageMaker Batch Transform 作业...您甚至可以使用高级开源 sagemaker SDK从任何地方安装它。有趣的选项可能包括:

  • Amazon SageMaker Pipelines:SageMaker Pipelines 具有适用于一系列 SageMaker 流程​​的本地“步骤”,包括转换作业和培训,预处理等等。您可以从 SageMaker Python SDK(在您的笔记本或其他地方)定义一个多步骤管道,然后通过调用 [StartPipelineExecution API](https://docs.aws.amazon. com/sagemaker/latest/APIReference/API_StartPipelineExecution.html)。
  • AWS Step Functions:Step Functions 提供通用无服务器编排,因此 SageMaker 作业的编排尤其可能稍微复杂一点(开始工作的一个步骤,然后轮询检查以检查是否等待完成)——可视化工作流编辑器和与其他服​​务的一系列集成可能会有用。
  • Amazon S3 Lambda 集成 可以在新数据上传到时自动触发事件(以开始转换作业)亚马逊 S3。
  • Scheduled EventBridge Rules 可以定期运行操作(例如调用 Lambda 函数、踢关闭这些管道等) - 如果您需要基于计划的执行而不是响应某些事件。

选择将取决于您的工作流的初始触发器是什么(计划?数据上传?其他一些 AWS 事件?来自 AWS 外部的 API 调用?)以及需要编排哪些其他步骤以及整体转换作业流动。

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen