Google Vizier: 黑盒优化服务

GoogleVizier是一种内部服务,用于执行黑盒优化,成为Google参数调整的事实标准。它优化机器学习模型和其他系统,支持大规模试验评估,提供先进的算法和功能,如传输学习和自动提前停止。Vizier设计为易于使用,高可用性,可扩展至数百万次试验,支持新算法的快速原型设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑盒优化的必要:
任何复杂的系统,当它表现地更加易于实验而不是理解的时候,它就越表现地像一个黑盒。因此,随着系统变得越来越复杂,黑盒优化变得越来越重要。我们描述了Google Vizier,一种用于执行黑盒优化的Google内部服务,该服务已成为Google事实上的参数调整引擎。Google Vizier用于优化我们的许多机器学习模型和其他系统,还为Google的Cloud Machine Learning HyperTune子系统提供核心功能。我们将讨论我们的要求,基础设施设计,基础算法以及高级功能,例如服务提供的传输学习和自动提前停止。
文章从:1)基础设施设计 2)基础算法以及高级功能等方面介绍。比如说,服务提供的传输学习和自动提前停止的功能。

黑盒优化的相关工作
黑盒优化应用很广泛,在很多领域都有涉及,比如说 贝叶斯优化、无导数优化、顺序实验设计以及多臂强盗问题和其变体。
针对黑盒优化问题,有很多解决方法。比如随机搜索和网格搜索。还有一些经典的方法比如SimulatedAnnealing和各种遗传算法(协方差矩阵适应)。
最近,一些研究人员结合了强大的技术,在整个可行区域内建立目标f的建模,使用针对多臂强盗问题开发的思想来管理探索/利用权衡。这些方法本质上是基本的贝叶斯方法,因此这些文献的名称是贝叶斯优化
通常 f 函数,是一个高斯分布过程,神经网络,或者是一个回归。机器学习开源社区上有很多开源的实现。比如HyperOpt 2,MOE 3,Spearmint 4和AutoWeka 5等。

系统总览
Vizier的设计满足以下要求:
1)便于使用。最小的用户配置和设置。
2)托管最先进的黑盒优化算法。高可用性
3)每项研究可扩展至数百万次试验,每项研究进行数千次平行试验评估,数十亿项研究。
4)易于尝试新算法。
5)易于更改生产中部署的算法。
为了便于使用,我们将Vizier实现为托管服务,以存储每个优化的状态。
基本用户流程
要使用Vizier,开发人员可以使用我们的客户端函数库(目前在C ++,Python,Golang中实现),这将生成编码为协议缓冲区的服务请求。基本的工作流程非常简单。用户指定研究配置,其中包括:
1)确定研究的特征(例如姓名,所有者,权限)。
2)每个可行集都有一个参数集; Vizier 对可行集做优化。
做完以上的配置,服务的基本流程如下:

# 在Study中注册这个客户端,如果有必要创建
client.LoadStudy(study_config, worker_handle)
while (not client.StudyIsDone()):
		# 获取一个实验来做评估
		trial = client.GetSuggestion()
		# 在这个实验参数中去评估目标函数
		metrics = RunTrial(trial)
		# 返回评测结果
		client.CompleteTrial(trial, metrics)

这里RunTrial是目标函数f的特定问题评估。可以将多个命名度量报告回Vizier,但是必须将其区分为试验x的目标值f (x )。请注意,当且仅当他们正在协作评估同一个试验时,处理研究的多个进程应共享相同的worker_handle。在具有相同worker_handle的给定研究中注册的所有进程都保证接收到。

针对需要协作完成的任务,可采用分布式的架构。
在这里插入图片描述

图1:Vizier服务的架构:主要组件是(1)悬空工作查找器(重新开始工作丢失到抢占)(2)持久化数据库保持所有研究的当前状态(3)建议服务(创建新的试验),( 4)提前停止服务(帮助提前终止审判)(5)Vizier API(JSON,验证,多路复用)(6)评估工作者(由用户提供和拥有)。

