Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著
Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑:
- 10,000+ GitHub星标
- 每月300万+ 下载量
- 16,000+ 代码库使用
- 5,000+ 论文引用
- 18,000+ Kaggle的code使用

Optuna 4.0的开发重点包括:
- 用户间功能共享: 引入OptunaHub平台,便于共享新的采样器和可视化算法。
- 优化生成式AI和多样化计算环境:- 正式支持Artifact Store,用于管理生成的图像和训练模型。- 稳定支持NFS的JournalStorage,实现分布式优化。
- 核心功能增强:- 多目标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,可以实现跨节点的分布式优化。这对于难以设置传统数据库服务器的环境尤其有用。
使用示例:
importoptunafromoptuna.storagesimportJournalStoragefromoptuna.storages.journalimportJournalFileBackenddefobjective(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具有以下优势:
- 更高的样本效率,特别是在1000-10000次试验的范围内
- 能够处理动态搜索空间
- 支持用户定义的类别距离
在之前版本的TPESampler在处理大量试验时存在性能瓶颈,限制了其在大规模多目标优化中的应用。
性能提升
Optuna 4.0对多目标TPESampler进行了显著优化:
- 三目标优化场景下,200次试验的速度提高了约300倍
- 能够高效处理数千次试验的多目标优化
这一改进主要通过优化以下算法实现:
- WFG(加权超体积增益)计算
- 非支配排序
- HSSP(超体积子集选择问题)
TPESampler的工作原理
TPESampler基于树形Pareto估计(TPE)算法。在多目标优化中,它的工作流程如下:
- 将观察到的试验分为非支配解和支配解两组
- 为每个参数构建两个概率分布:一个基于非支配解,另一个基于支配解
- 使用这些分布来指导下一个试验点的选择,倾向于选择可能产生非支配解的参数值
这种方法允许算法在探索(寻找新的有希望的区域)和利用(优化已知的好区域)之间取得平衡。
使用TPESampler进行多目标优化示例
以下是使用TPESampler进行多目标优化的简单示例:
importoptunadefobjective(trial):x=trial.suggest_float("x", -5, 5)y=trial.suggest_float("y", -5, 5)objective_1=x**2+y**2objective_2= (x-2)**2+ (y-2)**2returnobjective_1, objective_2sampler=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在某些情况下可能更为有效:
- 大规模优化:在1000-10000次试验的范围内,TPESampler通常表现更好
- 复杂搜索空间:对于具有条件参数或动态搜索空间的问题,TPESampler更为灵活
- 高维参数空间:TPESampler在处理高维参数空间时通常更有效
选择合适的采样器还应该基于具体问题和计算资源。可以尝试两种采样器,比较它们在特定问题上的性能。
结论与展望
Optuna 4.0通过引入新功能和优化现有算法,大幅提升了其在复杂优化任务和多样化计算环境中的适用性。特别是多目标TPESampler的性能提升,为处理更复杂的优化问题铺平了道路。
TPESampler的显著加速使得Optuna能够更有效地处理大规模多目标优化问题。这一改进对于需要同时优化多个目标的复杂机器学习任务(如大型语言模型的训练)具有重要意义。
在官方的发布中Optuna团队还提到后面的工作:
- 扩展问题设置的适用范围
- 通过OptunaHub支持更多创新算法
- 进一步优化性能和用户体验
- 改进TPESampler和其他采样器在更广泛场景下的性能
研发团队鼓励用户尝试新版本的多目标TPESampler,Optuna有望在未来版本中提供更强大、更灵活的超参数优化解决方案。
https://avoid.overfit.cn/post/8d9596779bcc44a79f2a53a2a8d02e24
相关文章:
Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著
Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑: 10,000 GitHub星标每月300万 下载量16,00…...
https和harbor仓库跟k8s
目录 https 做证书 harbor仓库 https https是加密的http,它的端口是443,它的协议是tcp协议。建立连接和普通的tcp是一样的,都是三次握手和四次挥手,但是它三次握手之后有一个步骤:SSL或者TLS握手的过程,…...
云计算之网络
目录 一、VPC:云网络的基石 1.1 VPC产品介绍 1.2 vswitch交换机 1.3 vrouter路由器 1.4 产品架构 1.5 常见问题解答及处理 1.5.1 VPC内如何查询某个IP归属? 1.5.2 网络ACL阻断导致ECS访问CLB不通 1.5.3 EIP秒级突发/分布式限速丢包 1.5.4 NAT网关的流量监…...
MySQL Workbench 的入门指南
前言 MySQL Workbench 是一个官方的图形化工具,用于开发、管理和设计 MySQL 数据库服务器。它提供了丰富的功能,可以帮助数据库管理员、开发者以及DBA们高效地工作。下面是一个MySQL Workbench的入门指南,介绍如何安装和使用它。 安装 MyS…...
【SpringBoot】使用Nacos服务注册发现与配置管理
前提:需要提前部署好nacos服务,这里可以参考我的文章:Windows下Nacos安装与配置 0. 版本信息 Spring Boot3.2.8Spring Cloud2023.0.1Spring Cloud alibaba2023.0.1.0nacos2.3.2本地安装的nacos2.3.0 Spring Boot、Spring Cloud、Spring Clo…...
Leetcode面试经典150题-210.课程表II
这个题是图的问题,因为图的拓扑排序在实际应用中有非常多的用途图,所以最近考的越来越多 解法都在代码里,不懂就留言或者私信 看这个题之前一定要好好看看207题我写的题解,也许207看懂了的话,210只是一个coding问题了…...
视频汇聚平台LntonAIServer视频质量诊断功能--偏色检测与噪声检测
随着视频监控技术的不断进步,视频质量成为了决定监控系统性能的关键因素之一。LntonAIServer新增的视频质量诊断功能,特别是偏色检测和噪声检测,进一步强化了视频监控系统的可靠性和实用性。下面我们将详细介绍这两项功能的技术细节、应用场景…...
Vue 使用接口返回的背景图片和拼图图片进行滑动拼图验证
一、背景 前两天发了一篇 vue-monoplasty-slide-verify 滑动验证码插件使用及踩坑_vue-monoplasty-slide-verify 引用后不显示-CSDN博客 这两天项目又需要通过接口校验,接口返回了背景图片和拼图图片,于是在网上找了一篇帖子,vue 图片滑动…...
1-7 掩膜的运用 opencv树莓派4B 入门系列笔记
目录 一、提前准备 二、代码详解 num_pixels np.sum(mask 255) contours, _ cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) c max(contours, keycv2.contourArea) x, y, w, h cv2.boundingRect(c) M cv2.moments(contours[0]) if contours…...
EG边缘计算网关连接华为云物联网平台(MQTT协议)
需求概述 实现一个流程:EG8200mini采集Modbus RTU数据,通过MQTT协议连接华为云物联网平台 Modbus RTU采集此处不做过多赘述,可参考其他案例(串口读取Modbus传感器数据)介绍。下文默认已经采集到Modbus RTU数据。 要…...
List中常见的方法和五种遍历方式
有序:存取的顺序一致 有索引:可以通过索引操作元素 可重复:存储的元素可以重复 package mylist;import java.util.ArrayList; import java.util.List;public class A01_LIstDemo1 {public static void main(String[] args) {List<String…...
华为 HCIP-Datacom H12-821 题库 (8)
有需要题库的可以看主页置顶 1.在 DHCP 运行过程中,如果客户端 IP 地址在相约过去 87.5%还没有完成续约的话,客户将发送什么报文进行再次续约? A、DHCP discover 广播报文 B、DHCP release 单播报文 C、DHCP request 广播报文 D、DHCP reques…...
12. GIS地图制图工程师岗位职责、技术要求和常见面试题
本系列文章目录: 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…...
ORACLE 统计信息的备份与恢复
备份 --需要先创建统计信息基础表 exec dbms_stats.create_stat_table(USER1,STAT_TIMESTAMP); --导出某个用户的所有统计信息 exec dbms_stats.export_schema_stats(USER1,STAT_TIMESTAMP);--测试(插入100条,更新统计信息,略) select num_rows,last_ana…...
2. GIS数据工程师岗位职责、技术要求和常见面试题
本系列文章目录: 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…...
Spark MLlib模型训练—文本算法 LDA(Latent Dirichlet Allocation)
Spark MLlib模型训练—文本算法 LDA(Latent Dirichlet Allocation) Latent Dirichlet Allocation(LDA)是一种用于主题建模的生成式概率模型,广泛应用于文本分析和自然语言处理。LDA 的目标是从一组文档中发现潜在的主题,并将每个文档表示为这些主题的概率分布。它通过推断…...
C++ ─── List的模拟实现
目录 编辑 一, List的模拟实现 二,代码实现 三、list和vector的区别 一, List的模拟实现 List 是一个双向循环链表,由于List的节点不连续,不能用节点指针直接作为迭代器,因此我们要对结点指针封装,来…...
Spring Boot详解
好的!Spring Boot 是一个基于 Spring 框架的项目,它为简化配置、快速启动项目而生。它使得构建独立运行、生产级别的 Spring 应用变得非常简单,让开发者专注于业务逻辑而不再被繁琐的配置所困扰。接下来,我将从以下几个方面为你详…...
Proxfier+burpsuite抓包配置问题
1、burp证书配置 导出证书 后缀为cer 打开浏览器设置 搜索证书--》点安全 管理证书 在圈起来的三个地方添加证书 2、Proxifer配置 配置代理服务器 配置ip和port 配置代理规则 注意画圈部分...
sqli-lab靶场学习(一)——Less1-4
前言 最近一段时间想切入安全领域,因为本身有做数据库运维工作,就打算从sql注入方向切入。而sql注入除了学习日常书本上的概念外,需要有个实践的环境,刚好看到sqli-lab这个靶场,就打算先用这个来学习。 安装部署 网上…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
