Skip to content

fix(deps): update dependency optuna to v5 - #377

Open
dreadnode-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/optuna-5.x
Open

fix(deps): update dependency optuna to v5#377
dreadnode-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/optuna-5.x

Conversation

@dreadnode-renovate-bot

@dreadnode-renovate-bot dreadnode-renovate-bot Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

| Package | Change | Age | Confidence |
|

Generated Summary:

  • Updated optuna dependency version from >=4.5.0,<5.0.0 to >=5.0.0,<5.1.0.
  • This change allows the use of Optuna version 5.x, which may include new features and improvements.
  • Compatibility ensures that any code relying on versions prior to 5.0 is not affected.
  • Review of any breaking changes in Optuna 5.x should be conducted before merging.

This summary was generated with ❤️ by rigging

| optuna | >=4.5.0,<5.0.0>=5.0.0,<5.1.0 | age | confidence |


Release Notes

optuna/optuna (optuna)

v5.0.0

Compare Source

This is the release note for v5.0.0.

Highlights

Major Enhancements to the Default Sampler

Optuna v5.0 introduces the first major update to its default sampler configuration since v1.5. For single-objective optimization, TPESampler now enables multivariate TPE (#​6746) and the constant liar strategy by default (#​6738), together with enhanced bandwidth computation (Watanabe 2023). For multi-objective optimization, TPESampler replaces NSGAIISampler as the default sampler (#​6766). These settings were selected through comprehensive benchmarking to improve optimization performance.

image4

New Core APIs for Constrained Optimization

Constrained optimization is now represented directly in Optuna’s core Trial API. Constraint values can be set inside the objective function using trial.set_constraint() and retrieved through trial.constraints, providing a consistent interface across supported samplers. Accordingly, the sampler-specific constraints_func arguments are now deprecated. (#​6736, #​6754, #​6773)

PED-ANOVA Becomes the Default Parameter Importance Evaluator

Optuna v5.0 makes PedAnovaImportanceEvaluator the default evaluator used by optuna.importance.get_param_importances(), replacing f-ANOVA. PED-ANOVA computes parameter importances substantially faster, works with Optuna’s standard dependencies, and now supports conditional search spaces and multi-objective studies. The conditional extension, Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces, was accepted at KDD 2026. (#​6682, #​6728, #​6748)

Improved Parallel Optimization with GPSampler

GPSampler, now a stable API in Optuna v5.0, introduces Monte Carlo-based q-batch acquisition functions that account for trials currently under evaluation. Rather than assigning each running trial a single heuristic pseudo-value, these acquisition functions integrate over possible outcomes sampled from the Gaussian process posterior, allowing predictive uncertainty to inform subsequent suggestions.

The new acquisition functions cover all four major problem settings: qLogEI for unconstrained single-objective optimization, qLogCEI for constrained single-objective optimization, qLogEHVI for unconstrained multi-objective optimization, and qLogCEHVI for constrained multi-objective optimization. This provides a more principled approach to parallel Bayesian optimization across the problem settings supported by GPSampler. (#​6715, #​6640, #​6744, #​6792, #​6804)

image2

Breaking Changes

New Features

Enhancements

  • Fix QMCSampler fallback to independent sampling in distributed setups (#​6638, thanks @​Rishabh-git10!)
  • Speed up BruteForceSampler by avoiding full tree build based on tree size check (#​6646)
  • Add search space fingerprint for quicker consistency check in BruteForceSampler (#​6649)
  • Speed up BruteForceSampler by candidates caching (#​6650)
  • Split BruteForceSampler refactoring [3/3] (#​6657)
  • Refactor PED-ANOVA (#​6681)
  • Add lazy tree node to BruteForceSampler for speedup (#​6705)
  • Raise ValueError in PedAnovaImportanceEvaluator for multi-objective studies without target (#​6716)
  • Fix for the GPSampler OMP issue (#​6753)
  • Bind loop var in _get_constraint_funcs to avoid closure bug (optuna/optuna-integration#278, thanks @​GopalGB!)
  • Fix GitHub Actions workflow to use Optuna master (optuna/optuna-integration#307)
  • Allow JournalStorage to read Rustuna journal files (#​6790)
  • Warn against using CmaEsSampler in constrained optimization (#​6802)
  • Preserve empty study names across storage backends (#​6818, thanks @​uczltw6!)

Bug Fixes

Documentation

  • Add ablation study tutorial using BruteForceSampler (#​6652)
  • Simplify the document for deprecated CmaEsSampler options (#​6694)
  • Move deprecated TPESampler options to the end (#​6696)
  • Fix typos in docstrings and duplicated author names in SPXCrossover citation (#​6698, thanks @​Divyansh-ag14!)
  • Fix wording in specify params tutorial (#​6711, thanks @​Ryo2611!)
  • Add a documentation about constrained TPESampler (#​6712)
  • Enhance AutoSampler citation path (#​6714)
  • Update sampler table (#​6717)
  • Clarify n_warmup_steps boundary in MedianPruner and PercentilePruner (#​6733, thanks @​vin0san!)
  • Fix trial report doc (#​6735)
  • Consolidate instruction for external dependency (#​6749)
  • Update sampler table for constrained optimization (#​6775)
  • Fix undefined variable in GCSArtifactStore docstring example (#​6815, thanks @​maupatel!)

Examples

Tests

Code Fixes

  • Refactor batched distribution classes to reduce branch duplication (#​6689)
  • Reduce redundancy in test_brute_force.py (#​6706)
  • Replace SciPy with Torch in gp.py (#​6710)
  • Fix and refactor params validation in PED-ANOVA (#​6729)
  • Show all study names upon load/create study failure (#​6750)
  • Debug and refactor q-logEI (#​6760)
  • Changed type of study's direction into Literal | StudyDirection (#​6762, thanks @​yen-0!)
  • Fix unused mypy ignores in optuna/visualization/matplotlib/_rank.py (#​6767)
  • Avoid unnecessary trial values in storage tests (#​6769)
  • Fix mypy errors (#​6778)
  • Fix flake8 errors in comet and botorch modules (optuna/optuna-integration#310, thanks @​ShamikOfficial!)
  • Separate Scott Parzen from TPE Parzen (followup of PED-ANOVA refactoring) (#​6743)
  • Refactor qConstrainedLogEI (#​6779, thanks @​sawa3030!)
  • Fix type annotations for contextmanager (#​6793, thanks @​yen-0!)
  • Match the acquisition function naming to existing BoTorch literature (#​6807)
  • Fix mypy errors in parallel coordinate plot (#​6808)

Continuous Integration

Other

Thanks to All the Contributors!

This release was made possible by the authors and the people who participated in the reviews and discussions.

@​Alnusjaponica, @​Divyansh-ag14, @​GopalGB, @​Rishabh-git10, @​Ryo2611, @​ShamikOfficial, @​adrianhtt, @​c-bata, @​gen740, @​himkt, @​hrntsm, @​ishitta-iyer, @​kAIto47802, @​maupatel, @​nabenabe0928, @​not522, @​porink0424, @​rkfshakti, @​saivedant169, @​sawa3030, @​uczltw6, @​vin0san, @​y0z, @​yen-0

v4.9.0

Compare Source

This is the release note of v4.9.0.

Highlights

Enhance Multi-Objective Constrained Parallel Optimization in GPSampler

@​sawa3030 introduces parallelization enhancements to GPSampler, leveraging the Kriging Believer approach for constrained and multi-objective optimization (#​6481). This improvement allows for more efficient exploration when multiple trials are running concurrently.

1_0k7Hd3Ipp1IKAI_o-l8DOQ

The GP surrogate is updated by assigning temporary objective function values ​​to the running trials.

For more technical details and benchmarks, please check out our blog post: Improving Optuna’s GPSampler Parallelization by Considering Running Trials.

Deprecate Several Features

The following features are deprecated in v4.9.0 and scheduled for removal in v6.0.0.

optuna

  • Several arguments in TPESampler (#​6635)
    • prior_weight, consider_magic_clip, consider_endpoints, gamma, weights, hyperopt_parameters: These internal parameters are being deprecated to simplify the interface, as the default settings are optimal for most use cases.
    • warn_independent_sampling: Deprecated because TPESampler now robustly supports both independent and joint sampling, making this warning obsolete.
    • categorical_distance_func: This advanced feature will be migrated to OptunaHub in the future.
  • x0 and sigma0 options in CmaEsSampler (#​6624)
    • These options have been deprecated because they require a deep understanding of CmaEsSampler's internals to be configured effectively.
  • optuna.terminator module (#​6668)
    • This feature will be migrated to OptunaHub in the future.
  • RetryFailedTrialCallback (#​6670)
    • This class has been renamed to RetryHeartbeatStaleTrialCallback to better reflect its behavior and avoid confusion with general trial retries (#​6085).
  • optuna.integration module
    • The optuna.integration module currently acts as a shortcut to the external optuna_integration package for backward compatibility. Please import directly from the optuna_integration package going forward.

optuna-integration

  • PyCmaSampler: Please use Optuna's native CmaEsSampler instead.
  • CometCallback: This feature will be migrated to OptunaHub in the future.
  • MLflowCallback: This feature will be migrated to OptunaHub in the future.
  • TensorBoardCallback: This feature will be migrated to OptunaHub in the future.
  • TrackioCallback: This feature will be migrated to OptunaHub in the future.
  • WeightsAndBiasesCallback: This class has already been migrated to OptunaHub.

Breaking Changes

Enhancements

  • Enhance Multi-Objective Constrained Parallel Optimization in GPSampler (#​6481)
  • Remove prior_mu from compute_sigmas (#​6574)
  • Fix sampling bias in BruteForceSampler (#​6627, thanks @​Rishabh-git10!)
  • Refactor BruteForceSampler (#​6645)
  • Speed up BruteForceSampler by using any instead of count (#​6647)
  • Fix the return type of BruteForceSampler (#​6648)
  • Split BruteForceSampler refactoring [2/3] (#​6656)
  • fix: collect all infeasible values in error message instead of early return (#​6661, thanks @​AshutoshDevpura!)

Bug Fixes

  • Fix categorical None handling in slice plots (#​6621)
  • fix: handle JSONDecodeError in TPESampler._get_params to avoid race condition (#​6628, thanks @​AshutoshDevpura!)
  • Split BruteForceSampler refactoring [2/3] (#​6656)

Documentation

  • Update LightGBM links (#​6511, thanks @​jameslamb!)
  • Improve doc for best_trial/best_trials in constrained optimization (#​6522)
  • Update CmaEsSampler docstring regarding categorical support (#​6625)
  • Fix RST note directive typo in QMCSampler docstring (#​6631, thanks @​RudrenduPaul!)
  • Enhance Generative Engine Optimization (GEO) of many objective and constraint handling (#​6639)
  • Add NSGA-III to FAQ about constraint (#​6641)
  • Update BruteForceSampler and GridSampler information in docs (#​6651)
  • Enhance FAQ about killing trials (#​6653)

Examples

Code Fixes

Continuous Integration

Other

Thanks to All the Contributors!

This release was made possible by the authors and the people who participated in the reviews and discussions.

@​Aliipou, @​Alnusjaponica, @​AshutoshDevpura, @​Rishabh-git10, @​RudrenduPaul, @​Zelys-DFKH, @​acabellom, @​c-bata, @​craigulliott, @​duriantaco, @​gen740, @​hnshah, @​jameslamb, @​kAIto47802, @​kvr06-ai, @​nabenabe0928, @​nightcityblade, @​not522, @​rpathade, @​saivedant169, @​sateeshkumarb, @​satishkc7, @​sawa3030, @​t7r0n, @​y0z, @​yasumorishima

v4.8.0

Compare Source

This is the release note of v4.8.0.

Highlights

Support for Constant Liar Strategy to GPSampler

A constant liar strategy for efficient parallelization has been introduced to GPSampler by @​sawa3030. The figures (left: v4.7.0, right: v4.8.0) show that the overlap of search points has decreased, and a wider variety of solutions are being explored. The experiment uses n_jobs = 10 and n_trials = 100. Currently, this feature supports single-objective and unconstrained optimization. Further extensions are coming in v4.9.0.

v4.7.0 v4.8.0
image60 image26

SHAP-like beeswarm plot visualization

image52

@​yasumorishima introduces the new visualization to OptunaHub. Please refer to https://hub.optuna.org/visualization/plot_beeswarm/ for details.

New Features

Enhancements

  • Validate artifact_id in FileSystemArtifactStore to prevent path traversal (#​6432, thanks @​RinZ27!)
  • fix: correct inverted warning message in pareto front plot (#​6498, thanks @​aerosta!)

Bug Fixes

Documentation

  • Add documentation indicating that WilcoxonPruner requires scipy (#​6477)
  • Remove version & language selectors in the sidebar of docs (#​6482)

Examples

Tests

  • Add SamplerTestCase class in optuna.testing package (#​6424)
  • Move test_before_trial and test_after_trial_* to test_trial.py and test_study.py, respectively (#​6429)

Code Fixes

  • Move type-only imports to TYPE_CHECKING in _param_importances.py (#​6423, thanks @​dotz0ver!)
  • Use future.annotations in matplotlib/_intermediate_values (#​6425, thanks @​Lakshman142!)
  • Reformat files with the latest version of ruff (#​6426)
  • Replace .format() with f-strings in _parallel_coordinate.py ([#&

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| pypi       | optuna  | 4.6.0 | 5.0.0 |
@dreadnode-renovate-bot dreadnode-renovate-bot Bot added area/python Changes to Python package configuration and dependencies type/digest Dependency digest updates labels Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/python Changes to Python package configuration and dependencies type/digest Dependency digest updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants