LAMBADA & MMLU Benchmark — Documentation
Small language models evaluated across nine measurable stages over the OpenRouter API. This page covers the workflow, what each metric means, and the measured results.
Generated 2026-09-09 17:28 from results/v2. The full academic write-up is in extended-final-report.md.
1. Process Workflow
One benchmark run, end to end. Stages 1-9 are produced by every run; stage 10 is excluded because nothing in it is observable through a hosted inference API.
models · decoding · dataset · passes] --> B{Pre-flight probe} B -->|provider throttled| B1[Warn — run continues,
requests retried not dropped] B -->|healthy| C[Load dataset] B1 --> C C --> D[Estimate API calls
show multiplier before spending] D --> E[Scored pass
chain-of-thought · not streamed] E --> F[Extended pass
streamed · TTFT · TPOT · tokens · cost] F --> G{Optional passes} G -->|calibration| G1[max_tokens=1
→ option probabilities] G -->|repeats N| G2[repeat items → answer stability] G -->|robustness| G3[prompt · reorder · typo variants] G -->|context| G4[progressive ablation · LAMBADA] G1 --> H G2 --> H G3 --> H G4 --> H G --> H["`Compute the nine metric blocks **1** Task Quality · **2** Probabilistic Quality **3** Reasoning and Consistency · **4** Context Behavior **5** Robustness · **6** API Performance **7** Token Efficiency · **8** Economics · **9** Reliability`"] H --> J[Aggregate and rank] J --> K{Configurations identical?} K -->|no| K1[comparable = false
refuse to rank] K -->|yes| L[Write results · history · comparison] L --> M[Web view → History → Extended analysis] style H fill:#e7f1ff,stroke:#0d6efd,color:#0a4bc4 style K1 fill:#fff3cd,stroke:#ffc107 style B1 fill:#fff3cd,stroke:#ffc107
Stage 10 — hardware and distributed execution (TP, PP, DP, SP, CP, EP; VRAM; energy) — sits outside this flow. Those are configuration variables of a serving deployment, not properties of a model, and a hosted API exposes none of them. They are recorded in the run config and would only be measurable on a self-hosted vLLM path.
1.1 The two measurement passes
Each item is sent to the API twice, and the distinction explains small differences between tables.
| Pass | Prompt | Streamed | Produces |
|---|---|---|---|
| Scored | chain-of-thought, then an answer | no | headline accuracy, reasoning analysis |
| Extended | identical prompt | yes | TTFT, TPOT, throughput, tokens, cost, reliability |
| Calibration (optional) | direct answer, max_tokens = 1 |
no | option probabilities → NLL, ECE, Brier, rank |
Time-to-first-token cannot be observed from a single blocking response, so latency requires streaming. Because the two passes are separate calls, their accuracies differ slightly even at temperature 0; that residual is serving non-determinism and the web view states the delta explicitly.
2. Metric Components
Every metric the benchmark produces, grouped by stage. Observable records whether this deployment — a client of a hosted inference API — can measure it at all.
2.1 Stage 1 — Task Quality
Measure model capability. Priority P0; observable through OpenRouter: yes.
| Metric | What it measures | Good |
|---|---|---|
| Overall accuracy | Correct ÷ questions the API actually answered. | higher |
| Macro accuracy | Mean of per-subject accuracies, so a large subject cannot dominate. | higher |
| Subject / category accuracy | The same score computed within each subject and each of the four MMLU categories. | higher |
| Normalised accuracy | (acc − chance) ÷ (1 − chance) — distance above guessing. |
higher |
| Wilson 95% CI | Binomial interval that stays inside [0,1] at small n. | narrower |
| Error rate | 1 − accuracy, framed as a budget. |
lower |
| Parse-failure rate | Responses with no extractable answer — disobedience, not ignorance. | lower |
| Option-position bias | Distance between the letters picked and the letters that are correct. | lower |
| Last-word / exact / stem match | LAMBADA: normalised, byte-identical, and inflection-tolerant matching. | higher |
2.2 Stage 2 — Probabilistic Quality
Measure confidence and probability quality. Priority P1; observable through OpenRouter: conditional; requires provider that returns token log-probabilities.
| Metric | What it measures | Good |
|---|---|---|
| Correct-option probability | Probability mass placed on the right answer. | higher |
| Log probability | log P(correct), averaged. |
→ 0 |
| NLL | −mean(log P(correct)) — how surprised the model was by the truth. |
lower |
| Perplexity | exp(NLL). 1.0 = certain and right; 4.0 ≈ guessing among four. |
lower |
| Entropy | Spread of the predictive distribution. High = unsure. | context |
| ECE | Bin by confidence; compare mean confidence against observed accuracy per bin. | lower |
| MCE | The worst single bin rather than the weighted mean — tail risk. | lower |
| Brier score | Squared error of confidence against outcome. A proper scoring rule. | lower |
| Confidence↔accuracy correlation | Whether stated confidence carries any signal. | higher |
| Target rank / MRR / hit@k | LAMBADA: where the gold word sat among ranked predictions. | higher |
2.3 Stage 3 — Reasoning & Consistency
Measure stability and reasoning reliability. Priority P1; observable through OpenRouter: yes; requires repeats > 1 and/or multiple seeds.
| Metric | What it measures | Good |
|---|---|---|
| Answer stability | Share of items where every repeat gave an identical answer. | higher |
| Majority-vote accuracy | Accuracy after taking the most common of k samples. | higher |
| Self-consistency gain | Majority-vote minus mean single-sample accuracy. | higher |
| Mean agreement | How dominant the winning answer was across repeats. | higher |
| Seed stability | Accuracy spread across independent seeds. | lower |
2.4 Stage 4 — Context Behavior
Measure context usage and dependency. Priority P1; observable through OpenRouter: yes; requires context ablation pass.
| Metric | What it measures | Good |
|---|---|---|
| Context utilisation | acc(full passage) − acc(last sentence only). |
higher |
| Utilisation ratio | Share of skill that depends on the wider passage. 1.0 = entirely. | higher |
| Context sensitivity | acc(full) − acc(no context at all). |
higher |
| Context ablation | Accuracy under a progressive cut-down of the passage. | — |
| Position sensitivity | Accuracy bucketed by passage length — a lost-in-the-middle probe. | flat |
2.5 Stage 5 — Robustness
Measure resistance to prompt and input changes. Priority P1; observable through OpenRouter: yes; requires robustness pass.
| Metric | What it measures | Good |
|---|---|---|
| Prompt variation | The same question under semantically identical templates. | → 0 drop |
| Option reordering | Options permuted with the gold letter remapped. | → 0 drop |
| Input perturbation | Adjacent-key typos, casing, whitespace, punctuation, homoglyphs. | → 0 drop |
| Accuracy drop | baseline − variant. |
→ 0 |
| Flip rate | Answers that changed at all — catches offsetting errors. | lower |
| Broke / fixed | Right→wrong and wrong→right, counted separately. | lower |
| Robustness score | 1 − mean(relative drop) across all variants. |
higher |
2.6 Stage 6 — API Performance
Measure inference-service performance. Priority P0; observable through OpenRouter: yes.
| Metric | What it measures | Good |
|---|---|---|
| TTFT | Time to the first content token — prefill, queueing and network. | lower |
| TPOT | (E2E − TTFT) ÷ (tokens − 1) — steady-state generation rate. |
lower |
| End-to-end latency | Total wait for the complete answer. | lower |
| p50 / p95 / p99 | Latency distribution. For serving, the tail is the experience. | lower |
| Prefill / decode throughput | Prompt tokens/s and generated tokens/s. | higher |
| Request throughput | Completed requests per second across the run. | higher |
2.7 Stage 7 — Token Efficiency
Measure token consumption and efficiency. Priority P0; observable through OpenRouter: yes.
| Metric | What it measures | Good |
|---|---|---|
| Prompt / completion tokens | What was billed, as reported by the provider. | lower |
| Reasoning tokens | Tokens spent on hidden reasoning; 0 is a real answer. | lower |
| Cached prompt tokens | Prompt tokens served from the provider cache, and cheaper. | higher |
| Tokens per item | Total tokens ÷ items evaluated. | lower |
| Tokens per correct answer | Token cost of a useful answer. | lower |
2.8 Stage 8 — Economics
Measure monetary efficiency. Priority P0; observable through OpenRouter: yes.
| Metric | What it measures | Good |
|---|---|---|
| Cost per request | Provider-reported spend, averaged. | lower |
| Cost per 1K / 1M tokens | Blended price actually paid. | lower |
| Cost per correct answer | Money per useful answer — the selection criterion. | lower |
| Correct answers per dollar | The same ratio inverted. | higher |
2.9 Stage 9 — Reliability
Measure operational stability. Priority P0; observable through OpenRouter: yes.
| Metric | What it measures | Good |
|---|---|---|
| Success / failure rate | Requests that returned, versus those that errored after retries. | higher / lower |
| Invalid output rate | A 200 response carrying nothing usable. | lower |
| Timeout / 429 rate | Failures bucketed by class. | lower |
| Retry rate | Retries per request — invisible in an accuracy table. | lower |
| Provider failover | Whether more than one backend served the run. | no |
| Reproducibility score | Seed spread combined with repeat stability. | higher |
2.10 Tokenization (LAMBADA)
Separates a tokenizer handicap from a comprehension gap: a multi-token target must be produced correctly several times over.
| Metric | What it measures | Good |
|---|---|---|
| Tokens per target word | Tokens needed for the gold word, with its leading space. | lower |
| Fragmentation rate | Share of targets needing more than one token. | lower |
| Subword exact match | Match at token level rather than string level. | higher |
| Accuracy by fragmentation | Accuracy split by 1 / 2 / 3+ token targets. | — |
2.11 Stage 10 — Hardware & Distributed (excluded)
The benchmark is a client of a shared, auto-scaled third-party endpoint. Parallelism layout, GPU telemetry and power draw are chosen and held by the provider; none of them is exposed to the caller. Any figure reported here would be fabricated.
To measure it: Run the same suite against a self-hosted vLLM backend (benchmark_config.local_vllm_config), where TP/PP/DP/SP/CP/EP become settable variables and VRAM, KV cache, communication overhead and energy become directly measurable.
| Subsection | Metrics |
|---|---|
| Tensor Parallelism | TP Degree, TP Speedup |
| Pipeline Parallelism | PP Degree, PP Speedup |
| Data/Sequence/Context/Expert Parallelism | DP, SP, CP, EP |
| Hardware Telemetry | GPU Utilization, VRAM, KV Cache, Memory Bandwidth |
| Compute Efficiency | FLOPs, MFU, HFU |
| Distributed Scaling | Communication Overhead, Parallel Efficiency, Pipeline Bubble |
| Energy | Joules/token, Tokens/Watt, GPU Power |
3. Results
Measured values per model, with a short note on where each figure comes from and why it landed where it did.
3.1 MMLU
2,850 questions per model · 3 models · 8,550 scored items. Greedy decoding (temperature 0.0).
Task quality
| Model | Accuracy | 95% CI | Macro (subject) | Normalised | Error rate | Parse fail |
|---|---|---|---|---|---|---|
| Gemma-3-4B | 60.4% | 58.5–62.1% | 60.4% | 47.1% | 39.6% | 0.4% |
| Llama-3.2-3B | 54.7% | 52.8–56.5% | 54.7% | 39.6% | 45.3% | 11.7% |
| Ministral-8B | 79.3% | 77.8–80.8% | 79.3% | 72.4% | 20.7% | 0.6% |
Serving, tokens and cost
| Model | TTFT | E2E p95 | Decode tok/s | Tokens / correct | $ / 1M tok | $ / correct |
|---|---|---|---|---|---|---|
| Gemma-3-4B | 0.582 s | 3.117 s | 80.0 | 564 | $0.0821 | $0.000046 |
| Llama-3.2-3B | 0.330 s | 1.171 s | 257.3 | 572 | $0.1453 | $0.000083 |
| Ministral-8B | 0.413 s | 2.738 s | 114.4 | 419 | $0.1226 | $0.000051 |
Reliability
| Model | Provider | Success | Failure | Invalid output | Timeout | 429 | Retries | Failover |
|---|---|---|---|---|---|---|---|---|
| Gemma-3-4B | DeepInfra | 99.9% | 0.1% | 0.2% | 0.0% | 0.1% | 40 | no |
| Llama-3.2-3B | Cloudflare | 100.0% | 0.0% | 11.7% | 0.0% | 0.0% | 0 | no |
| Ministral-8B | Mistral | 100.0% | 0.0% | 0.6% | 0.0% | 0.0% | 0 | no |
Composite ranking
| # | Model | Quality | Efficiency | Reliability | Composite |
|---|---|---|---|---|---|
| 1 | Ministral-8B | 0.793 | 0.476 | 0.994 | 0.776 |
| 2 | Llama-3.2-3B | 0.547 | 1.000 | 0.883 | 0.659 |
| 3 | Gemma-3-4B | 0.604 | 0.373 | 0.996 | 0.627 |
The nominal weighting is 0.50·quality + 0.15·calibration + 0.15·robustness + 0.10·efficiency + 0.10·reliability. Calibration and robustness could not be measured in this run, so their weight is redistributed proportionally over the components that were — scoring an unmeasured component zero would penalise a model for a study that was never run. The weights above are the ones actually applied.
Why these numbers
- Ministral-8B leads at 79.3% (95% CI 77.8–80.8%). Accuracy is scored over items the API actually answered; a request refused with a 429 says nothing about the model, so it is excluded from the denominator and reported separately as an error rate.
- Llama-3.2-3B returns no parseable answer on 11.7% of items. That is an instruction-following failure, not ignorance — its score understates what it knows. Measured by parsing each response for an answer token and counting the misses separately from wrong answers, because the remedies differ.
- Cost is provider-reported per request, not estimated. Gemma-3-4B gives the cheapest correct answer at $0.000046, against $0.000083 for Llama-3.2-3B (1.8×).
- Latency is client-measured from the streamed response. Llama-3.2-3B is fastest end-to-end at 0.652 s mean; p95 is reported alongside because the tail, not the mean, is what a user experiences.
- Blank stages are absences, not zeros. Probabilistic quality, reasoning and consistency, context behaviour, robustness carry no data here: calibration needs a provider that returns token log-probabilities, and this run was routed to Cloudflare, DeepInfra, Mistral; reasoning and consistency, context behaviour, robustness each need an additional pass over the dataset, which multiplies the API spend. Each is stored as unavailable with its reason rather than filled with 0, so a gap in coverage can never be mistaken for a poor score. The History view can run them after the fact via Secondary analysis.
3.2 LAMBADA
1,000 passages per model · 3 models · 3,000 scored items. Greedy decoding (temperature 0.0).
Task quality
| Model | Last-word accuracy | 95% CI | Exact match | Stem match | Error rate | Empty output |
|---|---|---|---|---|---|---|
| Gemma-3-4B | 18.0% | 15.7–20.5% | 18.0% | 18.5% | 82.0% | 0.1% |
| Llama-3.2-3B | 22.5% | 20.0–25.2% | 22.5% | 23.2% | 77.5% | 0.0% |
| Ministral-8B | 39.9% | 36.9–43.0% | 39.9% | 40.2% | 60.1% | 0.0% |
Context behaviour — accuracy by passage-length quartile. A flat row means length is not the constraint.
| Model | Q1 (shortest) | Q2 | Q3 | Q4 (longest) | Span |
|---|---|---|---|---|---|
| Gemma-3-4B | 16.8% | 18.8% | 17.6% | 18.8% | 2.0% |
| Llama-3.2-3B | 19.2% | 21.2% | 21.2% | 28.0% | 8.8% |
| Ministral-8B | 37.6% | 38.8% | 36.4% | 45.2% | 8.8% |
Tokenization — how much of the gap is the vocabulary rather than comprehension.
| Model | Tokens / target | Fragmented | Acc. 1 token | Acc. 2 tokens | Acc. 3+ tokens | Tokenizer |
|---|---|---|---|---|---|---|
| Gemma-3-4B | 1.45 | 40.6% | 23.6% | 10.6% | 2.6% | approx (fallback BPE) |
| Llama-3.2-3B | 1.45 | 40.6% | 29.5% | 13.4% | 2.6% | approx (fallback BPE) |
| Ministral-8B | 1.52 | 45.8% | 44.3% | 34.8% | 34.5% | exact |
Serving, tokens and cost
| Model | TTFT | E2E p95 | Decode tok/s | Tokens / correct | $ / 1M tok | $ / correct |
|---|---|---|---|---|---|---|
| Gemma-3-4B | 0.531 s | 1.336 s | 587.5 | 1060 | $0.1005 | $0.000107 |
| Llama-3.2-3B | 0.345 s | 0.665 s | 673.9 | 954 | $0.1062 | $0.000101 |
| Ministral-8B | 0.537 s | 1.316 s | 816.3 | 462 | $0.2082 | $0.000096 |
Reliability
| Model | Provider | Success | Failure | Invalid output | Timeout | 429 | Retries | Failover |
|---|---|---|---|---|---|---|---|---|
| Gemma-3-4B | DeepInfra | 100.0% | 0.0% | 0.1% | 0.0% | 0.0% | 0 | no |
| Llama-3.2-3B | Cloudflare | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0 | no |
| Ministral-8B | Mistral | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0 | no |
Composite ranking
| # | Model | Quality | Efficiency | Reliability | Composite |
|---|---|---|---|---|---|
| 1 | Ministral-8B | 0.399 | 0.623 | 1.000 | 0.517 |
| 2 | Llama-3.2-3B | 0.225 | 1.000 | 1.000 | 0.446 |
| 3 | Gemma-3-4B | 0.180 | 0.657 | 0.999 | 0.365 |
The nominal weighting is 0.50·quality + 0.15·calibration + 0.15·robustness + 0.10·efficiency + 0.10·reliability. Calibration and robustness could not be measured in this run, so their weight is redistributed proportionally over the components that were — scoring an unmeasured component zero would penalise a model for a study that was never run. The weights above are the ones actually applied.
Why these numbers
- Ministral-8B leads at 39.9% (95% CI 36.9–43.0%). Accuracy is scored over items the API actually answered; a request refused with a 429 says nothing about the model, so it is excluded from the denominator and reported separately as an error rate.
- Cost is provider-reported per request, not estimated. Ministral-8B gives the cheapest correct answer at $0.000096, against $0.000107 for Gemma-3-4B (1.1×). Gemma-3-4B has the cheapest tokens but not the cheapest answers — accuracy converts token price into value.
- Latency is client-measured from the streamed response. Llama-3.2-3B is fastest end-to-end at 0.354 s mean; p95 is reported alongside because the tail, not the mean, is what a user experiences.
- Blank stages are absences, not zeros. Probabilistic quality, reasoning and consistency, robustness carry no data here: calibration needs a provider that returns token log-probabilities, and this run was routed to Cloudflare, DeepInfra, Mistral; reasoning and consistency, robustness each need an additional pass over the dataset, which multiplies the API spend. Each is stored as unavailable with its reason rather than filled with 0, so a gap in coverage can never be mistaken for a poor score. The History view can run them after the fact via Secondary analysis.
- Passage length is not the binding constraint. Sorting passages by true word count into quartiles moves accuracy by at most 8.8% (Llama-3.2-3B), and not monotonically. §4.4 tests this rather than eyeballing it: length is significant but negligible in size (V = 0.068), while target fragmentation is two to three times larger. The failures are a vocabulary handicap, not a lost-in-the-middle effect. Lengths come from the reconstructed dataset split — the per-item records store only a fixed-length preview, whose word count is not passage length (see §4.6).
- Part of the LAMBADA spread is the tokenizer. On targets needing 3+ tokens, Ministral-8B holds 34.5% while Llama-3.2-3B falls to 2.6% — a mechanical handicap, since a multi-token word must be produced correctly several times over. Note Gemma-3-4B, Llama-3.2-3B fell back to a generic BPE vocabulary (their tokenizers are gated), so their fragmentation rates are indicative rather than exact.
4. Statistical Significance and Variance
An accuracy table says Ministral scored 79.3% and Gemma 60.4%. It does not say whether that gap could be noise, nor which of the things that vary across items actually moves the result. Both are computed from the per-item records.
4.1 Method
| Test | Question it answers | Why this one | Reported |
|---|---|---|---|
| Cochran's Q | Do the models differ at all? | The omnibus. Running three pairwise tests and quoting the smallest p-value would be fishing; Q licenses the pairwise step. | Q, df, p |
| McNemar | Is the gap between two models real? | The models answered identical items, so the comparison is paired. An unpaired two-proportion test discards that pairing and inflates the variance. Only discordant items carry information. | b, c, χ², p, Δ ± CI, odds ratio |
| Holm–Bonferroni | Did we get a false positive from testing three pairs? | Controls the family-wise error rate like Bonferroni, but rejects at least as often, so it costs no power. | adjusted p |
| χ² independence | Does a factor change accuracy? | Tests whether correctness is independent of the level an item falls in. Reported with Cramér's V, because at thousands of items a trivial association is still significant. | χ², df, p, V, effect |
| Variance decomposition | Is the per-subject spread real? | 57 subjects × 50 questions: some spread is genuine difficulty, some is what 50 coin flips do. Subtracting the expected binomial variance leaves the real part. | observed SD, true SD, between-share |
| Oracle ceiling | What would picking the best model per item buy? | The gap between the best single model and any-model-correct is headroom that individual accuracies cannot show. | best, oracle, headroom |
All statistics are pure-stdlib implementations (metrics/significance.py), pinned against SciPy and statsmodels by tests/test_significance.py so the report can be regenerated on a host where SciPy cannot be installed.
4.2 Are the model differences real?
MMLU — Cochran's Q = 594.659 (df 2), p < 0.0001. The models differ; pairwise tests follow.
| Pair | Δ accuracy | 95% CI | Only A right | Only B right | Odds ratio | p (Holm) | Verdict |
|---|---|---|---|---|---|---|---|
| Gemma-3-4B vs Llama-3.2-3B | +0.0642 | +0.044 to +0.084 | 520 | 337 | 1.543 | < 0.0001 | significant |
| Gemma-3-4B vs Ministral-8B | -0.1821 | -0.201 to -0.163 | 163 | 682 | 0.239 | < 0.0001 | significant |
| Llama-3.2-3B vs Ministral-8B | -0.2463 | -0.266 to -0.227 | 136 | 838 | 0.162 | < 0.0001 | significant |
LAMBADA — Cochran's Q = 173.547 (df 2), p < 0.0001. The models differ; pairwise tests follow.
| Pair | Δ accuracy | 95% CI | Only A right | Only B right | Odds ratio | p (Holm) | Verdict |
|---|---|---|---|---|---|---|---|
| Gemma-3-4B vs Llama-3.2-3B | -0.0440 | -0.073 to -0.015 | 89 | 133 | 0.669 | 0.0039 | significant |
| Gemma-3-4B vs Ministral-8B | -0.2150 | -0.248 to -0.182 | 58 | 273 | 0.212 | < 0.0001 | significant |
| Llama-3.2-3B vs Ministral-8B | -0.1710 | -0.205 to -0.137 | 84 | 255 | 0.329 | < 0.0001 | significant |
4.3 Do the models fail on the same items?
High overlap means the items are hard; disjoint failures mean the models have different competences and routing would pay.
| Benchmark | Pair | Agreement | Both wrong | φ |
|---|---|---|---|---|
| MMLU | Gemma-3-4B vs Llama-3.2-3B | 69.9% | 27.0% | 0.389 |
| MMLU | Gemma-3-4B vs Ministral-8B | 70.3% | 14.9% | 0.350 |
| MMLU | Llama-3.2-3B vs Ministral-8B | 65.8% | 15.9% | 0.324 |
| LAMBADA | Gemma-3-4B vs Llama-3.2-3B | 77.8% | 68.7% | 0.316 |
| LAMBADA | Gemma-3-4B vs Ministral-8B | 66.9% | 54.7% | 0.271 |
| LAMBADA | Llama-3.2-3B vs Ministral-8B | 66.1% | 52.1% | 0.253 |
| Benchmark | Best single model | Best | Oracle (any correct) | Headroom | No model correct |
|---|---|---|---|---|---|
| MMLU | Ministral-8B | 79.4% | 87.8% | +8.4% | 12.2% |
| LAMBADA | Ministral-8B | 39.5% | 51.5% | +12.0% | 48.5% |
4.4 Which factors move the outcome?
Significance and size are different questions. At thousands of items almost any factor reaches p < 0.05, so Cramér's V decides whether it matters.
| Benchmark | Factor | Levels | Accuracy spread | χ² | p | V | Effect |
|---|---|---|---|---|---|---|---|
| MMLU | subject category | 4 | 11.3% | 74.819 | < 0.0001 | 0.0935 | negligible |
| MMLU | correct-option position | 4 | 7.0% | 26.694 | < 0.0001 | 0.0559 | negligible |
| LAMBADA | passage length (true) | 4 | 14.9% | 13.89 | 0.0031 | 0.068 | negligible |
| LAMBADA | target fragmentation — Gemma-3-4B | 3 | 21.0% | 32.295 | < 0.0001 | 0.1797 | small |
| LAMBADA | target fragmentation — Llama-3.2-3B | 3 | 26.7% | 42.351 | < 0.0001 | 0.2058 | small |
| LAMBADA | target fragmentation — Ministral-8B | 3 | 13.1% | 10.715 | 0.0047 | 0.1035 | small |
MMLU — accuracy by subject category
| humanities | other | social_sciences | stem |
|---|---|---|---|
| 65.7% | 68.1% | 70.2% | 58.9% |
MMLU — accuracy by correct-option position
| answer = A | answer = B | answer = C | answer = D |
|---|---|---|---|
| 66.7% | 64.8% | 68.1% | 61.1% |
LAMBADA — accuracy by passage length (true)
| Q1 <=72w | Q2 73-87w | Q3 88-102w | Q4 >102w |
|---|---|---|---|
| 25.4% | 26.8% | 37.1% | 22.2% |
4.5 How much of the MMLU subject spread is real?
| Quantity | Value | Reading |
|---|---|---|
| Subjects | 57 | ~50 questions each |
| Observed SD across subjects | 13.3 pp | raw spread |
| Sampling (binomial) variance | 0.00140 | what 50 draws do on their own |
| True between-subject SD | 12.8 pp | after removing that |
| Between-group share | 0.921 | share of spread that is real |
Under a null of identical subjects this share averages about 0.08 and rarely passes 0.3, so 0.92 is decisive: subject difficulty is a real, large effect and the per-subject table can be read. Hardest: moral_scenarios (37%), abstract_algebra (39%), high_school_physics (41%). Easiest: high_school_psychology (87%), marketing (86%), high_school_government_and_politics (85%).
4.6 What this changes
- Every pairwise gap survives correction on both benchmarks. The ranking is not an artefact of sampling — at these item counts the differences are far larger than the paired intervals.
- Tokenization matters; passage length barely does. Length reaches significance (p = 0.0031) but with V = 0.068 — negligible, and the accuracy is not even monotonic in length. Target fragmentation reaches V = 0.2058 on the worst-affected model, two to three times the length effect. The LAMBADA gap is mostly a vocabulary handicap, not a context-window one.
- Subject category is significant but small. p < 0.0001 with V = 0.0935 (negligible) across an 11.3% spread — a good illustration of why V is reported: with 8,550 pooled items, significance alone would have overstated it.
- A measurable option-position effect. Accuracy varies with where the correct answer sits: answer = C scores 68.1%, answer = D 61.1% (p < 0.0001, V = 0.0559). Small, but it is a property of the harness, not the knowledge being tested — which is why the robustness stage permutes options.
- MMLU: routing headroom of 8.4%. Some model answers 87.8% of items correctly, against 79.4% for the best single model. The failures are only partly shared — 12.2% defeat all three.
- LAMBADA: routing headroom of 12.0%. Some model answers 51.5% of items correctly, against 39.5% for the best single model. The failures are only partly shared — 48.5% defeat all three.
- One correction. Section 3's context-behaviour table previously bucketed items by the length of a stored preview string, which is truncated to a fixed 203 characters — so it ranked items by mean word length and correlated −0.20 with true passage length. It has been recomputed from the reconstructed dataset split (verified target-by-target against the stored results), and
metrics/context.pynow refuses to compute the metric from a preview at all. The conclusion was unchanged, but it had been reached from the wrong variable.