Skip to content

Commit 5a42b99

Browse files
Zhiyu Liclaude
andcommitted
docs(swe-teacher): correct root-cause — the two GBS=128 stalls are DIFFERENT failures
Verified: only 5355697 is a real CP hang (16 CONTEXT_PARALLEL_GROUP watchdogs, hung on step 0). 5331363 was a NaN collapse (2619 nan, 0 CP watchdogs, pre moe_backend:triton) — a symptom-level deadlock, not a CP desync. So the CP-hang-at-GBS-128 evidence is 1 run, not 2; drop the "2/2" claim. Note the CP hang strikes early (first 1-2 optimizer steps). Update the run matrix (split the two runs, add 5456109's 5-clean-steps-from-scratch result). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 58059df commit 5a42b99

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

SWE_TEACHER_CP16_REPRO.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,27 @@ per the flight-recorder dump; analyzer: `tools/analyze_fr.py`).
9090

9191
| Run | seq | GBS | mtp | CP/nodes | Status |
9292
|---|---|---|---|---|---|
93-
| 5331363 / 5355697 | 65k | **128** | 1 | CP16/48 | ❌ STALL (CP watchdog) |
93+
| **5355697** | 65k | **128** | 1 | CP16/48 |**CP hang** — 16 `CONTEXT_PARALLEL_GROUP` watchdogs (the real CP `all_to_all` desync) |
94+
| 5331363 | 65k | 128 | 1 | CP16/48 |**NaN collapse** (NOT a CP hang) — 2619 `nan`, **0** CP watchdogs; pre-`moe_backend: triton` |
9495
| 5372801 | 190k | 4 | 1 | CP16/48 | ✅ clean → step 2 |
9596
| 5388072 | 190k | 32 | 1 | CP16/48 | ✅ clean → step 5 |
96-
| **5456109** | **65k** | **32** | **5** | CP16/48 | ✅ clean, from scratch → step 2+ (per-step timing) |
97-
98-
- **GBS=128 → hang (2/2); GBS≤32 → clean (all), independent of seq len (65k or 190k) and mtp (1 or 5).**
97+
| **5456109** | **65k** | **32** | **5** | CP16/48 | ✅ clean from scratch → **step 4 (5 steps)**, 0 CP watchdog, COMPLETED at walltime |
98+
99+
- **The two GBS=128 "stalls" are DIFFERENT failures — do not conflate them.** Only **5355697** is a
100+
confirmed CP hang (16 `CONTEXT_PARALLEL_GROUP` watchdogs; FR showed the off-by-one CP collective_seq_id).
101+
**5331363 was a NaN collapse** (2619 `nan`, **0** CP watchdogs, pre-`triton` fix) — its stuck
102+
`all_to_all`/`reduce_scatter` are ranks waiting on peers that diverged on NaN, a *symptom* not the CP
103+
desync. So the CP-hang-at-GBS-128 evidence is **1 run, not 2**.
104+
- **The CP hang strikes early — first 1–2 optimizer steps, not mid-training.** 5355697 hung on **step 0**
105+
(the first CP-attention all_to_all). It reaches the training loop (load + refit + rollout complete)
106+
then deadlocks on an early step → it fails fast (~10 min to the 600 s watchdog), so GBS=128 is a cheap
107+
reproducer, and surviving several steps (5456109: 5 clean steps) is strong evidence of clearing it.
99108
- **mtp is REFUTED as the cause:** 5388072/5372801 are `mtp=1` and clean. mtp=5 is kept because it's the
100-
model-correct value + matches the reference working run — it is *not* the hang fix. (An earlier
101-
"mtp=1 deviation" claim was wrong.)
102-
- **The packing-uniformity claim was over-retracted then re-confirmed as the leading mechanism:** at
103-
GBS=128 many variable-length sequences pack per microbatch → uneven pack/microbatch counts across CP
104-
ranks → the CP `all_to_all` desyncs (the FR signature above). GBS≤32 packs few/uniform → lockstep.
105-
Still correlational (2 hung runs); a controlled GBS 128-vs-32 A/B at fixed seq/mtp would nail it.
109+
model-correct value + matches the reference working run — it is *not* the hang fix.
110+
- **Packing-uniformity is the leading (correlational) mechanism:** at GBS=128 many variable-length
111+
sequences pack per microbatch → uneven pack/microbatch counts across CP ranks → the CP `all_to_all`
112+
desyncs. GBS≤32 packs few/uniform → lockstep. Rests on **ONE confirmed CP-hang run (5355697)**; a
113+
controlled GBS 128-vs-32 A/B at fixed seq/mtp/`triton` would nail it.
106114

107115
**Working config = 5456109:** `swe_teacher_cp16.yaml` at **65k, GBS 32, mtp 5**, CP16, 48 nodes (the
108116
committed defaults). Raising GBS to 128 needs a packing pad-to-CP-max fix first — do not raise blindly.

0 commit comments

Comments
 (0)