Core Concepts¶
The fishy-business framework is designed around three main pillars: Configuration, Factories, and Unified Orchestration.
Config-Driven Design¶
Unlike many ML projects where hyperparameters are hardcoded or passed through complex nested dictionaries, this project uses a hierarchical YAML-based configuration.
Global Settings: Managed by
TrainingConfig.Model Registries: Defined in
models.yaml, mapping model names to their Python class paths.Dataset Rules: Defined in
datasets.yaml, specifying how each Excel/CSV file should be filtered and encoded.
The Model Factory¶
The Model Factory (fishy._core.factory) is the central dispatcher. It allows you to instantiate any model (Deep, Classic, or Evolutionary) using a simple string identifier. This decouples the training logic from specific model architectures, making it trivial to swap a Transformer for a CNN or an OPLS-DA model.
Unified Orchestration¶
The UnifiedTrainer acts as a high-level manager. It handles:
1. Context Management: Automatic directory creation and log routing.
2. Data Flow: Linking the DataModule to the training engine.
3. Result Persistence: Saving metrics, figures, and model checkpoints in a standardized format.
By using this architecture, adding a new model usually requires zero lines of change to the training scripts—you simply register it in the YAML config.