OpenBox: 通用且高效的黑箱优化系统¶
OpenBox 是一个高效的开源系统,旨在解决广义黑箱优化(BBO)问题,例如 自动超参数调优、 自动A/B测试、实验设计、数据库参数调优、 处理器架构和电路设计、 资源分配、自动化学设计等。
OpenBox的设计遵循提供“BBO即服务”的理念——我们选择将OpenBox实现为一个分布式、容错、可扩展且高效的服务,具有广泛的应用范围、跨问题的稳定性能以及易用性、可移植性和零维护等优势。
有两种方式可以使用OpenBox: 独立的Python包 和在线BBO服务。
OpenBox GitHub: https://github.com/PKU-DAIR/open-box
新闻¶
OpenBox 基于的解决方案在 ACM CIKM 2021 AnalyticCup (赛道 - 推荐系统的自动超参数优化)中获得了第一名。
OpenBox 团队在 2021 CCF ChinaSoft 会议的开源创新竞赛中获得了 最高奖(特别奖)。
Pasca,采用Openbox支持神经架构搜索功能,赢得了WWW’22最佳学生论文奖。
谁应该考虑使用OpenBox¶
那些希望为他们的机器学习任务自动调整超参数的人。
那些希望为他们的配置搜索任务(例如,数据库旋钮调优)找到最佳配置的人。
数据平台所有者希望在其平台上提供BBO服务。
研究人员和数据科学家希望轻松解决广义BBO问题。
OpenBox 功能¶
OpenBox 拥有广泛的功能范围,包括:
具有多目标和约束的BBO。
使用迁移学习的BBO。
BBO 分布式并行化。
多保真度加速的BBO。
带早停的BBO。
在下面,我们提供了现有BBO系统的分类:
系统/包 |
FIOC |
多目标 |
约束 |
历史 |
分布式 |
---|---|---|---|---|---|
Hyperopt |
√ |
× |
× |
× |
√ |
Spearmint |
× |
× |
√ |
× |
× |
SMAC3 |
√ |
√ |
× |
× |
× |
BoTorch |
× |
√ |
√ |
× |
× |
Ax |
√ |
√ |
√ |
× |
√ |
Optuna |
√ |
√ |
√ |
× |
√ |
GPflowOPT |
× |
√ |
√ |
× |
× |
Vizier |
√ |
× |
△ |
△ |
√ |
HyperMapper |
√ |
√ |
√ |
× |
× |
HpBandSter |
√ |
× |
× |
× |
√ |
OpenBox |
√ |
√ |
√ |
√ |
√ |
FIOC: 支持不同的输入变量类型,包括浮点数、整数、序数和分类变量。
多目标:支持优化多个目标。
约束: 支持不等式约束。
历史: 支持将先前任务中的先验知识注入到当前搜索中(即迁移学习)。
分布式: 支持在分布式环境中进行并行评估。
△ 表示系统在一般情况下无法支持它或需要额外的依赖项。