Skip to content

Write up: validation loss carries no selection signal (B2 vs run-1 — identical val loss, 19-point R_w gap) #12

Description

@caiotheodoro

Context

Buried inside the B2 negative result is a second, more interesting negative result that was never written up: validation loss carried zero signal about the metric that decided the champion. B2's final val loss (0.090 at step 550) is statistically identical to run 1's (0.091 at step 700), yet B2 is 19 R_w points worse on the benchmark (0.723 vs 0.913). The documented stopping rule — "stop on loss plateau" — is therefore decoupled from the selection criterion. This is exactly the kind of honest methodological finding the repo's B2/C2 sections already trade in, and it strengthens the "benchmark validity is a construction property" thesis: token-level loss on a narrow format converges regardless of whether the model learned the decision boundary that matters.

Evidence

  • model/data/train-full.log: run 1 val loss 2.764 → 0.091, flat from ~iter 450.
  • model/data/train-b2.log: B2 val loss → 0.090 at step 550.
  • docs/BENCHMARK.md §B2 table: R_w 0.9128 vs 0.7230; MEDIUM recall 0.84 → 0.40; PARTIAL_MATCH correct 26 → 1.
  • docs/DECISIONS.md M10: stopping rule stated as loss plateau, citing train-full.log.

Task

  1. Extract both loss curves (iter, train loss, val loss) from the two logs into a small committed CSV/JSON under docs/validation/.
  2. Write a short section (TRAINING.md, plus a paragraph in the blog): identical val loss, 19-point benchmark gap, conclusion — for this task family, val loss says "the model learned the output format", not "the model ranks classes correctly"; checkpoint selection must use the benchmark metric (which in turn requires the dev/test discipline issue, else selection overfits the eval set).
  3. Link this to the stopping-rule text in DECISIONS M10 so the rule is restated honestly: loss plateau decides when to stop paying for compute, benchmark decides which checkpoint ships.

Acceptance criteria

  • Loss-curve artifact committed; TRAINING.md section written; M10 cross-referenced.
  • Blog updated with the finding (it currently implies loss-based stopping produced the good model).

Dependencies

Reads best alongside the held-out-discipline disclosure issue — selecting on benchmark instead of loss is only sound once dev/test are separated.

Cost tier

T1-cheap — log parsing and writing; no runs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cost/T1-cheapScripts or re-scoring from existing exportstheme/benchmark-validityMetric, CI, contamination, taxonomy soundness

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions