如何在云端运行机器学习超参数优化——第 1 部分
作者:互联网
超参数调节(HPT):HPT或超参数优化(HPO)它指向您的机器学习模型寻找最佳超参数集(例如学习率、动量、dropout艺术等)。HPT它是任何机器学习项目的重要组成部分;正确使用它可以决定你的项目是成功还是失败。HPT关于艺术的文章很多,比如,请参考这里了解一些实现HPT简要研究方法及其查询适用HPT对当前框架的一些调查。HPT一种常见的方法是增加主机数量,以增强并行运行的试验数量。
云中的HPT:在之前的帖子(比如这里)中,我们扩展了在云中实施机器学习的优势。特别是,我们注意到了基于云的ML几乎无限的扩展能力。这一特点使我们能够启动尽可能多的训练案例和尽可能多的并行测试,从而显著加速我们的速度ML项目。可扩展性使云成为我们ML模型的HPT理想的场地。
在这篇文章中,我们回顾了一些的一些操作HPT方法。这样做并不总是很明显。这是因为HPT一般来说,它涉及多个实验,必须进行协调。进度报告必须从所有实验中收集,并且应根据所选实验收集HPT该算法采用了适度的动作。当在当地环境中运行时,这种和谐是非常微不足道的,在当地环境中,你可以很好地控制培训案例,并可以快速地将它们设置为相互沟通。但它在云中并不明显,特别是在应用托管培训服务时,如AmazonSageMaker,委托服务的底层案例设置和配置。
基于云的HPT的差异方式
在之前的帖子(例如这里)中,我们注意到开发者需要从广泛的基于云的机器学习解决方案中进行选择。GCP,AWS和Azure云服务提供商(CSP)它带来了不同的抽象层次和不同的ML培训选项。一方面,开发人员可以要求一个“裸机”GPU云案例,并解决设置、配置和使用操作程序的所有元素。另一方面,您有一个高度系统的培训框架,基于云。当然,太多基于云的培训选项已经扩展到基于云的实现HPT各种形式。在本文中,我们将回顾并尝试四个选项:
HPTonaclusterofcloudinstances——在这个场景中,每个人都设计了一个云计算案例HPT通过实验量身定制的解决方案。这个选项通常需要最多的设置和维护,但是最适用的自定。
HPTinsideamanagedtrainingenvironment——在这里,我们借助托管培训服务建立案例集群,并在集群中运作HPT。
代管HPT服务-一些CSP为HPT提供试验专用API。
应用HPT包装代管培训试验-在这种情况下,HPT算法在本地(或在云笔记本案例中)运行,每个HPT试验是基于云的单独培训工作。
较为点
有许多特征可以用作HPT解决方案之间的比较前提。在这篇文章中,我们只选择了几个特突出我们将讨论的基于云的解决方案的优缺点。这些包括:
适用算法:深度学习HPT算法开发是一个活跃的研究领域,新算法不断涌现。HPT该算法通常由两部分组成;参数优化算法和调度算法。优化算法确定如何将预定义的搜索空间作为参数集分配值。优化算法的例子包括简单的方法,如网格搜索和随机搜索,以及更复杂的方法(如贝叶斯),从以前的结果中学习。调度算法控制如何以及何时操作测试,并行操作多少测试,如何确定提前终止的测试等。在理想的前提下,您可以完全自由地选择HPT算法。结合实际,一些解决方案可能会限制一些算法的应用,无论是显式的(例如,根据它们API)或隐式(例如,根据并行实验的数量有限)。
自动扩展:根据您的选择:HPT算法,您可能会发现在不同的调优阶段使用不同数量的案例。对于这种情况,理想的方法是有一个HPT根据调度算法的规定,解决方案适用于必须自动扩展的计算案例。替代方案可能需要维护(并支付)免费计算案例。
复杂性:不同HPT在配置和维护的复杂性方面,解决方案是不同的。基于非托管云服务产品的解决方案往往需要更多的努力。
资源灵活性:HPT框架通常包括在单独计算案例中操作多个测试的选项。然而,一些云HPT解决方案将每个测算案例的测试数量限制为一个。
试验复位费用:每个新实验的启动时间将基于所选实验HPT解决方案不同。如果你的测试时间相对较短,这笔费用会影响你HPT总持续时间(和总成本)。
Spot案例应用:使用spot或者抓住案例进行训练ML模型允许我们使用未使用的云计算体积,价格明显打折。HPT解决方案比其他解决方案更适合现场应用,因此对降低成本有有价值的影响。
其他同样重要的考虑因素包括:准确性、热启动调优、检查点、容错、分布式训练(每个测试在多个测试中GPU或在几个案例中操作),成本等。