如何自动化 sagemaker 批量转换?

0

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

1 回答
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
专家
已回答 7 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则