Download scripts/stream_eval.py from bastasie/LAMM: direct link, hf CLI and curl.
- Browser
- Download file 1.46 kB
-
https://huggingface.co/spaces/bastasie/LAMM/resolve/main/scripts/stream_eval.py
- Command line
-
hf download hf://spaces/bastasie/LAMM/scripts/stream_eval.py
-
curl -L -o stream_eval.py https://huggingface.co/spaces/bastasie/LAMM/resolve/main/scripts/stream_eval.py
1.46 kB
| import argparse, json | |
| from lamm.data import stream_hf, batched | |
| from lamm.verify import ProofAuditor | |
| from lamm.data import format_sft | |
| from lamm.metrics import summarize | |
| def main(): | |
| ap=argparse.ArgumentParser() | |
| ap.add_argument("--dataset",default="nvidia/Nemotron-SFT-Math-v4") | |
| ap.add_argument("--split",default="train") | |
| ap.add_argument("--source",default="StackExchange-Math") | |
| ap.add_argument("--batch-size",type=int,default=16) | |
| ap.add_argument("--batches",type=int,default=10) | |
| args=ap.parse_args() | |
| auditor=ProofAuditor() | |
| audits=[] | |
| for bi,batch in enumerate(batched(stream_hf(args.dataset,args.split,args.source),args.batch_size),1): | |
| print(f"BATCH {bi}: {len(batch)}") | |
| for rec in batch: | |
| assistant = "" | |
| for m in reversed(rec.messages): | |
| if isinstance(m,dict) and m.get("role")=="assistant": | |
| assistant=str(m.get("content") or m.get("reasoning_content") or "") | |
| break | |
| if not assistant: | |
| continue | |
| import re | |
| steps=[x.strip() for x in re.split(r"(?i)(?=\\bSTEP\\s*\\d+\\b)|\\n\\s*\\n",assistant) if x.strip()] | |
| if len(steps)==1: | |
| steps=[assistant] | |
| a=auditor.audit(steps,rec.expected_answer) | |
| audits.append(a) | |
| if bi>=args.batches: break | |
| print(json.dumps(summarize(audits),indent=2)) | |
| if __name__=="__main__": | |
| main() | |