← Back to all sparks
M

mlr3tuning

ANALYTICS
Velocity2.5

Hyperparameter tuning and optimization for the mlr3 machine learning framework

mlr3tuning is rebuilding its async machinery under a stable public surface

mlr3hyperparameter-tuningasync-optimizationcallbacksr-package
Current state
mlr3tuning provides hyperparameter optimization for the mlr3 ecosystem, and its recent history is dominated by the asynchronous tuning path: archive freezing, callback stages around queue evaluation, and version-locked compatibility with the rush backend. Releases pair a small feature with several fixes and an explicit compatibility line naming the mlr3 or rush version they track. The most recent release drops all workarounds for older rush versions, which suggests that dependency has stabilized enough to require rather than accommodate.
Where it's heading
Two things are being tidied at once. The async archive is converging on a consistent data.table representation across batch and async variants, so results are shaped the same regardless of how tuning ran. Separately, the package is becoming a better ecosystem citizen — unioning tuner properties on load instead of overwriting them, removing its callbacks on unload, and raising informative errors from AutoTuner accessors on an untrained model. Both are the marks of a package used as a dependency more than as a destination.
Prediction
With rush pinned to 1.2.0 and the compatibility shims gone, the next release is likely to expose more of the async path through callbacks rather than change the tuning interface.

Recent moves

  1. 18d ago

    mlr3tuning 1.6.1 stops clobbering other packages' tuner properties

    The package now unions mlr_reflections$tuner_properties on load rather than overwriting it, so properties registered by other extensions survive, and it cleans up its callbacks and properties on unload. AutoTuner accessors also raise informative errors on an untrained model, and rush 1.2.0 becomes the minimum with all older workarounds removed.

    View source ↗
  2. 4mo ago

    mlr3tuning 1.6.0 aligns archive column order across tuning classes

    Compatibility with rush 1.0.0, plus consistent column ordering when the async and batch tuning archives are converted to data.table. Alignment work with no behavioral change for callers.

    View source ↗
  3. 8mo ago

    mlr3tuning 1.5.1 tracks xgboost 3.1.2.1

    A compatibility release for xgboost 3.1.2.1 and nothing else.

    View source ↗
  4. 8mo ago

    mlr3tuning 1.5.0 adds queue evaluation stages to async callbacks

    CallbackAsyncTuning gains on_optimizer_queue_before_eval and on_optimizer_queue_after_eval stages, giving callers hooks around queue evaluation, alongside lighter logging and fixes to loaded packages in the objective. Extending the callback surface is how this package exposes the async path without widening its API.

    View source ↗
  5. 1y ago

    mlr3tuning 1.4.0 unifies logging under a base mlr3 logger

    Resample stages from CallbackResample become available in both batch and async tuning callbacks, internal tuned values appear in logs, and two breaking changes land — the internal search space argument is removed and mlr3 gains a base logger with bbotk and mlr3tuning logging beneath it. Class printing moves to cli.

    View source ↗
  6. 1y ago

    mlr3tuning 1.3.0 adds a frozen async archive and leaner worker storage

    ArchiveAsyncTuningFrozen saves an async tuning archive to a data.table, and models are stored on workers only when requested. Both address the practical problem of async tuning producing state that is awkward to move or too large to keep.

    View source ↗