Skip to main content

entrenar/hf_pipeline/config/
output.rs

1//! Output configuration
2
3use serde::{Deserialize, Serialize};
4
5/// Default number of training steps between checkpoint saves.
6const DEFAULT_SAVE_STEPS: usize = 500;
7
8/// Output configuration
9#[derive(Debug, Clone, Serialize, Deserialize)]
10#[serde(default)]
11pub struct OutputConfig {
12    /// Output directory
13    pub dir: String,
14    /// Save checkpoints every N steps
15    pub save_steps: usize,
16    /// Evaluate every N steps
17    pub eval_steps: usize,
18    /// Log every N steps
19    pub log_steps: usize,
20    /// Push to HuggingFace Hub
21    pub push_to_hub: bool,
22    /// Hub repository ID
23    pub hub_repo_id: Option<String>,
24    /// Generate model card (README.md) on publish
25    pub generate_model_card: bool,
26    /// License for Hub publication (SPDX identifier, e.g., "apache-2.0")
27    pub hub_license: Option<String>,
28    /// Tags for Hub discoverability
29    pub hub_tags: Vec<String>,
30    /// Whether the Hub repository should be private
31    pub hub_private: bool,
32}
33
34impl Default for OutputConfig {
35    fn default() -> Self {
36        Self {
37            dir: "./output".to_string(),
38            save_steps: DEFAULT_SAVE_STEPS,
39            eval_steps: 100,
40            log_steps: 10,
41            push_to_hub: false,
42            hub_repo_id: None,
43            generate_model_card: true,
44            hub_license: None,
45            hub_tags: Vec::new(),
46            hub_private: false,
47        }
48    }
49}