近日,AWS 宣布机器学习平台服务 Amazon SageMaker 在国内开始正式开放。这标志着 AWS 人工智能、机器学习平台服务的关键技术已全面进入中国。
云计算逐渐向着 Serverless 方向发展,今后云计算平台向开发者提供的是「服务」而不仅「服务器」。Amazon SageMaker 就是这样一项完全托管的服务,大幅度降低构建机器学习模型的门槛。也许有小伙伴会感觉到,之前明明做的是算法,为什么被迫增长了很多 IT 知识?如今 SageMaker 就是为解决这一痛点诞生的。
不过机器学习平台已经那么多了,SageMaker 又怎样才能吸引炼丹师们的关注?从机器之心的体验上来说,特别明显的是它的「开放」与「好用」,虽然听上去比较泛,但「开放」表明它支持绝大多数机器学习框架与算法,「好用」指用 IDE 写代码、可视化、Debug 一气呵成。
这些亮点我们在后文都会着重介绍,现在,让我们从头理一理,Amazon SageMaker 到底是何许人。
SageMaker,走向「国服」
2020 年 4 月底,SageMaker 在 AWS 中国的 北京区域和宁夏区域上正式开放。这一次,SageMaker 几乎所有组件,包括去年底刚推出的在线 IDE 工具 SageMaker Studio 都与全球同步在中国正式发布了。
「AWS 在中国正式发布的 SageMaker、SageMaker Studio 等工具,目前绝大多数功能都已上线。这体现了 AWS 对于中国市场的重视程度。」AWS 首席云计算企业战略顾问张侠在发布活动中表示。
AWS 有一个愿景:把亚马逊在机器学习方面的经验和能力传递给所有的企业和机构,而 SageMaker 在实现这一愿景的过程中扮演着极为重要的角色。
亚马逊提供的全栈式机器学习服务包括三层:位于底层的虚拟机器镜像、机器学习框架和基础架构支持,位于中层的 SageMaker 机器学习服务平台,以及最上层的各类 AI 应用服务。
通过 SageMaker,ML 模型的训练无需开发者手动管理服务器、搭建工具链、以及繁杂的调参。从完整的平台 IDE,到具体代码与 API,SageMaker 都有一种 Pythonic 精神,简洁易用,同时提供高级的接口。
比如上图中的 Autopilot,这种 AutoML 模块全流程地简化算法人员的时间,小白也能轻松训练个不错的模型。而对于 ML 开发者,TF、PyTorch 甚至 Scikit-Learn 写的算法脚本都能导入,甚至也可以自带算法容器镜像。而且,这些都是有完善的支持,Debug、可视化、端部署功能一个都不能少。
张侠表示,SageMaker 包含的组件,这也正是构建、训练和部署机器学习应用所需要的所有能力,它们现在都已有了正式的「国服版」。
框架算法武器库:开放
机器学习框架与算法早就非常丰富了,从我们写的第一行 NumPy 代码开始,到走向 PyTorch、TensorFlow,我们会熟悉各种框架与算法。作为新一代的炼丹师,明显我们不会只是用一种框架,它们都各自有擅长的领域与特点。然而各种机器学习平台,它们能满足这样的特点吗,它们能做到这样开放吗?
诸多互联网大厂的机器学习平台,有的也还算成熟了,但它们总会偏爱自行维护的机器学习框架。这样确实没什么问题,自行维护的框架能针对硬件、UI 界面做出独特的优化,更有利于高效运行算法。然而对于广大开发者而言,似乎直接用自己熟悉的框架更方便,显然这对平台的「开放性」会提出更高的要求。
AWS 在中国正式发布的 SageMaker,就是这样一种「开放」的机器学习武器库。
从框架支持上来说,抛开亚马逊维护的 MXNet,它对 TensorFlow、PyTorch 甚至 Scikit-Learn 等众多框架都有很好的支持与优化。即使你用的自定义框架,那也可以直接通过容器在 SageMaker 中跑起来。
这种支持并不只是说让不同的框架在 SageMaker 能跑起来,它的重点同样在于优化。AWS 内部有很多研究者也都采用 PyTorch 或 TensorFlow,这就为进一步优化框架提供了基础。
举个栗子:TensorFlow
AWS 是运行 TensorFlow 的最佳平台,因为它提供了针对 TensorFlow 的大量优化。在 256 个 GPU 的集群扩展效率测试中,AWS 优化的 Tensorflow 的扩展效率高达 90 %,而默认的开源版本只有 65 %。
想象一下,如果我们在 GitHub 上找到一个好项目,那么不论它是用什么框架写的,我们都能导入到 SageMaker 中,充分利用 AWS 的底层优化与适配。
开放,不止框架
新一代炼丹师,从建模到部署,很多时候我们都有自己熟悉的一套工具,例如利用 TPU 做训练、利用 Cortex 做部署等等。SageMaker 强大的地方在于,尽管它支持全流程的端到端机器学习,但是如果我们只部分需要 AWS,那也是没问题的。
我们已有的武器库能与 SageMaker 完美融合,这种开放才是 SageMaker 机器学习平台独特的魅力。
与此同时,「开放」还体现在模型上,用户自定义模型自不必说,SageMaker 还内置了众多通用算法。例如做数据科学少不了的 XGBoost,两行代码就能训练一个强大的模型。
众多模型库,再加上 SageMaker Autopilot 这样的自动机器学习利器,连小白都能在 10 分钟内搞定一个强大的机器学习模型。值得注意的是,Autopilot 是业内首个兼顾可控制和可视化的自动机器学习工具,它是 SageMaker 全流程开放中不可或缺的一部分。
为机器学习而生的 IDE
做机器学习算法,一半体验在框架等工具,另一半就在 IDE 上了。PyCharm、Jupyter Notebook 等都是我们最常用的 IDE,做展示、做复杂项目都有合适的选择。那么对于机器学习,什么样的 IDE 才是最方便的?SageMaker Studio 提供了一个思路,即在统一的可视化界面写代码、搭模型、管理训练、Debug 及做部署。
读者们应该都了解,ML 中的数据预处理是最麻烦的,而在 IDE 处理数据需要特别好用的可视化,从而给我们关于数据最直观的理解。与此同时,手动调参也需要特别好的可视化,来帮助我们对比不同算法和超参训练出来的模型效果。
但好用的可视化编程通常会带来一个问题,即 Debug 又变难了。因此建模看起来直观、代码可交互,同时又容易 Debug,这就是为机器学习而生的 SageMaker Studio。
Notebook 撸代码做实验
在机器学习中,Notebook 已经是常见的形式了,很多云平台都采用了这种编辑形式。因为可以与代码交互,用它来开发机器学习代码实在是再合适不过了。在 SageMaker Studio 中,除了 Notebook 传统擅长可视化,还额外加了一些可视化组件以管理模型的实验过程。
本来用 Notebook 写轻量代码就非常方便,再加上 SageMaker 自己提供的大量精炼 API,它们之间的配合特别融洽。对于那些费时费力的底层资源管理繁杂过程,交给 SageMaker API 就行了,剩下的只要在 Notebook 写下算法逻辑,这才是机器学习开发者最高效的姿势。
虽然 SageMaker Notebook 的使用很简单,但实际上 AWS 托管的底层计算资源、底层环境与依赖库还是需要管理的,正是 SageMaker 屏蔽了这些底层的复杂性。而且特别友好的是,SageMaker 可以自动打包这些底层配置,然后一键共享 Notebook,这样把底层都交给 SageMaker,连 ML 开发瞬间都友好了起来。
Debug 走一波
简单直观还只是一个方面,作为机器学习开发者,模型构建与训练经常也少不了 Debug,Python 代码脚本用 VS Code 等 IDE 也还好 Debug,但是对于 Notebook,目前基本上还没有成熟的 Debug 工具。就像大家比较熟悉的 Colab,它虽然也是采用了 Notebook,但并做不了 Debug。
SageMaker 虽然采用 了更直观的 Notebook,但 SageMaker Debbuger 能在训练期间自动捕获模型信息,例如节点的定义、张量的维度等等。这些都是 Debug 的常规操作,做到为 ML 而生的 IDE,SageMaker Debbuger 还装备了一些高级技能:检测梯度有没有消失,模型是否过拟合等。
加上 Debbuger,IDE 才算得上成熟,做机器学习业务或实验,也都离不开它。如上所示,训练和 Debbuger 是同时进行的,我们能实时理解模型都在干些什么,有没有出毛病。
最后,不论是「开放」还是「好用」,它们都只是 SageMaker 给我们的直观感受。本身来说,SageMaker 还有更多优质的特性,数据与模型的安全性自不必说,对机器学习流程的各个环节的支持,也为 SageMaker 赋予更多的灵活性。
SageMaker,你也可以
SageMaker 在 GitHub 上放了 160 多个示例笔记本与教程,我们现在也能免费试用两个月,建模、训练和部署服务器都有免费额度。所以不论是开发者还是小白,都能上手试一试,毕竟 AWS 的用户基础还是非常广的。
「目前已有数万家公司采用了 AWS 的机器学习服务,其数量超过其他云服务商至少两倍,」张侠表示。据介绍,使用 SageMaker 部署机器学习的既包括 Autodesk、拜耳、T-Mobile 等著名国际企业,也有虎牙、大宇无限、嘉谊互娱等中国客户。
之所以用户很多,还是在于它的功能足够强,效率足够高。从统计数据来看,使用 SageMaker 系列工具可以把机器学习的总体成本降低 54%,并将开发效率提升 10 倍。
「我们都知道 TensorFlow 很流行,这种工具全球大约 85% 的工作负载是由 AWS 平台承担的,」张侠说道。「在使用 SageMaker+TensorFlow 的实际案例中,开发者们可以将模型训练的并行扩展效率从 65% 提高到 90%,训练时间从 30 分钟缩短到了 14 分钟。」
SageMaker 的强大不仅来自于 AWS 多年积累的技术,也源于这家公司与众多使用者、合作伙伴共同建立起的生态。
「我们可以看到友商也已在提供类似的机器学习开发平台。从算法数量、服务完整性上来看,Amazon SageMaker 有很多领先的地方,」张侠表示。「最明显的地方在于我们提供对几乎所有主流机器学习框架的支持,同时也有大量内置算法和最新的重要功能。我们拥有大量合作伙伴,生态系统最为丰富。大量来自生产环境一线的反馈,可以不断促进工具的发展,将能够最快的机器学习落地方法融合在我们的产品中。」
已支持了上万客户的 SageMaker,其生命力不容小觑,既然有免费额度试用,它还是非常值得我们开发者入手一试的。