add Laguna XS-2.1 SWE example - #3186
Conversation
fba1792 to
8d0f43b
Compare
|
|
||
| [inference.model] | ||
| max_model_len = 131072 | ||
| tool_call_parser = "poolside_v1" |
There was a problem hiding this comment.
should also add this into our auto-map if not there yet
|
|
||
| [orchestrator.train.sampling] | ||
| temperature = 1.0 | ||
| max_completion_tokens = 32768 |
| [orchestrator.train.sampling] | ||
| temperature = 1.0 | ||
| max_completion_tokens = 32768 | ||
| extra_body = { top_k = 20, min_p = 0.0 } |
There was a problem hiding this comment.
top k is not supported yet, see #2979 for pr to enable replay on trainer. should acc prob block if this is extra body to prevent corrupt training
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1886ecb. Configure here.
| fused_lm_head_token_chunk_size = 1024 | ||
| optim_cpu_offload = true | ||
|
|
||
| [trainer.model.compile] |
There was a problem hiding this comment.
Trainer compile left enabled
High Severity
The empty [trainer.model.compile] table keeps torch.compile on (CompileConfig is the default). Disabling it requires compile = "None". This run already hit a compiled-trainer MoE collective mismatch and NCCL timeout, so leaving compile enabled is likely to reproduce that failure.
Reviewed by Cursor Bugbot for commit 1886ecb. Configure here.
| [orchestrator.train.sampling] | ||
| temperature = 1.0 | ||
| max_completion_tokens = 32768 | ||
| extra_body = { top_k = 20, min_p = 0.0 } |
There was a problem hiding this comment.
Train top_k can corrupt ratios
High Severity
orchestrator.train.sampling.extra_body sets top_k = 20, which overrides the policy-rollout default of top_k = -1. Truncated train sampling without trainer kept-set / acceptance-prob replay support makes inference and trainer logprobs disagree and can silently corrupt GRPO importance ratios.
Reviewed by Cursor Bugbot for commit 1886ecb. Configure here.
|
The full-scale compiled run reproduced the NCCL failure on Slurm job Full NCCL all-to-all timeout trace (job 1643)Rank 0 ( Rank 13 ( |
…L deadlock When torch.compile is used with Ulysses context parallelism and FSDP, the all-to-all collectives are traced into the compiled backward graph while FSDP's reduce-scatter hooks fire eagerly via the autograd engine. The compiler may reorder the all-to-all backward differently across ranks, causing rank 0 to wait on reduce_scatter while rank 1 waits on all_to_all — a classic collective ordering mismatch that deadlocks NCCL after the 1-hour watchdog timeout (PR #3186, job 1578). Wrapping _all_to_all_seq_to_head and _all_to_all_head_to_seq with torch._dynamo.disable forces a graph break around the collectives so they execute eagerly in the autograd engine, restoring a single consistent backward ordering between the two collective systems.
…L deadlock (#3195) When torch.compile is used with Ulysses context parallelism and FSDP, the all-to-all collectives are traced into the compiled backward graph while FSDP's reduce-scatter hooks fire eagerly via the autograd engine. The compiler may reorder the all-to-all backward differently across ranks, causing rank 0 to wait on reduce_scatter while rank 1 waits on all_to_all — a classic collective ordering mismatch that deadlocks NCCL after the 1-hour watchdog timeout (PR #3186, job 1578). Wrapping _all_to_all_seq_to_head and _all_to_all_head_to_seq with torch._dynamo.disable forces a graph break around the collectives so they execute eagerly in the autograd engine, restoring a single consistent backward ordering between the two collective systems.


Summary
Add a standalone
poolside/Laguna-XS-2.1RL example for ScaleSWE with online pass@1 evaluation on SWE-Bench Verified.The example captures the tested setup:
poolside_v1parsersThis is based directly on current
main, so it does not carry the earlier local parser workaround, old dependency pins, GLM configs, or cluster-specific node exclusions.Validation
uv run rl @ examples/advanced/laguna-xs-2.1/swe.toml --dry-run --output-dir <temp-dir>uv lock --checkprime-rl-configswheel outside the workspaceverifiers==0.2.2.dev76andvf.ServeConfiggit diff --checkThe dry run generated trainer, orchestrator, inference, and Slurm configs successfully with throughput-oriented DEP8 inference and the 10,000-step CLI override. The external slim-wheel import reproducing the previous CI failure also passes. A compiled two-node, 16-GPU trainer run completed five steps on current main; step 1 took 2m17s and subsequent steps took 19–22s without NCCL errors.
Historical trainer compilation failure
An earlier compiled trainer failed in Slurm job
1578on 2026-08-01. The current config restores compilation after the two-node five-step validation described above. At sequence 3750, rank 0 entered FSDP_REDUCE_SCATTER_BASEwhile rank 1 (and ranks 2–7) entered UlyssesALLTOALL_BASE. After the 3,600-second watchdog timeout, NCCL terminated the process group. The relevant rank-0 and rank-1 stderr is reproduced verbatim below.Full NCCL collective-mismatch trace (job 1578)
Note
Low Risk
Documentation-only addition of an example TOML; no runtime, library, or training code paths change.
Overview
Adds
examples/advanced/laguna-xs-2.1/swe.toml, a runnable recipe for GRPO on ScaleSWE withpoolside/Laguna-XS-2.1, using the bash harness and pass@1 eval on SWE-Bench Verified every 20 steps.The config wires a 2-node trainer (Ulysses CP=4, Muon, router replay, compile + activation checkpointing/offload) to four inference replicas at DP8 with expert parallel and routed-expert return for MoE training. Orchestration uses the laguna-xs-2.1 renderer with thinking enabled, Prime sandboxes labeled
laguna-xs21-swe(with Slurm pre-run cleanup), and vLLMpoolside_v1tool/reasoning parsers.Reviewed by Cursor Bugbot for commit a5e6abf. Bugbot is set up for automated code reviews on this repo. Configure here.