etzion commited on
Commit
e04c2b2
·
verified ·
1 Parent(s): 4124961

org card: per-experiment hyperparameters and VQA/caption results

Browse files
Files changed (2) hide show
  1. README.md +259 -8
  2. index.html +128 -3
README.md CHANGED
@@ -512,11 +512,17 @@ The cost argument is secondary but real: each adapter is ~821 MB, so the five
512
  unpublished runs would add roughly 5 GB of weights that no one should load in
513
  preference to what is already here.
514
 
515
- **Aspaklarya-111 is still training.** It will be published if it clears the
516
- `train,other` arm it is built on - meaning a MEAN4 above roughly 76.8, which
517
- is the arm mean plus two sigma. If it lands inside the arm it will be
518
- reported here as another null and left unpublished, on the same reasoning as
519
- 108-110.
 
 
 
 
 
 
520
 
521
  ### Caveat
522
 
@@ -547,6 +553,251 @@ That is why the legacy numbers are reported but never used to gate a decision.
547
  *What is published here, and what is not* above - they are either strictly
548
  dominated, refuted, or seed replications whose output is a sigma rather
549
  than a model.
550
- - Open: whether QA depth (111, running) extends the one confirmed lever, and
551
- whether the `other` split helped by adding **images** or merely **items** -
552
- 111 isolates items, since it adds no new images.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  unpublished runs would add roughly 5 GB of weights that no one should load in
513
  preference to what is already here.
514
 
515
+ **Aspaklarya-111 has finished, and it is a null.** Its best checkpoint
516
+ (step 4496) scores **76.62**, against the pre-registered bar of roughly 76.8 -
517
+ the `train,other` arm mean plus two sigma. It lands *inside* the arm it was
518
+ built on (76.37 +/- 0.23, so +0.25 is about 1.1 sigma), which is exactly the
519
+ case the bar was written to catch. It is therefore **not published**, on the
520
+ same reasoning as 108-110.
521
+
522
+ That is worth stating plainly because 76.62 is the second-highest single
523
+ number on this page, and the temptation to ship it is precisely the error the
524
+ sigma measurement exists to prevent. Raising QA depth from 2 to 4 per image
525
+ did not extend the one confirmed lever.
526
 
527
  ### Caveat
528
 
 
553
  *What is published here, and what is not* above - they are either strictly
554
  dominated, refuted, or seed replications whose output is a sigma rather
555
  than a model.
