使用Amazon SageMaker进行无限扩展的机器学习

后拇指

在机器学习中,更多通常是更多。例如,对更多数据的培训意味着更精确的模型。

在AWS,我们继续努力使建设者能够以安全、可靠和可扩展的方式更快地构建尖端技术。机器学习就是这样一种变革性技术,它不仅是首席信息官和首席执行官的首选,也是开发者和数据科学家的首选。最后再:发明,为了使编写、培训和托管ML模型的问题更容易、更快、更可靠,我们启动了必威体育精装版app官网亚马逊SageMaker. 现在,成千上万的客户正在尝试Amazon SageMaker,并在AWS的数据池上构建ML模型。

在构建Amazon SageMaker并将其应用于大规模机器学习问题时,我们意识到可伸缩性是我们需要关注的关键方面之一。所以在设计的时候亚马逊SageMaker我们接受了一个挑战:构建能够处理无限量数据的机器学习算法。那到底是什么意思?显然,没有一个客户拥有无限量的数据。

然而,对于许多客户来说,他们拥有的数据量与无限的数据量是无法区分的。Dataxu首席技术官比尔·西蒙斯(Bill Simmons)表示,“我们每秒处理300万个广告请求—每个请求10万个功能。这意味着每天有250万亿个广告请求。这不是一般的数据科学问题!”对于这些客户和更多客户来说,“数据”的概念并不存在。它不是静态的。数据总是不断累积。他们对“你有多少数据?”这个问题的答案是“你能处理多少数据?”

让事情变得更具挑战性的是,如果培训工作缓慢或昂贵,那么一个能够处理单个大型培训工作的系统还远远不够好。机器学习模型通常经过几十次或数百次的训练。在开发过程中,运行许多不同版本的最终培训作业。然后,为了选择最佳的超参数,许多培训作业以稍微不同的配置同时运行。最后,每x多分钟/小时/天执行一次重新培训,以使用新数据更新模型。在欺诈或滥用预防应用程序中,模型通常需要在几分钟甚至几秒钟内对新模式做出反应!必威体育精装版app官网

为此,Amazon SageMaker提供的算法可以快速、廉价地针对无法区分的无限量数据进行训练。这听起来像是白日梦。然而,这正是我们着手要做的。这篇文章揭开了我们在此过程中做出的一些科学、系统设计和工程决策的面纱。

流式算法

为了处理无限量的数据,我们的算法采用了流计算模型。在流模型中,该算法只在数据集上传递一次,并且假设内存占用是固定的。这种内存限制排除了一些基本操作,如将数据存储在内存中、随机访问单个记录、无序处理数据、多次读取数据等。

流式算法可以无限扩展,因为它们可以消耗任意数量的数据。添加更多数据点的成本与整个语料库的大小无关。换句话说,处理10G和1000G在概念上是相同的。算法的内存占用是固定的,因此保证不会随着数据的增长而耗尽内存(和崩溃)。计算成本和训练时间与数据大小成线性关系。数据量加倍的培训成本加倍,所需时间加倍。

最后,传统的机器学习算法通常使用来自持久数据源(如本地磁盘、AmazonS3或AmazonEBS)的数据。流式算法也在本地消耗短暂的数据源,如Amazon Kinesis流、管道、数据库查询结果和几乎任何其他数据源。betway88体育官网

流式算法的另一个重要优点是状态. 算法状态包含执行更新所需的所有变量、统计信息和数据结构,即继续训练所需的所有内容。通过将这一概念形式化并通过软件抽象简化,我们为所有算法提供了检查点功能和故障恢复能力。此外,检查点支持对持久性数据进行多遍/多历元训练、对经济高效的HPO有用的暂停/恢复机制,以及仅使用新数据更新模型而不是从头开始运行整个训练作业的增量训练。

加速和分配

当AWS客户在Amazon SageMaker上执行大规模培训任务时,他们对减少工作的运行时间和成本感兴趣,而不考虑引擎盖下使用的机器的数量和种类。因此,Amazon SageMaker算法可以利用许多Amazon EC2实例类型,支持CPU和GPU计算,并分布在许多机器上。

跨实例支持在很大程度上依赖于容器化。Amazon SageMaker training支持强大的容器管理机制,包括在不同的硬件上旋转大量容器,实现快速联网和对底层硬件(如GPU)的访问。例如,在一台机器上运行10小时的培训作业可以在10台机器上运行,并在一小时内完成。此外,将这些机器切换到支持GPU的机器可以将运行时间减少到几分钟。这一切都可以在不接触一行代码的情况下完成。

为了在CPU和GPU机器之间无缝切换,我们使用ApacheMXnet与底层硬件接口。通过设计在不同类型硬件上高效运行的算法,我们的算法获得了创纪录的速度和效率。

通过存储参与培训的所有机器的状态的参数服务器实现跨机器的分发。参数服务器通过更新参数来实现最大吞吐量异步并且只提供参数的松散一致性属性。虽然这些在典型的关系数据库设计中是不可接受的,但对于机器学习来说,在准确性和速度之间进行权衡是值得的。

培训后模型调整和丰富状态

以流方式处理大规模可伸缩的数据集对模型优化(也称为超参数优化(HPO))提出了挑战。在HPO中,许多培训作业使用不同的配置或培训参数运行。目标是找到最佳配置,通常是对应于最佳测试精度的配置。这在流媒体设置中是不可能的。

对于临时数据源,数据不再可用于重新运行培训作业(对于持久数据源,这是可能的,但效率低下)。Amazon SageMaker算法通过训练一个表达性状态对象来解决这个问题,从中可以创建许多不同的模型。也就是说,在完成一项培训工作后,可以探索大量不同的培训配置。

总结

Amazon SageMaker提供生产就绪、可无限扩展的算法,例如:

  • 线性学习者
  • 因子分解机
  • 神经主题建模
  • 主成分分析(PCA)
  • K-均值聚类
  • 深度预报

他们坚持上述设计原则,并依赖亚马逊SageMaker的强大训练堆栈。它们由一个厚的、通用的SDK操作,允许我们在部署之前对它们进行彻底测试。我们在每一种算法的研究和开发上都投入了大量资金,每一种算法都是最先进的。Amazon SageMaker算法比其他任何开源解决方案都能在更多数据上训练更大的模型。如果可以进行比较,Amazon SageMaker算法的运行速度通常比Spark ML等其他ML解决方案快10倍以上。就计算成本而言,Amazon SageMaker算法的培训成本通常为美分,并必威体育精装版app官网且生成的模型比备选方案更精确。

我认为现在是在大规模生产系统中使用大规模机器学习的时候了。拥有真正庞大且不断增长的数据集的公司不必担心操作大型ML系统或开发相关ML专有技术的开销。AWS很高兴代表我们的客户进行创新,并成为思想领袖,特别是在机器学习等令人兴奋的领域。我希望并相信亚马逊SageMaker及其不断增长的算法集将改变公司进行机器学习的方式。必威体育精装版app官网