Optuna 4.0版本发布:多目标优化速度大幅提升

Optuna 4.0发布,新增功能与性能优化,特别是在多目标超参数优化上显著提升。

原文标题:Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著

原文作者:数据派THU

冷月清谈:

Optuna作为一个热门的超参数优化框架,最近发布了4.0版本,带来了一系列重要更新。文章中介绍了Optuna的用户社区增长及其对机器学习领域的影响,并详细阐述了本次版本的主要新特性,包括OptunaHub、Artifact Store、JournalStorage和新Terminator算法。其中,OptunaHub作为功能共享平台,支持用户间算法共享,提高开发便利性;Artifact Store则增强了实验管理能力,支持管理生成的各种文件;JournalStorage为分布式优化提供支持,使其更容易架设在不同环境中。此外,多目标TPESampler的性能显著提升,在复杂多目标优化问题上能高效处理大量试验,尤其是在200次试验中的处理速度提高了300倍。文章最后展望了未来版本的发展方向,鼓励用户体验和尝试新的多目标TPESampler,提升超参数优化体验。

怜星夜思:

1、大家觉得OptunaHub对于开发者有什么具体帮助吗?
2、多目标TPESampler的速度提升对机器学习项目有哪些潜在影响?
3、你认为哪些场景更适合利用Optuna进行多目标优化?

原文内容

图片
来源:Deephub Imba

本文约2200字,建议阅读5分钟

本文介绍了Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。



Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑:

  • 10,000+ GitHub星标
  • 每月300万+ 下载量
  • 16,000+ 代码库使用
  • 5,000+ 论文引用
  • 18,000+ Kaggle的code使用

图片


Optuna 4.0的开发重点包括:

  1. 用户间功能共享: 引入OptunaHub平台,便于共享新的采样器和可视化算法。
  2. 优化生成式AI和多样化计算环境:
    • 正式支持Artifact Store,用于管理生成的图像和训练模型。
    • 稳定支持NFS的JournalStorage,实现分布式优化。
  3. 核心功能增强:
    • 多目标TPESampler的显著加速
    • 新Terminator算法的引入


主要新特性


OptunaHub: 功能共享平台


OptunaHub (hub.optuna.org) 作为Optuna的官方功能共享平台正式发布。它提供了大量优化和可视化算法,使开发者能够轻松注册和分享他们的方法。这个平台的推出预计将加速功能开发,为用户提供更多样化的第三方功能。

图片

Artifact Store: 增强实验管理


Artifact Store是一个专门用于管理优化过程中生成文件的功能。它可以有效处理:

  • 生成式AI输出的文本、图像和音频文件
  • 深度学习模型的大型快照文件

这些文件可以通过Optuna Dashboard进行查看。Optuna 4.0稳定了文件上传API,并新增了artifact下载API。同时Dashboard新增了对JSONL和CSV文件的支持。

图片


JournalStorage: 支持NFS分布式优化


JournalStorage是一种基于操作日志的新型存储方式,它简化了自定义存储后端的实现。其中,JournalFileBackend支持多种文件系统,包括NFS,可以实现跨节点的分布式优化。这对于难以设置传统数据库服务器的环境尤其有用。

使用示例:

import optuna
from optuna.storages import JournalStorage
from optuna.storages.journal import JournalFileBackend

def objective(trial: optuna.Trial) -> float:

storage = JournalStorage(JournalFileBackend(“./journal.log”))
study = optuna.create_study(storage=storage)
study.optimize(objective)


新Terminator算法


为解决超参数过拟合问题,Optuna引入了新的Terminator算法。它可以在超参数过拟合之前终止优化过程,或者帮助用户可视化过拟合开始的时间点。新版本引入了预期最小模型遗憾(EMMR)算法,以支持更广泛的用例。

约束优化增强


Optuna 4.0增强了约束优化功能,特别是:

  • study.best_trial和study.best_trials现在保证满足约束条件
  • 核心算法(如TPESampler和NSGAIISampler)对约束优化的支持得到改进


多目标TPESampler的加速


多目标优化在机器学习中扮演着越来越重要的角色。例如,在翻译任务中,我们可能需要同时优化翻译质量(如BLEU分数)和响应速度。这种情况下,多目标优化比单目标优化更为复杂,通常需要更多的试验来探索不同目标之间的权衡。

TPESampler(Tree-structured Pareto Estimation Sampler)是Optuna中一个强大的采样器,它在多目标优化中展现出了优秀的性能。与默认的NSGAIISampler相比,TPESampler具有以下优势:

  1. 更高的样本效率,特别是在1000-10000次试验的范围内
  2. 能够处理动态搜索空间
  3. 支持用户定义的类别距离

