当前位置: 首页 > 新闻中心 > 要闻速递 > 正文

新闻中心

要闻速递

NEWS

崔斌教授AutoML团队开源高效的通用黑盒优化系统OpenBox(KDD2021)

时间:2021-08-10    来源:

  • 分享

近日,北京大学信息学院教授、大数据分析与应用技术国家工程实验室数据管理与分析中心主任崔斌团队开发的通用黑盒优化系统OpenBox开源发布!

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

相关论文已经被KDD 2021录用,"OpenBox: A Generalized Black-box Optimization Service"。目前OpenBox已在快手、阿里巴巴集团等企业落地部署与使用。

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

01 研究背景

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

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

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

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

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

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

02 OpenBox设计思路

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

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

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

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

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

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

B96D

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

1226A

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

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

13409

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

03 OpenBox性能验证

1、收敛效果对比

为体现OpenBox在通用黑盒优化问题上的性能,系统针对单/多目标,无/有约束,共4种场景对比OpenBox与现有算法与系统在优化数学函数上的效果,实验效果如下四图所示。可以看出在不同的优化场景中,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相比其它开源系统在超参数优化任务中的优势。

CD47

图片(a) AutoML任务LightGBM优化结果

9C2D

图片(b) AutoML任务LibSVM优化结果

3、并行性能对比

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

164BF

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

04 OpenBox使用示例

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

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

3804

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

B802

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

C282

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

E8E5

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

转载本网文章请注明出处

版权所有©北京大学大数据分析与应用技术国家工程实验室 京ICP备05065075号-1 京公网安备 110402430047 号