556
+ - **QA depth is answered: it does not help.** 111 raised QA per image from 2
557
+ to 4 and landed inside its own arm. Since 111 adds items but no new images,
558
+ the `train,other` gain is better explained by the **images** it brings than
559
+ by raw item count.
560
+
561
+ ## Round 11X - six axes against a replicated control
562
+
563
+ Round 1XX ended with one confirmed lever (data scaling) and a warning that
564
+ single-run deltas below about 1.0 MEAN4 are unreadable. Round 11X was built
565
+ to test six *new* axes cheaply, under a short-budget probe (SBP) design: one
566
+ epoch, checkpoints at steps 562 and 1124, every checkpoint judged on all four
567
+ slices. Ten jobs ran unattended over three days.
568
+
569
+ **No axis produced a win.** That is the headline, and it is not a failed
570
+ round - six levers were eliminated, and the round also corrected two errors
571
+ in how this project measures things.
572
+
573
+ ### The control had to be rebuilt first
574
+
575
+ The SBP arms were initially compared against a single control checkpoint that
576
+ ran a **different step grid** (590/1180 rather than 562/1124) and a different
577
+ `max-seq-length`. That mismatch produced a reported **+2.32** VQA_DM gain for
578
+ the paraphrase arm which **does not exist**; re-measured against the matched
579
+ three-seed control the same arm is **+1.00**, against a VQA_DM sigma of 0.88.
580
+ The claim is retracted here in full, and so is the recommendation to
581
+ paraphrase RSICD questions that was built on it.
582
+
583
+ The lesson generalises past this round: *a control must match the treatment on
584
+ grid, split and budget, or the delta measures the mismatch rather than the
585
+ treatment.* Four-slice reporting did not catch it, because the slicing was
586
+ right and the **baseline** was wrong.
587
+
588
+ Three matched controls were then trained from scratch - identical recipe,
589
+ seeds 3407 / 1234 / 2024, nothing else varied:
590
+
591
+ | control | MEAN4 @1124 |
592
+ |---|---|
593
+ | seed 3407 | 75.71 |
594
+ | seed 1234 | 75.34 |
595
+ | seed 2024 | 75.50 |
596
+ | **mean** | **75.52** (sd 0.19) |
597
+
598
+ Those three runs also give, for the first time, a **per-slice** noise floor -
599
+ which turns out to matter more than the aggregate one:
600
+
601
+ | slice | control mean | sd |
602
+ |---|---|---|
603
+ | VQA_DM | 72.82 | **0.88** |
604
+ | VQA_RSICD | 70.15 | **0.74** |
605
+ | CAP_DM | 81.06 | 0.25 |
606
+ | CAP_RSICD | 78.06 | 0.52 |
607
+
608
+ **The two VQA slices are three to four times noisier than the caption
609
+ slices.** MEAN4 averages that down to 0.19, which is why aggregate deltas
610
+ look more trustworthy than the slice deltas underneath them. Any single-slice
611
+ VQA claim below about 1.8 (two sigma) is noise, and several claims made
612
+ earlier in this project sit under that line.
613
+
614
+ ### Results
615
+
616
+ All arms at the matched 1124 grid point, against control mean 75.52. Bands
617
+ were pre-registered as WIN >= +0.76, SIGNAL +0.51..+0.76, NULL +/-0.51,
618
+ HARM <= -0.51.
619
+
620
+ | arm | axis tested | MEAN4 | delta | verdict |
621
+ |---|---|---|---|---|
622
+ | **control** | no treatment | **75.52** | - | baseline |
623
+ | 115-para | question paraphrase augmentation | 75.25 | -0.27 | null |
624
+ | 111-qa4 | 4 QA per image | 74.96 | -0.56 | harm |
625
+ | 116-neg | hard negative examples | 74.86 | -0.66 | harm |
626
+ | 113-frz | frozen vision tower | 74.78 | -0.74 | harm |
627
+ | 119-teach | teacher-generated captions | 68.58 | -6.94 | severe harm |
628
+ | 120-cur | caption -> VQA curriculum | 62.60 | -12.92 | catastrophic |
629
+
630
+ One caveat on the 111 row, in the spirit of the retraction above: 111 is a
631
+ **3-epoch** run, so its step-1124 checkpoint sits at a different point on the
632
+ LR schedule than the 1-epoch control's does. That comparison is *not* clean,
633
+ and the -0.56 should be read as indicative only. 111's clean result is its
634
+ full-budget one, reported in the Round 1XX section: 76.62, a null against its
635
+ own arm. Both readings agree that QA depth did not help, which is why the row
636
+ is kept rather than dropped.
637
+
638
+ **Nothing beat doing nothing.** Two arms are worth reading past the headline
639
+ number, because their MEAN4 hides the mechanism. All slice deltas below are
640
+ against the three-seed control mean, with that slice's sigma in brackets.
641
+
642
+ **119-teach** replaced reference captions with captions generated by a strong
643
+ general-purpose model. The damage is **concentrated in the caption slices**
644
+ (CAP_RSICD **-16.11** [31 sigma], CAP_DM **-9.18** [37 sigma]) while the VQA
645
+ slices lose only -1.85 and -0.63, both around two sigma or less. The teacher
646
+ writes fluent generic prose and overwrites domain-specific remote-sensing
647
+ vocabulary; a judge scoring against domain references punishes exactly that.
648
+ Distillation fails when the teacher lacks the dataset's domain knowledge - it
649
+ is not a statement about distillation in general, and it does not condemn
650
+ 115, which only rephrases *questions* and leaves reference captions intact.
651
+
652
+ **120-cur** trained captions first, then VQA only. It produced **the best
653
+ VQA_DM in the entire round - 75.48, or +2.66 (3.0 sigma)** - and
654
+ simultaneously destroyed captioning (CAP_RSICD 78.06 -> **35.55**, a 42-point
655
+ collapse). This is the round's strongest evidence that **the joint objective
656
+ is load-bearing**: captioning is not a free passenger on a VQA model, it is
657
+ actively maintained by the mixed loss, and it unlearns within one phase of
658
+ being dropped. It is also the only slice-level *gain* in the round that
659
+ survives its own noise floor - at a price nobody would pay.
660
+
661
+ **116-neg** was predicted to buy VQA assertiveness with hard negatives. It did
662
+ the opposite: **VQA_DM -1.97**, VQA_RSICD -0.51, CAP_DM -0.56, with only
663
+ CAP_RSICD nominally positive at +0.38 (well inside its 0.52 sigma, so: no
664
+ effect). The predicted mechanism is refuted rather than merely unproven.
665
+
666
+ **115-para**, the retracted arm, is worth one more line. Re-measured properly
667
+ it shows **VQA_DM +1.00** - but VQA_DM's sigma is 0.88, so that is 1.1 sigma,
668
+ and the other three slices are negative. There is no paraphrase effect here
669
+ in either direction. The original **+2.32** was baseline mismatch almost
670
+ end to end.
671
+
672
+ ### Two axes that could not be tested
673
+
674
+ **Decoding (112).** Greedy, beam-4, temperature 0.7 and repetition-penalty
675
+ 1.1 were run against the same checkpoint: **76.72 / 76.42 / 75.58 / 75.52**.
676
+ Greedy wins. The axis is closed, not deferred.
677
+
678
+ **Resolution (114).** This one is a negative result about the *corpus*, not
679
+ the model. The run was configured with `--max-side 1536` and trained
680
+ **faster** than baseline, which is impossible if images were being upscaled.
681
+ Measuring 600 images directly: **none exceed 1024 px** - they are 224x224
682
+ (71%), 896x896 (27%) and 768x768 (2%) - and `--max-side` only ever
683
+ downscales. Raising it above the 1024 default is a **guaranteed no-op**. A
684
+ real resolution test on this data has to lower the cap, not raise it.
685
+
686
+ The run was allowed to finish anyway, because its configuration made it the
687
+ missing SBP-native control - and that accident paid for itself twice over.
688
+
689
+ ### Hyperparameters
690
+
691
+ Every arm in this round shares one SBP recipe and changes **exactly one
692
+ thing**. The shared recipe:
693
+
694
+ | field | value |
695
+ |---|---|
696
+ | base | `Qwen/Qwen3-VL-8B-Instruct` (bf16, not 4-bit) |
697
+ | LoRA r / alpha / dropout | 16 / 16 / 0.0 |
698
+ | vision tower | trained |
699
+ | epochs | 1.0 |
700
+ | lr / scheduler / warmup | 2e-4 / linear / 0.03 |
701
+ | batch x grad-accum | 4 x 8 (effective 32) |
702
+ | weight decay / grad clip | 0.001 / 0.3 |
703
+ | max seq length | 2048 |
704
+ | max side | 1024 |
705
+ | split | `train,other` (11,994 images -> 35,979 items) |
706
+ | per image | 2 QA + 1 caption |
707
+ | loss weighting | token, caption and VQA both 1.0 |
708
+ | checkpoints | step 562 and step 1124 |
709
+
710
+ And the single change per arm:
711
+
712
+ | arm | the one change |
713
+ |---|---|
714
+ | control | none (seeds 3407 / 1234 / 2024) |
715
+ | 113-frz | `finetune_vision = 0` |
716
+ | 115-para | source CSV -> paraphrased questions (35,981 items) |
717
+ | 116-neg | source CSV -> hard negatives added (37,178 items) |
718
+ | 119-teach | source CSV -> teacher captions (35,980 items) |
719
+ | 120-cur | `captions_per_image = 0`, initialised from the caption-phase adapter |
720
+ | 111-qa4 | `qa_per_image = 4`, `captions_per_image = 2`, 3 epochs (full budget, not SBP) |
721
+ | 112-dec | no training - decoding sweep on an existing checkpoint |
722
+ | 114-res | `max_seq_length = 3072`, `max_side = 1536` (both no-ops; see below) |
723
+
724
+ **Only the best checkpoint of each run is reported**, here and in the table
725
+ above. Intermediate checkpoints exist but are not quoted, because picking the
726
+ best of several grid points and then quoting it as a result is the same
727
+ selection bias the sigma bands exist to control - the bar was raised
728
+ accordingly rather than the practice hidden.
729
+
730
+ ### Sigma, corrected again
731
+
732
+ The resolution no-op generated the same checkpoint twice under two different
733
+ flags, giving two independent generate-and-judge passes over effectively
734
+ identical weights: **75.66 vs 75.67**, every slice within 0.02.
735
+
736
+ **Judge reproducibility is therefore ~0.01 MEAN4 - effectively
737
+ deterministic.** That *refutes* an earlier hypothesis on this page that
738
+ sigma 0.31 might be partly judge drift across invocations. It is not. Cross
739
+ -invocation comparisons in the results table are safe.
740
+
741
+ A second accident sharpened it further. One control run was killed by an
742
+ out-of-memory event at 87% - a neighbouring job on the shared A100 took
743
+ 20 GB - and was re-run from scratch at the **same seed**. The two step-562
744
+ checkpoints, same seed and same data order, score **74.36 and 74.66**: a
745
+ **0.30** spread with the seed held fixed.
746
+
747
+ So sigma is not mostly *seed* variance, as assumed after the previous
748
+ correction. A large share is **irreducible run-to-run nondeterminism** from
749
+ non-deterministic CUDA kernels. Two practical consequences:
750
+
751
+ - The 0.31 band stands, and is if anything well calibrated.
752
+ - **Exact replication is unattainable even holding the seed.** No delta under
753
+ roughly 0.5 should be believed from a single pair of runs, however carefully
754
+ the configuration is matched.
755
+
756
+ The `max-seq-length` confound inherited from the old control was also settled
757
+ empirically: 2048 vs 3072 at the same seed gives **75.71 vs 75.66**, a 0.05
758
+ difference. Inert, as the token arithmetic predicted - an 896 px image is
759
+ about 784 vision tokens, so a 2048 budget is rarely the binding constraint.
760
+
761
+ ### What is published from this round, and why there are no new adapters
762
+
763
+ **Nothing is published, and no adapter repo was created for any run in this
764
+ round** - not for 112-120, and not for the three controls.
765
+
766
+ The reasoning is the same one applied to 106b-110, stated again because it
767
+ keeps being asked: an adapter repo on this org is a **claim that a
768
+ configuration is worth using**. Every arm here is either a *refuted*
769
+ configuration (113, 115, 116, 119, 120, 111), a *calibration* run whose entire
770
+ purpose is to measure noise (the three controls), or a *no-op* that trained
771
+ the baseline recipe under a differently-named flag (114). Publishing weights
772
+ for a refuted recipe would make the org a dump of artefacts rather than a
773
+ record of what is known, and a user downloading 119 would get a model
774
+ measurably worse at captioning than the base it came from.
775
+
776
+ There is also a standing rule that no result goes to the hub off a one-epoch
777
+ probe. A win in the SBP grid earns a **full-budget confirmation run** first.
778
+ No arm produced a win, so the question never arose.
779
+
780
+ The round's deliverables are therefore a replicated control (75.52 +/- 0.19),
781
+ a per-slice noise floor, six closed axes, a corrected sigma, one retracted
782
+ result - and roughly 30 GPU-hours spent to establish that none of it should
783
+ be shipped. The findings are the product; the weights would have been the
784
+ liability.
785
+
786
+ ### Status after Round 11X
787
+
788
+ - **Nothing on this org changed.** Aspaklarya-101-step4500 (76.37 +/- 0.23
789
+ across seeds) remains the in-domain reference; Aspaklarya-020-step4500
790
+ remains the better general model; Aspaklarya-106-soup remains the cheap
791
+ default. Round 11X added no model and removed none.
792
+ - **One confirmed lever, total, across both rounds: data scale.** Nine other
793
+ axes have now been tested and closed - rank, loss weighting, decoding,
794
+ vision-tower freezing, resolution, QA depth, paraphrase augmentation, hard
795
+ negatives, teacher distillation and curriculum ordering.
796
+ - **The measurement apparatus is the part that improved.** Round 11X ends
797
+ with a three-seed control, a per-slice noise floor, judge reproducibility
798
+ pinned at ~0.01, and a demonstration that same-seed reruns still differ by
799
+ 0.30. Future deltas on this page are readable in a way earlier ones were
800
+ not.
801
+ - **Two results elsewhere on this page are retracted or corrected by this
802
+ round** - the paraphrase gain, and the judge-drift explanation of sigma.
803
+ Both are left visible above rather than quietly edited out.
index.html CHANGED
@@ -430,7 +430,8 @@ a { color: #0969da; }
430
  <p>108, 109 and 110 are not new recipes. <strong>They are the recipes of 102 and 101 re-run with a different random seed and nothing else changed.</strong> Their adapters are therefore near-duplicates of adapters already published: same corpus, same rank, same schedule, same everything the config file records. What they produced is not a model, it is <strong>a number</strong> - sigma 0.31 - and a number belongs in the text, where it now is.</p>
431
  <p>Publishing them would also do active harm. Six more checkpoints spanning 75.22-76.56 would sit in the listing looking like six more options to choose between, and the obvious way to choose would be to take the highest one. That is exactly the mistake the sigma measurement exists to prevent: within an arm, the spread between seeds <strong>is</strong> the noise, so picking the best seed is selecting on noise and will not reproduce. The honest artifact is the published 101 and 102 adapters plus a stated uncertainty on what they score, not a shelf of lottery tickets.</p>
432
  <p>The cost argument is secondary but real: each adapter is ~821 MB, so the five unpublished runs would add roughly 5 GB of weights that no one should load in preference to what is already here.</p>
433
- <p><strong>Aspaklarya-111 is still training.</strong> It will be published if it clears the <code>train,other</code> arm it is built on - meaning a MEAN4 above roughly 76.8, which is the arm mean plus two sigma. If it lands inside the arm it will be reported here as another null and left unpublished, on the same reasoning as 108-110.</p>
 
434
  <h3>Caveat</h3>
435
  <p>The judge is <strong>text-only</strong>. It compares an answer against a reference and never sees the image, so it measures agreement with the reference, not verified truth. For a round whose whole premise is longer answers this matters more than it did in round 0XX: the judge can confirm that a model supplies reference-matching content, but not that the content is true of the pixels. Human spot-checks are the only way to close that gap.</p>
436
  <p>The legacy slices also reward a terse style the product no longer wants - the legacy VQA rubric caps a padded-but-correct answer at 89/100 by construction, so a 290-character model cannot reach the top band however accurate it is. That is why the legacy numbers are reported but never used to gate a decision.</p>
@@ -452,9 +453,133 @@ a { color: #0969da; }
452
  </ul>
453
  <p> <em>What is published here, and what is not</em> above - they are either strictly dominated, refuted, or seed replications whose output is a sigma rather than a model.</p>
454
  <ul>
455
- <li>Open: whether QA depth (111, running) extends the one confirmed lever, and</li>
456
  </ul>
457
- <p> whether the <code>other</code> split helped by adding <strong>images</strong> or merely <strong>items</strong> - 111 isolates items, since it adds no new images.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
458
  </main>
459
  </body>
460
  </html>
 
430
  <p>108, 109 and 110 are not new recipes. <strong>They are the recipes of 102 and 101 re-run with a different random seed and nothing else changed.</strong> Their adapters are therefore near-duplicates of adapters already published: same corpus, same rank, same schedule, same everything the config file records. What they produced is not a model, it is <strong>a number</strong> - sigma 0.31 - and a number belongs in the text, where it now is.</p>
431
  <p>Publishing them would also do active harm. Six more checkpoints spanning 75.22-76.56 would sit in the listing looking like six more options to choose between, and the obvious way to choose would be to take the highest one. That is exactly the mistake the sigma measurement exists to prevent: within an arm, the spread between seeds <strong>is</strong> the noise, so picking the best seed is selecting on noise and will not reproduce. The honest artifact is the published 101 and 102 adapters plus a stated uncertainty on what they score, not a shelf of lottery tickets.</p>
432
  <p>The cost argument is secondary but real: each adapter is ~821 MB, so the five unpublished runs would add roughly 5 GB of weights that no one should load in preference to what is already here.</p>
433
+ <p><strong>Aspaklarya-111 has finished, and it is a null.</strong> Its best checkpoint (step 4496) scores <strong>76.62</strong>, against the pre-registered bar of roughly 76.8 - the <code>train,other</code> arm mean plus two sigma. It lands <em>inside</em> the arm it was built on (76.37 +/- 0.23, so +0.25 is about 1.1 sigma), which is exactly the case the bar was written to catch. It is therefore <strong>not published</strong>, on the same reasoning as 108-110.</p>
434
+ <p>That is worth stating plainly because 76.62 is the second-highest single number on this page, and the temptation to ship it is precisely the error the sigma measurement exists to prevent. Raising QA depth from 2 to 4 per image did not extend the one confirmed lever.</p>
435
  <h3>Caveat</h3>
436
  <p>The judge is <strong>text-only</strong>. It compares an answer against a reference and never sees the image, so it measures agreement with the reference, not verified truth. For a round whose whole premise is longer answers this matters more than it did in round 0XX: the judge can confirm that a model supplies reference-matching content, but not that the content is true of the pixels. Human spot-checks are the only way to close that gap.</p>
437
  <p>The legacy slices also reward a terse style the product no longer wants - the legacy VQA rubric caps a padded-but-correct answer at 89/100 by construction, so a 290-character model cannot reach the top band however accurate it is. That is why the legacy numbers are reported but never used to gate a decision.</p>
 
453
  </ul>
454
  <p> <em>What is published here, and what is not</em> above - they are either strictly dominated, refuted, or seed replications whose output is a sigma rather than a model.</p>
455
  <ul>
456
+ <li><strong>QA depth is answered: it does not help.</strong> 111 raised QA per image from 2</li>
457
  </ul>
458
+ <p> to 4 and landed inside its own arm. Since 111 adds items but no new images, the <code>train,other</code> gain is better explained by the <strong>images</strong> it brings than by raw item count.</p>
459
+ <h2>Round 11X - six axes against a replicated control</h2>
460
+ <p>Round 1XX ended with one confirmed lever (data scaling) and a warning that single-run deltas below about 1.0 MEAN4 are unreadable. Round 11X was built to test six <em>new</em> axes cheaply, under a short-budget probe (SBP) design: one epoch, checkpoints at steps 562 and 1124, every checkpoint judged on all four slices. Ten jobs ran unattended over three days.</p>
461
+ <p><strong>No axis produced a win.</strong> That is the headline, and it is not a failed round - six levers were eliminated, and the round also corrected two errors in how this project measures things.</p>
462
+ <h3>The control had to be rebuilt first</h3>
463
+ <p>The SBP arms were initially compared against a single control checkpoint that ran a <strong>different step grid</strong> (590/1180 rather than 562/1124) and a different <code>max-seq-length</code>. That mismatch produced a reported <strong>+2.32</strong> VQA_DM gain for the paraphrase arm which <strong>does not exist</strong>; re-measured against the matched three-seed control the same arm is <strong>+1.00</strong>, against a VQA_DM sigma of 0.88. The claim is retracted here in full, and so is the recommendation to paraphrase RSICD questions that was built on it.</p>
464
+ <p>The lesson generalises past this round: <em>a control must match the treatment on grid, split and budget, or the delta measures the mismatch rather than the treatment.</em> Four-slice reporting did not catch it, because the slicing was right and the <strong>baseline</strong> was wrong.</p>
465
+ <p>Three matched controls were then trained from scratch - identical recipe, seeds 3407 / 1234 / 2024, nothing else varied:</p>
466
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
467
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">control</th>
468
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">MEAN4 @1124</th>
469
+ </tr></thead><tbody>
470
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">seed 3407</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.71</td></tr>
471
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">seed 1234</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.34</td></tr>
472
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">seed 2024</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.50</td></tr>
473
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>mean</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>75.52</strong> (sd 0.19)</td></tr>
474
+ </tbody></table>
475
+ <p>Those three runs also give, for the first time, a <strong>per-slice</strong> noise floor - which turns out to matter more than the aggregate one:</p>
476
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
477
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">slice</th>
478
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">control mean</th>
479
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">sd</th>
480
+ </tr></thead><tbody>
481
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">VQA_DM</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">72.82</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>0.88</strong></td></tr>
482
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">VQA_RSICD</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">70.15</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>0.74</strong></td></tr>
483
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">CAP_DM</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.06</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.25</td></tr>
484
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">CAP_RSICD</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.06</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.52</td></tr>
485
+ </tbody></table>
486
+ <p><strong>The two VQA slices are three to four times noisier than the caption slices.</strong> MEAN4 averages that down to 0.19, which is why aggregate deltas look more trustworthy than the slice deltas underneath them. Any single-slice VQA claim below about 1.8 (two sigma) is noise, and several claims made earlier in this project sit under that line.</p>
487
+ <h3>Results</h3>
488
+ <p>All arms at the matched 1124 grid point, against control mean 75.52. Bands were pre-registered as WIN &gt;= +0.76, SIGNAL +0.51..+0.76, NULL +/-0.51, HARM &lt;= -0.51.</p>
489
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
490
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">arm</th>
491
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">axis tested</th>
492
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">MEAN4</th>
493
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">delta</th>
494
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">verdict</th>
495
+ </tr></thead><tbody>
496
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>control</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">no treatment</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>75.52</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">baseline</td></tr>
497
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">115-para</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">question paraphrase augmentation</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.25</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-0.27</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">null</td></tr>
498
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">111-qa4</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">4 QA per image</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.96</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-0.56</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">harm</td></tr>
499
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">116-neg</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">hard negative examples</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.86</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-0.66</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">harm</td></tr>
500
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">113-frz</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">frozen vision tower</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.78</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-0.74</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">harm</td></tr>
501
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">119-teach</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">teacher-generated captions</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.58</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-6.94</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">severe harm</td></tr>
502
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">120-cur</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">caption -&gt; VQA curriculum</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">62.60</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">-12.92</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">catastrophic</td></tr>
503
+ </tbody></table>
504
+ <p>One caveat on the 111 row, in the spirit of the retraction above: 111 is a <strong>3-epoch</strong> run, so its step-1124 checkpoint sits at a different point on the LR schedule than the 1-epoch control&#x27;s does. That comparison is <em>not</em> clean, and the -0.56 should be read as indicative only. 111&#x27;s clean result is its full-budget one, reported in the Round 1XX section: 76.62, a null against its own arm. Both readings agree that QA depth did not help, which is why the row is kept rather than dropped.</p>
505
+ <p><strong>Nothing beat doing nothing.</strong> Two arms are worth reading past the headline number, because their MEAN4 hides the mechanism. All slice deltas below are against the three-seed control mean, with that slice&#x27;s sigma in brackets.</p>
506
+ <p><strong>119-teach</strong> replaced reference captions with captions generated by a strong general-purpose model. The damage is <strong>concentrated in the caption slices</strong> (CAP_RSICD <strong>-16.11</strong> [31 sigma], CAP_DM <strong>-9.18</strong> [37 sigma]) while the VQA slices lose only -1.85 and -0.63, both around two sigma or less. The teacher writes fluent generic prose and overwrites domain-specific remote-sensing vocabulary; a judge scoring against domain references punishes exactly that. Distillation fails when the teacher lacks the dataset&#x27;s domain knowledge - it is not a statement about distillation in general, and it does not condemn 115, which only rephrases <em>questions</em> and leaves reference captions intact.</p>
507
+ <p><strong>120-cur</strong> trained captions first, then VQA only. It produced <strong>the best VQA_DM in the entire round - 75.48, or +2.66 (3.0 sigma)</strong> - and simultaneously destroyed captioning (CAP_RSICD 78.06 -&gt; <strong>35.55</strong>, a 42-point collapse). This is the round&#x27;s strongest evidence that <strong>the joint objective is load-bearing</strong>: captioning is not a free passenger on a VQA model, it is actively maintained by the mixed loss, and it unlearns within one phase of being dropped. It is also the only slice-level <em>gain</em> in the round that survives its own noise floor - at a price nobody would pay.</p>
508
+ <p><strong>116-neg</strong> was predicted to buy VQA assertiveness with hard negatives. It did the opposite: <strong>VQA_DM -1.97</strong>, VQA_RSICD -0.51, CAP_DM -0.56, with only CAP_RSICD nominally positive at +0.38 (well inside its 0.52 sigma, so: no effect). The predicted mechanism is refuted rather than merely unproven.</p>
509
+ <p><strong>115-para</strong>, the retracted arm, is worth one more line. Re-measured properly it shows <strong>VQA_DM +1.00</strong> - but VQA_DM&#x27;s sigma is 0.88, so that is 1.1 sigma, and the other three slices are negative. There is no paraphrase effect here in either direction. The original <strong>+2.32</strong> was baseline mismatch almost end to end.</p>
510
+ <h3>Two axes that could not be tested</h3>
511
+ <p><strong>Decoding (112).</strong> Greedy, beam-4, temperature 0.7 and repetition-penalty 1.1 were run against the same checkpoint: <strong>76.72 / 76.42 / 75.58 / 75.52</strong>. Greedy wins. The axis is closed, not deferred.</p>
512
+ <p><strong>Resolution (114).</strong> This one is a negative result about the <em>corpus</em>, not the model. The run was configured with <code>--max-side 1536</code> and trained <strong>faster</strong> than baseline, which is impossible if images were being upscaled. Measuring 600 images directly: <strong>none exceed 1024 px</strong> - they are 224x224 (71%), 896x896 (27%) and 768x768 (2%) - and <code>--max-side</code> only ever downscales. Raising it above the 1024 default is a <strong>guaranteed no-op</strong>. A real resolution test on this data has to lower the cap, not raise it.</p>
513
+ <p>The run was allowed to finish anyway, because its configuration made it the missing SBP-native control - and that accident paid for itself twice over.</p>
514
+ <h3>Hyperparameters</h3>
515
+ <p>Every arm in this round shares one SBP recipe and changes <strong>exactly one thing</strong>. The shared recipe:</p>
516
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
517
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">field</th>
518
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">value</th>
519
+ </tr></thead><tbody>
520
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">base</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>Qwen/Qwen3-VL-8B-Instruct</code> (bf16, not 4-bit)</td></tr>
521
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">LoRA r / alpha / dropout</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">16 / 16 / 0.0</td></tr>
522
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">vision tower</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">trained</td></tr>
523
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">epochs</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">1.0</td></tr>
524
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">lr / scheduler / warmup</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">2e-4 / linear / 0.03</td></tr>
525
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">batch x grad-accum</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">4 x 8 (effective 32)</td></tr>
526
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">weight decay / grad clip</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.001 / 0.3</td></tr>
527
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">max seq length</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">2048</td></tr>
528
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">max side</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">1024</td></tr>
529
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">split</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>train,other</code> (11,994 images -&gt; 35,979 items)</td></tr>
530
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">per image</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">2 QA + 1 caption</td></tr>
531
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">loss weighting</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">token, caption and VQA both 1.0</td></tr>
532
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">checkpoints</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">step 562 and step 1124</td></tr>
533
+ </tbody></table>
534
+ <p>And the single change per arm:</p>
535
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
536
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">arm</th>
537
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">the one change</th>
538
+ </tr></thead><tbody>
539
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">control</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">none (seeds 3407 / 1234 / 2024)</td></tr>
540
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">113-frz</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>finetune_vision = 0</code></td></tr>
541
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">115-para</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">source CSV -&gt; paraphrased questions (35,981 items)</td></tr>
542
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">116-neg</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">source CSV -&gt; hard negatives added (37,178 items)</td></tr>
543
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">119-teach</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">source CSV -&gt; teacher captions (35,980 items)</td></tr>
544
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">120-cur</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>captions_per_image = 0</code>, initialised from the caption-phase adapter</td></tr>
545
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">111-qa4</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>qa_per_image = 4</code>, <code>captions_per_image = 2</code>, 3 epochs (full budget, not SBP)</td></tr>
546
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">112-dec</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">no training - decoding sweep on an existing checkpoint</td></tr>
547
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">114-res</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><code>max_seq_length = 3072</code>, <code>max_side = 1536</code> (both no-ops; see below)</td></tr>
548
+ </tbody></table>
549
+ <p><strong>Only the best checkpoint of each run is reported</strong>, here and in the table above. Intermediate checkpoints exist but are not quoted, because picking the best of several grid points and then quoting it as a result is the same selection bias the sigma bands exist to control - the bar was raised accordingly rather than the practice hidden.</p>
550
+ <h3>Sigma, corrected again</h3>
551
+ <p>The resolution no-op generated the same checkpoint twice under two different flags, giving two independent generate-and-judge passes over effectively identical weights: <strong>75.66 vs 75.67</strong>, every slice within 0.02.</p>
552
+ <p><strong>Judge reproducibility is therefore ~0.01 MEAN4 - effectively deterministic.</strong> That <em>refutes</em> an earlier hypothesis on this page that sigma 0.31 might be partly judge drift across invocations. It is not. Cross -invocation comparisons in the results table are safe.</p>
553
+ <p>A second accident sharpened it further. One control run was killed by an out-of-memory event at 87% - a neighbouring job on the shared A100 took 20 GB - and was re-run from scratch at the <strong>same seed</strong>. The two step-562 checkpoints, same seed and same data order, score <strong>74.36 and 74.66</strong>: a <strong>0.30</strong> spread with the seed held fixed.</p>
554
+ <p>So sigma is not mostly <em>seed</em> variance, as assumed after the previous correction. A large share is <strong>irreducible run-to-run nondeterminism</strong> from non-deterministic CUDA kernels. Two practical consequences:</p>
555
+ <ul>
556
+ <li>The 0.31 band stands, and is if anything well calibrated.</li>
557
+ <li><strong>Exact replication is unattainable even holding the seed.</strong> No delta under</li>
558
+ </ul>
559
+ <p> roughly 0.5 should be believed from a single pair of runs, however carefully the configuration is matched.</p>
560
+ <p>The <code>max-seq-length</code> confound inherited from the old control was also settled empirically: 2048 vs 3072 at the same seed gives <strong>75.71 vs 75.66</strong>, a 0.05 difference. Inert, as the token arithmetic predicted - an 896 px image is about 784 vision tokens, so a 2048 budget is rarely the binding constraint.</p>
561
+ <h3>What is published from this round, and why there are no new adapters</h3>
562
+ <p><strong>Nothing is published, and no adapter repo was created for any run in this round</strong> - not for 112-120, and not for the three controls.</p>
563
+ <p>The reasoning is the same one applied to 106b-110, stated again because it keeps being asked: an adapter repo on this org is a <strong>claim that a configuration is worth using</strong>. Every arm here is either a <em>refuted</em> configuration (113, 115, 116, 119, 120, 111), a <em>calibration</em> run whose entire purpose is to measure noise (the three controls), or a <em>no-op</em> that trained the baseline recipe under a differently-named flag (114). Publishing weights for a refuted recipe would make the org a dump of artefacts rather than a record of what is known, and a user downloading 119 would get a model measurably worse at captioning than the base it came from.</p>
564
+ <p>There is also a standing rule that no result goes to the hub off a one-epoch probe. A win in the SBP grid earns a <strong>full-budget confirmation run</strong> first. No arm produced a win, so the question never arose.</p>
565
+ <p>The round&#x27;s deliverables are therefore a replicated control (75.52 +/- 0.19), a per-slice noise floor, six closed axes, a corrected sigma, one retracted result - and roughly 30 GPU-hours spent to establish that none of it should be shipped. The findings are the product; the weights would have been the liability.</p>
566
+ <h3>Status after Round 11X</h3>
567
+ <ul>
568
+ <li><strong>Nothing on this org changed.</strong> Aspaklarya-101-step4500 (76.37 +/- 0.23</li>
569
+ </ul>
570
+ <p> across seeds) remains the in-domain reference; Aspaklarya-020-step4500 remains the better general model; Aspaklarya-106-soup remains the cheap default. Round 11X added no model and removed none.</p>
571
+ <ul>
572
+ <li><strong>One confirmed lever, total, across both rounds: data scale.</strong> Nine other</li>
573
+ </ul>
574
+ <p> axes have now been tested and closed - rank, loss weighting, decoding, vision-tower freezing, resolution, QA depth, paraphrase augmentation, hard negatives, teacher distillation and curriculum ordering.</p>
575
+ <ul>
576
+ <li><strong>The measurement apparatus is the part that improved.</strong> Round 11X ends</li>
577
+ </ul>
578
+ <p> with a three-seed control, a per-slice noise floor, judge reproducibility pinned at ~0.01, and a demonstration that same-seed reruns still differ by 0.30. Future deltas on this page are readable in a way earlier ones were not.</p>
579
+ <ul>
580
+ <li>**Two results elsewhere on this page are retracted or corrected by this</li>
581
+ </ul>
582
+ <p> round** - the paraphrase gain, and the judge-drift explanation of sigma. Both are left visible above rather than quietly edited out.</p>
583
  </main>
584
  </body>
585
  </html>