42e commited on
Commit
169e9ea
·
verified ·
1 Parent(s): 3ee87d5

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. src/mathcompose/train/train.py +24 -2
src/mathcompose/train/train.py CHANGED
@@ -70,7 +70,23 @@ def build_and_train(args) -> str:
70
  eval_ds = ds.get("validation")
71
 
72
  t = cfg["train"]
73
- grad_ckpt = bool(t.get("gradient_checkpointing", True)) and use_4bit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  optim = t.get("optim", "paged_adamw_8bit") if use_4bit else "adamw_torch"
75
 
76
  sft_args = SFTConfig(
@@ -127,7 +143,13 @@ def main() -> None:
127
  ap.add_argument("--val-file", default=None)
128
  ap.add_argument("--output-dir", default=None)
129
  ap.add_argument("--no-4bit", action="store_true", help="disable 4-bit (CPU smoke / debugging)")
130
- ap.add_argument("--max-steps", type=int, default=0, help="cap steps (smoke test)")
 
 
 
 
 
 
131
  ap.add_argument("--wandb", action="store_true")
132
  ap.add_argument("--push", action="store_true", help="push adapter to HF Hub")
133
  ap.add_argument("--hub-model-id", default=None)
 
70
  eval_ds = ds.get("validation")
71
 
72
  t = cfg["train"]
73
+ # optional CLI overrides (getattr keeps programmatic callers/tests working)
74
+ if getattr(args, "epochs", None):
75
+ t["epochs"] = args.epochs
76
+ if getattr(args, "batch_size", None):
77
+ t["per_device_train_batch_size"] = args.batch_size
78
+ if getattr(args, "grad_accum", None):
79
+ t["gradient_accumulation_steps"] = args.grad_accum
80
+ if getattr(args, "max_length", None):
81
+ t["max_length"] = args.max_length
82
+
83
+ gc_mode = getattr(args, "grad_ckpt", "auto")
84
+ if gc_mode == "on":
85
+ grad_ckpt = True
86
+ elif gc_mode == "off":
87
+ grad_ckpt = False
88
+ else:
89
+ grad_ckpt = bool(t.get("gradient_checkpointing", True)) and use_4bit
90
  optim = t.get("optim", "paged_adamw_8bit") if use_4bit else "adamw_torch"
91
 
92
  sft_args = SFTConfig(
 
143
  ap.add_argument("--val-file", default=None)
144
  ap.add_argument("--output-dir", default=None)
145
  ap.add_argument("--no-4bit", action="store_true", help="disable 4-bit (CPU smoke / debugging)")
146
+ ap.add_argument("--max-steps", type=int, default=0, help="cap steps (GPU/CPU smoke)")
147
+ # per-run overrides for adapting to the GPU you got (T4 vs L4/A100/H100)
148
+ ap.add_argument("--epochs", type=int, default=None)
149
+ ap.add_argument("--batch-size", type=int, default=None, help="per-device train batch")
150
+ ap.add_argument("--grad-accum", type=int, default=None)
151
+ ap.add_argument("--max-length", type=int, default=None, help="sequence length (<=4096)")
152
+ ap.add_argument("--grad-ckpt", choices=["auto", "on", "off"], default="auto")
153
  ap.add_argument("--wandb", action="store_true")
154
  ap.add_argument("--push", action="store_true", help="push adapter to HF Hub")
155
  ap.add_argument("--hub-model-id", default=None)