北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

近日,由北京大学崔斌教授数据与智能实验室( Data and Intelligence Research LAB, DAIR)开发的通用黑盒优化系统 OpenBox 开源发布!

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

相比于 SMAC3,Hyperopt 等现有开源系统,OpenBox 支持更通用的黑盒优化场景,包括多目标优化,带约束优化场景等。在 25 个 LightGBM 调参任务上,OpenBox 在 7 个对比系统中取得了平均 1.25 名 (average rank) 的优异成绩。

相关论文已经被 KDD  2021 录用,”OpenBox: A Generalized Black-box Optimization Service”。

研究背景

近年来,人工智能与机器学习备受关注,越来越多企业使用机器学习模型解决实际问题,如人脸识别、商品推荐等。在应用机器学习模型的过程中,模型超参数的选择对模型性能有着至关重要的影响,因此超参数优化问题成为了机器学习的重要挑战之一。超参数优化作为典型的黑盒优化问题,对于优化目标不存在具体表达式或梯度信息,且验证代价较大。其目标是在有限的验证次数内,尽快找到全局最优点。除超参数优化外,黑盒优化还拥有着广泛的使用场景,如自动化 A/B 测试、数据库参数调优、处理器架构和芯片设计等。

现有开源的黑盒优化系统往往存在以下问题:

1)使用场景有限。由于系统基于某个特定算法,一些系统只能支持单目标或是无约束的优化问题;

2)性能不稳定。基于优化问题中“no free lunch”定理,现有系统中特定的算法无法在所有任务中表现出色;

3)有限的可扩展性。现有系统无法有效利用历史任务的结果以及分布式的验证资源。

针对这些问题,北京大学 DAIR 实验室 AutoML 项目组开发了一个名为“OpenBox”的轻量级黑盒优化系统,针对通用的黑盒优化场景,内置丰富的优化算法,并提供高效的并行支持,帮助用户“open the box”,解决棘手的黑盒优化问题。

项目 Github 开源地址:https://github.com/PKU-DAIR/open-box

OpenBox 设计思路

为了解决现有系统上述的问题,OpenBox 在设计上支持以下系统特性,包括:

多目标优化:同时优化多个不同(甚至相互冲突)的目标,例如同时优化机器模型准确率和模型训练/预测时间等。

带约束条件优化:最优化目标的同时,要满足(黑盒)条件,例如保证模型延迟不能高于某个阈值等。

多类型参数输入(FIOC):系统需要对多种待优化参数类型提供支持,主要为 FIOC,即浮点型、整型、序数型、类别型四类参数。例如超参数优化中,SVM 模型核函数用类别型表示,如果单纯用整型代替序数型或类别型参数,将对参数附加额外的序关系,不利于模型优化。

迁移学习:优化任务之间可能存在一定相关性,例如过去可能在不同数据集上进行过相同模型的调参。基于这种观察,系统需要能够利用过去优化的知识加速当前优化任务的执行效率。

分布式并行验证:内置算法支持并行运行,并且系统能够有效利用给定的分布式资源。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

作者将现有系统对上述特点的支持情况总结如上 (其中△表示不支持通用场景)。从表格中不难看出,现有开源黑盒优化系统无法支持特定的使用场景,而 OpenBox 能够提供完整的支持。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

上图展示了 OpenBox 的并行架构,包含五个主要组件。服务主机 (ServiceMaster) 负责节点管理、负载均衡和错误恢复。任务数据库 (Task Database) 保存所有任务的状态。建议服务器 (Suggestion Server) 为每个任务生成新配置。REST API 在用户/工作者和建议服务器之间建立了桥梁。验证工作者 (Evaluation Worker) 由用户提供和拥有。

OpenBox 内置大量优化组件,其中优化算法包括贝叶斯优化,遗传算法等,如下图所示:

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

为简化用户的使用门槛以及提高系统在各问题上的性能,OpenBox 默认采用一种自动选择优化算法的策略,根据输入参数类型,目标个数,约束个数选择合适的优化算法。用户也可基于自身需求,在系统推荐的基础上自行选择优化策略。更多 OpenBox 的特性请参考开源文档:

https://open-box.readthedocs.io/zh_CN/latest/overview/overview.html

目前 OpenBox 已在快手、阿里巴巴集团等企业落地部署与使用。

OpenBox 性能验证

1、收敛效果对比

为体现 OpenBox 在通用黑盒优化问题上的性能,系统针对单/多目标,无/有约束,共 4 种场景对比 OpenBox 与现有算法与系统在优化数学函数上的效果,实验效果如下四图所示。可以看出在不同的优化场景中,OpenBox 相较现有系统都有较为显著的收敛效果提升。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

2、端到端效果对比

