【发布时间】:2021-03-19 07:24:21
【问题描述】:
我的任务是为一家中型公司定义用于 ML 开发的 AWS 工具。假设有十几个 ML 工程师和其他熟悉无服务器(lambdas 和框架)的 DevOps 人员。主要问题是:a)什么是允许与 ML 开发相关的主要任务(创建、训练、拟合模型、数据预处理、超参数优化、作业管理、包装无服务器服务、收集模型指标等)的架构),b) 可用于打包和部署事物的主要工具是什么,以及 c) 用于它的开发工具(IDE、SDK、“框架”)是什么?
我只想暂时搁置 Jupyter 笔记本。 Jupyter 笔记本非常适合概念验证,也是最接近 PowerPoint 的管理工具……但是在考虑可部署的代码单元时,我遇到了笔记本的问题。
我的直觉指向一个初步的目标架构,有 5 个部分:
1 - 具有支持基本模型操作(创建空白、创建预训练、训练、测试/拟合等)的 ML 模型的“核心”。我在这里预见到核心 Python 脚本 - 没问题。
2-(可选)执行超参数优化和/或模型版本控制的“容器化集合”
3- 一个'contained-unit-of-Python-scripts-around-models',它公开一个 API,进行作业管理并结合数据预处理。这也会读取和写入 S3 存储桶。
4- 具有高级 API(在 Python 中)的“无服务器层”。它与上面的#3 和/或#1 对话。
5- 一些容器或捆绑的东西,它们将从 Git 解压文件并将它们部署到各种 AWS 服务上,从前 3 点创建东西。
如您所见,我的术语相当模糊:) 如果有人可以具体说明会有所帮助的术语。 我的直觉和初步阅读表明,答案可能包括本地 IDE,如 PyCharm 或 Anaconda 或基于云的 IDE(这些是什么?-请不要提及笔记本)。 我不太清楚的一点是#5。候选人包括适用于 Kubeflow 管道的 Amazon SageMaker 组件和/或适用于 Kubeflow 管道的 Amazon SageMaker 组件和/或适用于 SageMaker 的 AWS Step Functions DS 开发工具包。然而,我不清楚他们如何执行#5。 Kubeflow 看起来很有趣,但它有足够的采用率还是会在 2 年内消亡?适用于 Kubeflow 管道的 Amazon SageMaker 组件、适用于 Kubeflow 管道的 Amazon SageMaker 组件和适用于 SageMaker 的 AWS Step Functions DS 开发工具包是否相互排斥?他们每个人如何帮助“容器化事物”以及基本的供应和部署任务?
【问题讨论】:
标签: machine-learning amazon-sagemaker kubeflow-pipelines