在之前版本的TPESampler在处理大量试验时存在性能瓶颈,限制了其在大规模多目标优化中的应用。

性能提升


Optuna 4.0对多目标TPESampler进行了显著优化:

  • 三目标优化场景下,200次试验的速度提高了约300倍
  • 能够高效处理数千次试验的多目标优化

这一改进主要通过优化以下算法实现:

  1. WFG(加权超体积增益)计算
  2. 非支配排序
  3. HSSP(超体积子集选择问题)


TPESampler的工作原理


TPESampler基于树形Pareto估计(TPE)算法。在多目标优化中,它的工作流程如下:

  1. 将观察到的试验分为非支配解和支配解两组
  2. 为每个参数构建两个概率分布:一个基于非支配解,另一个基于支配解
  3. 使用这些分布来指导下一个试验点的选择,倾向于选择可能产生非支配解的参数值

这种方法允许算法在探索(寻找新的有希望的区域)和利用(优化已知的好区域)之间取得平衡。

使用TPESampler进行多目标优化示例


以下是使用TPESampler进行多目标优化的简单示例:

import optuna

def objective(trial):
x = trial.suggest_float(“x”, -5, 5)
y = trial.suggest_float(“y”, -5, 5)
objective_1 = x2 + y2
objective_2 = (x - 2)**2 + (y - 2)**2
return objective_1, objective_2

sampler = optuna.samplers.TPESampler()
study = optuna.create_study(sampler=sampler, directions=[“minimize”, “minimize”])
study.optimize(objective, n_trials=100)


在这个例子中,定义了一个具有两个目标的优化问题。TPESampler被用作采样器,study被设置为最小化两个目标。

基准测试结果


测试环境:

  • Ubuntu 20.04
  • Intel Core i7-1255U CPU
  • Python 3.9.13
  • NumPy 2.0.0

测试结果如图所示:
图片
图片

可以看到:

  • Optuna 4.0中双目标优化性能接近单目标优化
  • 三目标优化在200次试验时,运行时间从约1,000秒减少到约3秒
  • 新版本在3-5个目标的情况下仍保持高效


TPESampler vs. NSGAIISampler


虽然NSGAIISampler是Optuna中默认的多目标优化采样器,但TPESampler在某些情况下可能更为有效:

  1. 大规模优化:在1000-10000次试验的范围内,TPESampler通常表现更好
  2. 复杂搜索空间:对于具有条件参数或动态搜索空间的问题,TPESampler更为灵活
  3. 高维参数空间:TPESampler在处理高维参数空间时通常更有效

选择合适的采样器还应该基于具体问题和计算资源。可以尝试两种采样器,比较它们在特定问题上的性能。

结论与展望


Optuna 4.0通过引入新功能和优化现有算法,大幅提升了其在复杂优化任务和多样化计算环境中的适用性。特别是多目标TPESampler的性能提升,为处理更复杂的优化问题铺平了道路。

TPESampler的显著加速使得Optuna能够更有效地处理大规模多目标优化问题。这一改进对于需要同时优化多个目标的复杂机器学习任务(如大型语言模型的训练)具有重要意义。

在官方的发布中Optuna团队还提到后面的工作:

  1. 扩展问题设置的适用范围
  2. 通过OptunaHub支持更多创新算法
  3. 进一步优化性能和用户体验
  4. 改进TPESampler和其他采样器在更广泛场景下的性能

研发团队鼓励用户尝试新版本的多目标TPESampler,Optuna有望在未来版本中提供更强大、更灵活的超参数优化解决方案。

编辑:王菁



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。



新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

我觉得像金融风险控制、个性化推荐系统等场景中,往往需要在不同目标间进行权衡,多目标优化显得尤为重要。

自动驾驶或者机器人领域也很合适,因为这些情况下要同时考虑安全性、效率和成本,特别复杂。

另外,医学图像处理或临床决策支持系统,在同时需要优化多项指标时,Optuna也是一个不错的选择。

速度提升意味着我们可以在更短时间内进行更多实验,这对于快速迭代模型来说是个很大的优势。

在实际项目中,这意味着我们能更早地找到合适的超参数,从而加速整个开发过程。这会极大提升工作的效率。

当然,还要提醒大家,虽然速度快了,但选择合适的参数组合和正确解读结果仍然很关键,不能被表面的数字所迷惑。

我认为OptunaHub能够让开发者快速找到优秀的算法案例,尤其对于新手来说,能大大降低学习成本。

最显著的帮助就是能够分享自己的研究成果,提升自己的影响力,同时也能学习到别人的优秀方案。

简单来说,这就像一个社交网络,让开发者不再孤单,可以互相帮助、鼓励,形成合力。