API
1)CreateStudy :给定一个Study配置,这将创建一个优化研究并返回一个全局唯一标识符(“guid”),然后用于所有未来的服务调用。如果存在具有匹配名称的研究,则返回该研究的指南。这允许并行工作者调用此方法,并且所有注册都使用相同的Study。
2)SuggestTrials :此方法将“worker handle”作为输入,并立即返回一个全局唯一句柄,用于表示生成Trial建议的“长时间运行”操作。然后,用户可以定期轮询API以检查操作的状态。操作完成后,将包含建议的试验。这个设计,在评估试验期间观察中间指标。然后,自动停止规则使用这些指标来确定应尽早停止哪些试验。
3)CompleteTrial :此方法将试用版的状态更改为“已完成”,并提供最终目标值,然后用于通知未来对Sug- gestTrials的调用所提供的建议。
4)ShouldTrialStop :此方法为长时间运行的操作返回一个全局唯一的句柄,表示确定是否应该停止待审批的工作。

Google Vizier 的基础设施
Vizier的算法游乐场为高级用户提供了一种机制,可以使用任意算法轻松,快速,安全地替换Vizier的核心优化算法。
Vizier的算法游乐场有双重用途; 它允许快速进行新算法的原型设计,并允许高级用户轻松定制Vizier,具有特定于用例。
上图:Playground模式的架构:主要组件是
Vizier API接受服务请求。(2)自定义策略实施抽象策略并生成建议的试验。(3)Playground二进制文件根据Vizier API报告的需求驱动自定义策略。(4)评估工作者表现得很正常,即他们要求和评估试验。

他们的用例。在所有情况下,除了核心算法之外,操场的用户都可以从Vizier的所有基础设施中受益,例如访问试验的持久数据库,仪表板和可视化。

操场的核心是将试验注入研究的能力。Vizier允许用户或其他授权过程请求评估一个或多个特定试验。在Playground模式下,Vizier不会建议用于评估的试验,而是依赖外部二进制来生成试验,然后将其推送到服务以便以后分发给工作人员。
更具体地说,游乐场的体系结构涉及以下关键组件:(1)抽象策略(2)游乐场二进制,(3)Vizier服务和(4)评估工作者。
本摘要策略包含两个抽象方法:
GetNewSuggestions(试验,num_suggestions)
GetEarlyStoppingTrials(试验)
这应该由用户的自定义策略实现。这两种方法都通过了研究中所有试验的完整状态,因此如果需要,算法可以以无状态方式实现。GetNewSuggestions预计将生成num_suggestions新的trig,而GetEarlyStoppingTrials方法预计会返回一个应该提前停止的Pending Trials列表。自定义策略在Playground二进制文件中注册,该二进制文件定期轮询Vizier服务。该评估工人维持服务抽象,不知道该游乐场的存在。
VIZIER算法

Vizier的模块化设计使我们能够轻松支持多种算法。对于不到一千次试验的研究,Vizier默认使用Batched Gaussian Process Bandits 。我们使用具有自动相关性确定的Matérn内核和预期的改进获取函数。我们使用专有的无梯度爬山算法搜索并找到采集函数的局部最大值,并使用随机起点。
自动提前停止
在黑盒优化的一些重要应用中,在试验评估期间可能会获得与试验性能相关的信息。也许是这种性能曲线的最好例子当为逐渐训练的模型(例如,通过某种版本的随机梯度下降)调整机器学习超参数时发生。在这种情况下,模型通常在训练更多数据时变得更准确,并且模型的准确性在每个训练时期结束时可用。使用这些精确度与训练步骤曲线,通常可以确定试验的参数设置在评估完成之前是否具有良好的前景。在这种情况下,我们可以提前终止试验评估,从而将这些评估资源释放出来,以获得更有希 在算法上完成时,这被称为自动提前停止。
Vizier支持通过对ShouldTrialStop方法的API调用自动提前停止。类似于建议服务,有一个自动停止服务,它接受来自Vizier API的请求,以分析研究并根据配置的早期停止算法确定应该停止的试验集。与建议算法一样,支持多种自动早期停止算法,并且可以通过算法操场完成快速原型设计。
自动停止算法
Vizier支持以下自动停止算法。这些意味着以无状态的方式工作,即在确定哪些试验应该停止时,它们在Vizier研究中被给予所有试验的完整状态。
1)绩效曲线停止规则。
2)中位数停止规则
迁移学习
采用迁移学习减少工作量。
Vizier目前的转移学习方法相对简单,但对于研究中的客观变化却很稳健。我们在设计转移学习方法时考虑到了以下目标:1)适用于以前有许多研究的情况。2)当先验者处于良好状态时,特别是在以下情况下,加快研究。3)衰减选择不当的情况。4)即使没有正式关系,也要共享信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值