test(e2e): re-record the SD3.5 OCR standard after sglang 585a7d05e - #88
Merged
Conversation
Rockdu
marked this pull request as draft
August 2, 2026 22:35
Rockdu
marked this pull request as ready for review
August 3, 2026 07:24
6 tasks
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Re-record
tests/ci/fixtures/e2e_standards/test_sd3_ocr_grpo_2xGPU.json. No code changes. Pairs with #89, which removes the miles-side sigmas fallback (to recalc by timesteps) so this class of silent drift cannot recur.Why
The committed standard (recorded 2026-07-27) encodes values from a derived sigma schedule. CI installs sglang from unpinned main; sglang
585a7d05e(#32683, bisected in 6 rounds with byte-diffed recording artifacts) started returning the scheduler's own sigmas snapshot indit_trajectory, flipping miles'if "scheduler_sigmas" in ...branch away from thecat([timesteps / 1000, zeros(1)])fallback.stage-c-3-gpu-h200has been red on main itself since then.The snapshot is strictly more accurate than the fallback, so the new values are the correct ones to record (probe of real tensors, run 30778705251):
sigma × 1000 → ÷ 1000round-trip loses low-order bits (rel. 1.42e-8) — 1000 is not a power of two, so both roundings are lossy.traj.timestepsis[T+1](already ends in0.0), so the fallback's extracatduplicates the terminal zero: 12 entries vs the snapshot's 11.train/log_prob_new_idx_0[0]: -0.7209256328642368 → -0.720925610512495 (2.2e-8); grad_norm and rollout-1 rewards cascade from there.Controls
3312645a3reproduces the committed standard 8/8 (run 30770528080).dit_trajectory.sigmason current sglang (forcing the old fallback) also reproduces it 8/8 (run 30772902308) — the sigmas snapshot accounts for all of the drift.Known side effect of the same upstream change (tracked separately, not in this PR): DiffusionNFT's kept training timesteps went 10 → 9, because
resolve_nft_sigmastrims byint(numel * 0.99)and the array length changed.Files
tests/ci/fixtures/e2e_standards/test_sd3_ocr_grpo_2xGPU.jsonChecklist
pre-commit run --all-filespasses — run on the touched filepytest -xis green — n/a, no code changepython3 train.py --helpstill parses — n/a