关于amazon-sagemaker:从软件哲学角度谈-Amazon-SageMaker

如果你喜爱哲学并且你是一个 IT 从业者,那么你很可能对软件哲学感兴趣,你能发现存在于软件畛域的哲学之美。本文咱们就从软件哲学的角度来理解一下亚马逊云科技的拳头级产品 Amazon SageMaker,有两个出发点:一是 SageMaker 自身设计所遵循的软件哲学;二是从软件哲学的角度咱们应该如何应用 SageMaker 提供的性能。SageMaker 是一个全托管的机器学习平台(包含传统机器学习和深度学习),它笼罩了整个机器学习的生命周期,如下图所示: 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!咱们从如下的几个方面来展开讨论: 天下没有收费的午餐——衡量之道简略之美——大道至简没有规矩不成方圆——安分守己没有“银弹”——隔靴搔痒变动之本——进化实质知其所以然——成竹在胸放弃一致性——品质可控天下没有收费的午餐——衡量之道软件有很多的品质(品质也叫非功能性需要):性能(比方工夫性能,空间性能,模型性能),可用性,易用性,可扩展性,兼容性,可移植性,灵活性,安全性,可维护性,老本等。一个软件没有方法满足所有的品质,因而咱们在和用户交换的过程中,要真的弄清楚用户想要的是什么(没有设想中那么简略),哪个或者哪些软件的品质是用户以后最关怀的。很多软件品质常常会互相制约(一个经典的例子就是安全性和工夫性能,平安这个品质就是一个让人又爱又恨的货色,一般来说须要退出安全性的时候,在其余上下文不变的状况下,基本上工夫性能就会变差了),所以咱们须要衡量,而在衡量的时候肯定要把握好“度“。 对于 SageMaker 来说: SageMaker Processing job 要求数据的输出和输入都须要在 S3,基本原理图如下: SageMaker Processing job 提供了托管的单个实例或者集群来做数据预处理,特色工程以及模型评估。如果你的原始数据并没有寄存在 S3,这个时候你须要衡量空间性能与可托管性(可托管性的益处是很多运维的工作就不须要你关怀了,交给了亚马逊云科技来运维),是把数据从源拷贝到 S3 来应用托管的 Processing job 服务还是就地来用自建的集群来解决;如果你的原始数据自身就寄存在 S3,那么间接用 Processing job 来应用 SkLearn 或者 SparkML 来进行数据预处理或者特色工程是你的首选。 SageMaker 的内建算法对数据输出格局的要求以及可配置的无限的超参数。SageMaker 提供的内建算法(SageMaker 对常见的 ML 工作根本都提供了一种或者多种算法)对数据输出格局的要求以及提供的超参数可能与开源界的算法的数据输出格局和提供的超参数略有区别。这里你须要衡量易用性与灵活性:如果你只是想实现一个 ML 的工作并且不想关注算法的实现细节,那么能够优先尝试 SageMaker 的内建算法;如果你想更深刻理解算法的实现细节以及更灵便的超参数设置,那么倡议的抉择是把你的算法或者开源的算法迁徙到 SageMaker 中。SageMaker 训练时的 HPO 主动超参数优化性能的应用。主动超参数优化的初衷是为了加重算法工程师/数据科学家/利用科学家们手工调参的苦楚。SageMaker 的 HPO 主动超参数优化对于内建算法和非内建算法都反对,并提供了贝叶斯搜寻和随机搜寻两种形式供你抉择。不是所有的算法都须要走主动超参数调优,须要衡量模型性能(就是指模型成果)与老本。一般来说,对于深度学习模型或者海量数据集的状况下可能做主动超参数调优的工夫代价和老本代价太大。因而在理论的 ML 我的项目中,用户很少对深度学习模型或者海量数据集做主动超参数调优;对于传统的机器学习模型并且在数据集不大的状况下,能够思考用主动超参数调优来找到可能的最优解。SageMaker 内建的 inference pipeline 的数据流。SageMaker Inference pipeline 能够把多个容器(容器中能够跑特色解决逻辑或者跑模型 serving 逻辑)串接起来,它的目标是把推理时的特色解决模块和模型串接起来,或者把多个模型做成上下游串接起来。它的数据流是这样的: 也就是说,每个容器的输入由 SageMaker 外部组件做直达,该组件把上一个容器的输入做为新的 request 发送到下一个容器。通过应用 Inference pipeline 这个性能能够简略不便的实现模型的上下游串接或者特色解决模块和模型的串接,但从下面的数据流能够看到会带入一些提早,这个时候你须要思考提早是否在能够承受的范畴内并应用 Inference pipeline,也就是须要衡量易用性与工夫性能。 ...

April 28, 2023 · 3 min · jiezi