Breaking Changes
* Dependencies have been updated. Please see the README for more information.
* Helios now requires a minimum NumPY version of 2.0.0.
* The `TrainingState` struct was previously saved in checkpoints as a dictionary. This has now been changed to save the struct itself, so you **must** migrate your checkpoints to the new system.
Feature Changes
* Introduces a new plug-in system to extend the functionality of Helios.
* Introduces a new `safe_torch_load` function that wraps `torch.load` with `weights_only` set to true. This addresses the warnings coming from PyTorch starting with 2.4.0.
* Introduces a way to have the trainer ignore certain exception types when training so they can be caught by the calling code.
* Adds a multi-processing queue to the trainer (available only in distributed mode) that allows data to be passed back to the main process.
* Adds native integration with Optuna through the new `OptunaPlugin`.
* Adds a new `CUDAPlugin` that automatically moves batches to the set GPU device.
*
Bug Fixes
* When setting both CPU and GPU for the trainer, an exception is now raised instead of silently ignoring the CPU flag.
* Unit tests are now expanded to cover all supported versions of Python.
* Protobuf is no longer fixed to be less than 5.0.0.