Upload folder using huggingface_hub
Browse files- notes/project-report.md +2 -1
- src/mathcompose/eval/run.py +20 -0
- tests/test_run_cli.py +19 -0
notes/project-report.md
CHANGED
|
@@ -117,8 +117,9 @@ settings; we say more about that below.
|
|
| 117 |
| 1.5B base | ~16 | | | | | prompt alone is weak |
|
| 118 |
| 1.5B tuned (v2) | ~16 | | | | | collapses to -1 (~90%) |
|
| 119 |
| 7B base | 12-21 | ~14 | ~13 | ~9 | ~12-21 | stops collapsing on hard subsets |
|
| 120 |
-
| 7B base + code-exec |
|
| 121 |
| 7B tuned | pending | | | | | final eval to fill in |
|
|
|
|
| 122 |
|
| 123 |
The gsm8k -1 rate tells the story cleanly: 1.5B tuned sits around 0.90, while the 7B base
|
| 124 |
is 0.83 on gsm8k but drops to about 0.21-0.25 on olympiad and omnimath, meaning it
|
|
|
|
| 117 |
| 1.5B base | ~16 | | | | | prompt alone is weak |
|
| 118 |
| 1.5B tuned (v2) | ~16 | | | | | collapses to -1 (~90%) |
|
| 119 |
| 7B base | 12-21 | ~14 | ~13 | ~9 | ~12-21 | stops collapsing on hard subsets |
|
| 120 |
+
| 7B base + code-exec | 32.0 | 24.2 | | | ~28 | calculator ~doubles it; gsm8k acc-error ~11 to ~21 |
|
| 121 |
| 7B tuned | pending | | | | | final eval to fill in |
|
| 122 |
+
| 7B tuned + code-exec | pending | | | | | expected best |
|
| 123 |
|
| 124 |
The gsm8k -1 rate tells the story cleanly: 1.5B tuned sits around 0.90, while the 7B base
|
| 125 |
is 0.83 on gsm8k but drops to about 0.21-0.25 on olympiad and omnimath, meaning it
|
src/mathcompose/eval/run.py
CHANGED
|
@@ -145,7 +145,27 @@ def cmd_report(a):
|
|
| 145 |
print(f"wrote {out}")
|
| 146 |
|
| 147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
def main() -> None:
|
|
|
|
|
|
|
|
|
|
| 149 |
ap = argparse.ArgumentParser(description=__doc__)
|
| 150 |
ap.add_argument("--base-id", default=None,
|
| 151 |
help="base model; if omitted, inferred from the adapter (else 1.5B default)")
|
|
|
|
| 145 |
print(f"wrote {out}")
|
| 146 |
|
| 147 |
|
| 148 |
+
_SUBCOMMANDS = {"processbench", "prmbench", "math", "compose", "report"}
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _default_subcommand(argv: list[str]) -> list[str]:
|
| 152 |
+
"""Insert `processbench` when no subcommand is named, so
|
| 153 |
+
`run.py --adapter X ...` works like `run.py processbench --adapter X ...`.
|
| 154 |
+
Keeps a leading `--base-id VALUE` before the inserted subcommand."""
|
| 155 |
+
if not argv or ({"-h", "--help"} & set(argv)) or any(t in _SUBCOMMANDS for t in argv):
|
| 156 |
+
return argv
|
| 157 |
+
i = 0
|
| 158 |
+
if argv[0] == "--base-id":
|
| 159 |
+
i = 2
|
| 160 |
+
elif argv[0].startswith("--base-id="):
|
| 161 |
+
i = 1
|
| 162 |
+
return argv[:i] + ["processbench"] + argv[i:]
|
| 163 |
+
|
| 164 |
+
|
| 165 |
def main() -> None:
|
| 166 |
+
import sys
|
| 167 |
+
|
| 168 |
+
sys.argv = [sys.argv[0]] + _default_subcommand(sys.argv[1:])
|
| 169 |
ap = argparse.ArgumentParser(description=__doc__)
|
| 170 |
ap.add_argument("--base-id", default=None,
|
| 171 |
help="base model; if omitted, inferred from the adapter (else 1.5B default)")
|
tests/test_run_cli.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""The eval CLI defaults to `processbench` when no subcommand is named."""
|
| 2 |
+
from mathcompose.eval.run import _default_subcommand
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
def test_inserts_processbench_when_missing():
|
| 6 |
+
assert _default_subcommand(["--adapter", "X", "--code-exec"]) == \
|
| 7 |
+
["processbench", "--adapter", "X", "--code-exec"]
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def test_keeps_base_id_before_subcommand():
|
| 11 |
+
assert _default_subcommand(["--base-id", "Y", "--adapter", "X"]) == \
|
| 12 |
+
["--base-id", "Y", "processbench", "--adapter", "X"]
|
| 13 |
+
assert _default_subcommand(["--base-id=Y", "--adapter", "X"]) == \
|
| 14 |
+
["--base-id=Y", "processbench", "--adapter", "X"]
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def test_leaves_explicit_subcommand_alone():
|
| 18 |
+
for argv in (["processbench", "--adapter", "X"], ["report"], ["-h"], []):
|
| 19 |
+
assert _default_subcommand(argv) == argv
|