Download scripts/download_prm800k.py from 42e/mathcompose: direct link, hf CLI and curl.
- Browser
- Download file 1.76 kB
-
https://huggingface.co/42e/mathcompose/resolve/main/scripts/download_prm800k.py
- Command line
-
hf download hf://42e/mathcompose/scripts/download_prm800k.py
-
curl -L -o download_prm800k.py https://huggingface.co/42e/mathcompose/resolve/main/scripts/download_prm800k.py
1.76 kB
| """Download PRM800K step-label files (OpenAI, MIT) into data/raw/prm800k/. | |
| python scripts/download_prm800k.py # phase2_train (what we use) | |
| python scripts/download_prm800k.py --all # all four phase files | |
| The GitHub raw URLs serve the real JSONL (schema: question/label/steps/...), | |
| which is exactly what mathcompose.datagen.prm800k_loader expects. | |
| """ | |
| import argparse | |
| import sys | |
| import urllib.request | |
| from pathlib import Path | |
| BASE = "https://github.com/openai/prm800k/raw/main/prm800k/data" | |
| FILES = ["phase2_train.jsonl", "phase1_train.jsonl", "phase2_test.jsonl", "phase1_test.jsonl"] | |
| def download(name: str, out_dir: Path) -> None: | |
| url = f"{BASE}/{name}" | |
| dest = out_dir / name | |
| dest.parent.mkdir(parents=True, exist_ok=True) | |
| print(f"downloading {name} -> {dest}") | |
| def _hook(block, bsize, total): | |
| if total > 0: | |
| pct = min(100, block * bsize * 100 // total) | |
| sys.stdout.write(f"\r {pct:3d}% ({block * bsize / 1e6:.0f} MB)") | |
| sys.stdout.flush() | |
| urllib.request.urlretrieve(url, dest, reporthook=_hook) | |
| print(f"\r done: {dest.stat().st_size / 1e6:.1f} MB{' ' * 10}") | |
| def main() -> int: | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--out-dir", default="data/raw/prm800k") | |
| ap.add_argument("--all", action="store_true", help="download all four phase files") | |
| args = ap.parse_args() | |
| names = FILES if args.all else ["phase2_train.jsonl"] | |
| for n in names: | |
| download(n, Path(args.out_dir)) | |
| print("\nNext: python -m mathcompose.data.build_verifier_dataset " | |
| f"--prm800k {args.out_dir}/phase2_train.jsonl --teacher promptlens --limit 15000") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |