42e commited on
Commit
ca5eeeb
·
verified ·
1 Parent(s): b004725

Upload folder using huggingface_hub

Browse files
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 | ~32 | ~33 | | | | gsm8k acc-error ~11 to ~21 |
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