entrenar/config/validate/
error.rs1#[derive(Debug, thiserror::Error)]
7pub enum ValidationError {
8 #[error("Model path does not exist: {0}")]
9 ModelPathNotFound(String),
10
11 #[error("Training data path does not exist: {0}")]
12 TrainDataNotFound(String),
13
14 #[error("Validation data path does not exist: {0}")]
15 ValDataNotFound(String),
16
17 #[error("Invalid learning rate: {0} (must be > 0.0 and <= 1.0)")]
18 InvalidLearningRate(f32),
19
20 #[error("Invalid batch size: {0} (must be > 0)")]
21 InvalidBatchSize(usize),
22
23 #[error("Invalid epochs: {0} (must be > 0)")]
24 InvalidEpochs(usize),
25
26 #[error("Invalid LoRA rank: {0} (must be > 0 and <= 1024)")]
27 InvalidLoRARank(usize),
28
29 #[error("Invalid LoRA alpha: {0} (must be > 0.0)")]
30 InvalidLoRAAlpha(f32),
31
32 #[error("Invalid LoRA dropout: {0} (must be in [0.0, 1.0))")]
33 InvalidLoRADropout(f32),
34
35 #[error("Invalid quantization bits: {0} (must be 4 or 8)")]
36 InvalidQuantBits(u8),
37
38 #[error("Invalid optimizer: {0} (must be one of: adam, adamw, sgd)")]
39 InvalidOptimizer(String),
40
41 #[error("Invalid merge method: {0} (must be one of: ties, dare, slerp)")]
42 InvalidMergeMethod(String),
43
44 #[error("Invalid gradient clip value: {0} (must be > 0.0)")]
45 InvalidGradClip(f32),
46
47 #[error("Invalid sequence length: {0} (must be > 0)")]
48 InvalidSeqLen(usize),
49
50 #[error("Invalid save interval: {0} (must be > 0)")]
51 InvalidSaveInterval(usize),
52
53 #[error("LoRA target modules cannot be empty")]
54 EmptyLoRATargets,
55
56 #[error("Invalid LR scheduler: {0} (must be one of: cosine, linear, constant)")]
57 InvalidLRScheduler(String),
58
59 #[error("Invalid publish repo: {0} (must be org/name format)")]
60 InvalidPublishRepo(String),
61
62 #[error("Invalid publish format: {0} (must be safetensors or gguf)")]
63 InvalidPublishFormat(String),
64}