ctokx's picture
Add scripts/
0f27fb6 verified
Raw
History Blame Contribute Delete
1.61 kB
"""Regenerate every number in the model card from scratch.
python scripts/reproduce_all.py # ModernBERT only (~40 min on an RTX 4060)
python scripts/reproduce_all.py --all-models # adds DeBERTa-v3 and SecureBERT
If this script does not run clean, the model card is wrong. That is the rule
this repo is built around.
"""
import argparse
import subprocess
import sys
import time
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def run(cmd: list[str]) -> None:
print(f"\n{'=' * 70}\n$ {' '.join(cmd)}\n{'=' * 70}", flush=True)
t0 = time.time()
result = subprocess.run([sys.executable, *cmd], cwd=ROOT)
if result.returncode != 0:
sys.exit(f"FAILED: {' '.join(cmd)}")
print(f"[{time.time() - t0:.0f}s]", flush=True)
def main() -> None:
ap = argparse.ArgumentParser()
ap.add_argument("--all-models", action="store_true",
help="also train DeBERTa-v3-base and SecureBERT")
ap.add_argument("--epochs", type=int, default=6)
args = ap.parse_args()
run(["scripts/01_build_dataset.py"])
run(["scripts/02_run_baselines.py"])
models = ["modernbert"] + (["deberta", "securebert"] if args.all_models else [])
for model in models:
for scheme in ("document", "random"):
run(["scripts/03_train.py", "--model", model,
"--scheme", scheme, "--epochs", str(args.epochs)])
run(["scripts/04_report.py"])
run(["-m", "pytest", "tests/", "-q"])
print("\nAll steps completed. results/RESULTS.md is current.")
if __name__ == "__main__":
main()