mlboydaisuke commited on
Commit
ce8bdda
·
verified ·
1 Parent(s): ddb9e74

card: GSM8K 100q across all three runtimes (98/97/95) + the two-pass budget note

Browse files
Files changed (1) hide show
  1. README.md +44 -0
README.md CHANGED
@@ -150,6 +150,50 @@ spellings will run to the budget on every request, and it looks like a verbose
150
  model rather than a broken bundle. Check `generation_config.json`'s `eos_token_id`
151
  against what the bundle actually declares.
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  ## Gates
154
 
155
  | stage | result |
 
150
  model rather than a broken bundle. Check `generation_config.json`'s `eos_token_id`
151
  against what the bundle actually declares.
152
 
153
+ ## Quality: it is the lightest artifact and does not pay for it
154
+
155
+ The speed table above compares three artifacts at three different weights, and Core AI's
156
+ is the smallest. That invites the obvious objection — some of the speed could just be
157
+ fewer bytes. Measured, it isn't:
158
+
159
+ | | weights | GSM8K, 100 questions |
160
+ | --- | ---: | ---: |
161
+ | **Core AI** `int4hu` | **16.35 GB** | **98** |
162
+ | ExecuTorch `k-quant-17G` | 17.9 GB | 97 |
163
+ | MLX 4-bit | 18 GB | 95 |
164
+
165
+ Greedy, same 100 questions, scored by Yardstick's `scripts/parity_gsm8k.py` — the same
166
+ question set, CoT suffix, extractor and scoring the Gemma-4 campaign uses. That file was
167
+ not edited; the two arms it lacks (ExecuTorch via Meta's own `solo_runner`, MLX via
168
+ `mlx_vlm` because `mlx_lm` does not know `muse_glimmer`) are added around it.
169
+
170
+ **Three questions apart is not a resolvable difference at n=100.** The honest reading is
171
+ "no arm is meaningfully worse", not "Core AI wins". Meta's published 1.0% degradation for
172
+ this quant is below what 100 questions can see at all.
173
+
174
+ ### Two-pass budget, and why a one-pass number would have been wrong
175
+
176
+ `llm-runner`'s wall time is `5 s + 0.037 x max_tokens` on this bundle — **independent of
177
+ how many tokens are actually generated.** It keeps stepping to the budget after the stop
178
+ token halts output, so a budget wide enough for the longest answer taxes every question.
179
+ (ExecuTorch does not pay for unused budget.)
180
+
181
+ So pass 1 runs at 700 and pass 2 re-runs only the questions that hit it, at 2048. This is
182
+ not just a speed trick — **it changes the result**. At budget 700 Core AI scored 87/100;
183
+ 32 of those answers were truncated, and re-running them un-truncated took it to 98. A
184
+ truncated answer is not blank, it is *a wrong number the extractor picks up from the
185
+ middle of the reasoning* — and sometimes a right one by accident. One-pass at 700 would
186
+ have published 87 and called it accuracy.
187
+
188
+ Truncation rates differ per arm (Core AI 32, MLX 26, ExecuTorch 14), so a single fixed
189
+ budget would have penalised the arms that reason longer — a quality table measuring
190
+ verbosity.
191
+
192
+ **Residue, stated:** 3 questions (Core AI), 2 (MLX), 1 (ExecuTorch) still hit 2048 and are
193
+ scored from truncated output. Core AI and MLX also generate noticeably longer answers than
194
+ ExecuTorch for the same questions (median 532 / 453 / 326 tokens); that is unexplained and
195
+ does not show up in the score.
196
+
197
  ## Gates
198
 
199
  | stage | result |