如何在云端运行机器学习超参数优化——第 2 部分
作者:互联网
选项1:云案例集群HPT
考虑在云中实施HPT第一个选项是基于云案例集群。事实上,设置案例集群的方法有几十种不同。例如,它必须是AWS在上面创建集群,你可以:1)仅基于EC22启动控制台所需数量AmazonEC案例,2)应用Kubernetes等容器排列框架构建和管理集群,3)使用Amazon的托管Kubernetes服务,AmazonEKS等。
此HPT选项的主要特点是它提供的灵活性。当你开始你的集群时,你可以以任何你想要的形式设置它。这意味着你可以以任何你想要的方式完成它HPT——使用任何框架、任何算法、任何功能(如每个案例的几个测试)、任何自动缩放系统等。特别是,您可以在可靠的非现场(非占用)案例中设置集群头节点,但所有工作节点都在现场案例中操作,以降低成本。
这种灵活性和自由成本是设置和维护此选项所需的努力。启动、配置和管理集群需要一定程度的专业知识。一般来说,有一个单位来选择这条路(devops)团队完全致力于集群管理。一些组织可能已经制定了指导方针(例如,由于安全原因),您需要遵循这些指导方针。这可能会进一步复杂化这些解决方案的应用,或者随意限制它们。
在这篇文章中,我们将使用试点Ray创建集群的框架。Ray包括对在AWS内置适用于上启动集群。HPT启动集群,我们将设置以下集群tune.yamlYAML文件中。
此YAML文件定义了一个HPT环境最多包括八个环境AmazonEC2g4dn.xlarge每个案例都有65.3版本AWSDeepLearningAMI,预配置专用于应用PyTorchconda环境,并预装全部Python依赖项。(为了简单考虑,我们把它从脚本中省略了Python包版本。)
启动这个集群的命令是:
往上调整.yaml-y
假设全部AWS账号设置已经正确配置,这将创造每个人的业务HPT连接到的簇状节点。在下面的代码块中,每个人都尝试过如何使用它。RayTune库来运行HPT。在这里,我们选择使用搜索,包括随机参数ASHA调度算法。该算法配备了32个测试,每个测试最多有8个阶段,每个阶段都是不同优化器学习率的候选人。一次最多可进行8次平行测试。测试将根据报告的评估精度进行测量。性能差的测试将基于ASHA提前终止算法。
选项2:在托管培训条件下HPT
特殊的云培训服务,如AmazonSageMaker,为研发机器学习模型增添了许多便利。除了简化启动和管理培训案例的过程外,它们还可能包括引人注目的角色,如加速数据输入流和分布式培训API,先进的监控工具等。这些特点促使托管培训环境成为许多机器学习开发团队的首选解决方案。挑战在于如何应用这些环境来扩大这些环境HPT。在本节中,我们将介绍三种解决方案中的第一种。第一种方法是如何进行实验AmazonSageMaker在训练环境中运行RayTuneHPT工作。与之前的显式定义和启动案例集群的方法相反,我们将在这里使用它AmazonSageMaker来完成这项工作。虽然以前的方法包括一个基于自动缩放器的自动缩放器HPT调度算法向上和向下扩展集群,但在这种方法中,我们创建了一个固定大小的例子集群。每个人都基于相同的应用程序RayTune解决方案与上面的定义相同hpt()函数和修改入口点启动托管服务EC2集群上设置Ray集群:
优劣势
与前一节基于集群的方法相比,这种调优方法有很多优点——你几乎可以随意操作我们想要的所有东西HPT框架和任何HPT算法。这种方法的主要缺点是缺乏自动可扩展性。一定要提前确定集群案例的总数,并在整个培训期间保持一致。如果我们使用它HPT在调整过程中,算法、并行实验的数量发生了变化,你可能会发现我们的一些(昂贵的)资源在一段时间内闲置。
另一个限制与使用折扣现货案例的能力有关。AmazonSageMaker适用从spot中断修补,但截至本文写作时,spot设备已应用于集群中的所有案例。您不能选择将头部节点设置为长期节点,只能将工作节点设置为长期节点spot案例。此外,只有独立案例的临时中断才能启动整个群体的重启。虽然这并不完全禁止使用spot案例,但它确实使它变得更加复杂。
标签:Git,HEAD,git status,模式,标签 来源: