Changelog¶
All notable changes to the ROSE project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
- New
start()API: Replaced the blockingteach()method with an asynchronous iteratorstart(). This allows users to instrument the loop, log metrics in real-time (e.g., to MLflow), and implement custom early stopping or adaptive logic. - IterationState: Granular state reporting after each iteration, providing metrics, labeled/unlabeled counts, and statistics in a structured dataclass.
- Dynamic Configuration: Added ability to update learner configuration (batch sizes, task arguments, etc.) between iterations using
learner.set_next_config(). - **Added
Mlflowintegration:rose.learner()is now compatible withmlflowtracking. This feature is to support the need by the diffusion model community to track the training process via ROSE.
Changed¶
- Async-First Execution: The core learner logic is now
asynciobased, enabling better concurrency and integration with modern Python stacks. - Separation of Concerns: Orchestration logic (ROSE) is more clearly separated from task execution (AsyncFlow).
Deprecated¶
learner.teach(): This method is deprecated and will be removed in a future version. Users should migrate to theasync for state in learner.start()pattern.