File size: 1,152 Bytes
7dcbd04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""Entraîne M.O.U.H.  Lancement :

  python scripts/train.py --preset mouh-tiny --data ./corpus --max_steps 200
  torchrun --nproc_per_node=8 scripts/train.py --preset mouh-1.5b --data <dataset_hub> --parallel fsdp
"""
import argparse
import dataclasses
import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from mouh.training import TrainArgs, train  # noqa: E402


def main() -> None:
    ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
    for f in dataclasses.fields(TrainArgs):
        t = f.type if isinstance(f.type, type) else str
        if f.name == "betas":
            ap.add_argument("--betas", type=float, nargs=2, default=list(f.default))
        elif f.type in (bool, "bool"):
            ap.add_argument(f"--{f.name}", action="store_true", default=f.default)
        else:
            ap.add_argument(f"--{f.name}", type={"int": int, "float": float}.get(str(f.type), str), default=f.default)
    ns = vars(ap.parse_args())
    ns["betas"] = tuple(ns["betas"])
    print(train(TrainArgs(**ns)))


if __name__ == "__main__":
    main()