Melikshah's picture
download
raw
2.13 kB
import argparse
import json
from collections import Counter
import opharm
from opharm.bench.evaluate import VERSION
from opharm.bench.labels import label, run_max_new
from opharm.paths import BENCH, RESULTS, RUNS
from opharm.stats.lock import analysis_rows, dev_only
def main():
ap = argparse.ArgumentParser()
ap.add_argument("model")
ap.add_argument("--tags", default="grid")
ap.add_argument("--confirm", action="store_true")
args = ap.parse_args()
meta = {m["id"]: m for m in map(json.loads, open(BENCH / "instances.jsonl"))}
sfx = "_confirm" if args.confirm else "_dev"
summary = {"model": args.model, "evaluator": VERSION, "runs": {}}
for tag in args.tags.split(","):
rows = [dict(meta[r["id"]], **r) for r in map(json.loads, open(RUNS / args.model / tag / "results.jsonl"))
if r["id"] in meta and "text" in r]
rows = analysis_rows(rows, args.model) if args.confirm else dev_only(rows)
out, table = [], Counter()
for r in rows:
v2 = label(r["text"], r, args.model, run_max_new(args.model, tag))
out.append({"id": r["id"], "label_v1": r["label"], "label_v2": v2["label"],
"label_strict": label(r["text"], r, args.model, run_max_new(args.model, tag), strict=True)["label"],
**{k: v2[k] for k in ("reason", "ask_via_tool", "protocol", "label_untruncated") if k in v2}})
table[(r["split"], r["set"], r["label"], v2["label"])] += 1
(RUNS / args.model / tag / f"labels_v2{sfx}.jsonl").write_text("".join(json.dumps(o) + "\n" for o in out))
summary["runs"][tag] = {"n": len(out), "v1_to_v2": [{"split": s, "set": st, "v1": a, "v2": b, "n": n}
for (s, st, a, b), n in sorted(table.items())]}
print(f"{args.model} {tag}: {len(out)} outputs, {sum(n for (_, _, a, b), n in table.items() if a != b)} relabeled")
RESULTS.mkdir(exist_ok=True)
(RESULTS / f"labels_v2_{args.model}{sfx}.json").write_text(json.dumps(summary, indent=1))
if __name__ == "__main__":
main()

Xet Storage Details

Size:
2.13 kB
·
Xet hash:
86ffcd8b64e4095df7f99ae5dc8bd82c4814971f07f5df169dd8531047252433

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.