针对实际场景,Openbox 以表格分类的机器学习任务为例,与现有开源系统 BoTorch,GPGlowOpt,Spearmint,HyperMapper,SMAC3,Hyperopt 进行对比。为保证公平性,Openbox 使用串行方式执行任务,并汇报调参结果在测试集上的准确率。以下展示使用 LightGBM 与 LibSVM 两个模型在 25 个 OpenML 公开数据集上的调参结果平均排名。值得注意的是,由于 LibSVM 的搜索空间复杂且包含条件选择,OpenBox 仅与支持复杂空间定义的 SMAC3 以及 Hyperopt 进行对比。

可以观察到 OpenBox 在两个模型调参中均获得了优异的性能。具体来说,OpenBox 在 Lightgbm 调参中排名中位数为 1.25,在 LibSBM 调参中为 1.50,体现了 OpenBox 相比其它开源系统在超参数优化任务中的优势。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

(a) AutoML 任务 LightGBM 优化结果

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

(b) AutoML 任务 LibSVM 优化结果

3、并行性能对比

OpenBox 支持高效的并行优化算法,使得在达到相同的优化效果的前提下,所需要的时间代价大幅降低。下图展示了使用 OpenBox 中并行优化算法在 LightGBM 调参任务上的提升,使用的数据集为公开数据集 optdigits 。其中“Sync”表示同步并行,“Async”表示异步并行,“-n”表示并发度。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

可以观察到,相比串行优化(Seq-1),并行能够带来很大程度上提升搜索效率。其中最显著的提升来自于并发度为 8 的异步优化算法,在达到与串行方法相同的优化结果时仅使用 1/80 的时间预算,也即实现 7.5× 的加速比。(理想加速比为 8×)

更多关于 OpenBox 的实验结果,请参考 OpenBox 论文:

https://arxiv.org/abs/2106.00421

OpenBox 使用示例

目前 OpenBox 支持主流平台(Linux、macOS、Window)使用。用户只需在代码中定义空间,给出目标函数,构造优化器即可运行。以下以一个简单的多目标带约束问题为例:

首先,我们需要 import 必要的组件:

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

接下来,我们定义一个包含两个连续变量的搜索空间:

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

随后,我们给出一个简单的以上述两个变量为输入的目标函数。这个目标函数包含两个目标以及两个约束:

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

最后我们定义一个优化器,传入指定的参数后,只需调用 run () 即可开始优化。

北大 DAIR 实验室推出开源高效的通用黑盒优化系统 OpenBox

除了上述包调用的方法,OpenBox 还支持用户通过接口访问服务,从服务端获取推荐的参数配置,在本地执行参数性能验证,并通过访问网站页面,可视化监视与管理优化过程。

完整的示例以及更多的使用场景,欢迎参考 OpenBox 官方文档:

https://open-box.readthedocs.io/zh_CN/latest/

论文地址:https://arxiv.org/abs/2106.00421

项目 Github 地址:https://github.com/PKU-DAIR/open-box

欢迎大家关注点赞!

参考文献

[1]Yang Li, Yu Shen, Wentao Zhang, Yuanwei Chen, Huaijun Jiang, Mingchao Liu, Jiawei Jiang, Jinyang Gao, Wentao Wu, Zhi Yang, Ce Zhang, Bin Cui.  “OpenBox: A Generalized Black-box Optimization Service.” Proceedings of the 27rd ACM SIGKDD international conference on knowledge discovery and data mining. 2021.

[2] Bergstra, James, et al. “Algorithms for hyper-parameter optimization.” Advances in neural information processing systems 24 (2011).

[3] Snoek, Jasper, Hugo Larochelle, and Ryan P. Adams. “Practical bayesian optimization of machine learning algorithms.” Advances in neural information processing systems 25 (2012).

[4] Hutter, Frank, Holger H. Hoos, and Kevin Leyton-Brown. “Sequential model-based optimization for general algorithm configuration.” International conference on learning and intelligent optimization. Springer, Berlin, Heidelberg, 2011.

[5] Balandat, Maximilian, et al. “BoTorch: A framework for efficient Monte-Carlo Bayesian optimization.” Advances in Neural Information Processing Systems (NeurIPS) (2020).

[6] Knudde, Nicolas, et al. “GPflowOpt: A Bayesian optimization library using tensorflow.” arXiv preprint arXiv:1711.03845 (2017).

[7] Golovin, Daniel, et al. “Google vizier: A service for black-box optimization.” Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining. 2017.

[8] Nardi, Luigi, David Koeplinger, and Kunle Olukotun. “Practical design space exploration.” 2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS). IEEE, 2019.

[9] Falkner, Stefan, Aaron Klein, and Frank Hutter. “BOHB: Robust and efficient hyperparameter optimization at scale.” International Conference on Machine Learning. PMLR, 2018.

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/46783.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论