Skip to content

[Sync] Support request-scoped streaming aborts - #410

Merged
CalvinXKY merged 44 commits into
vllm-project:mainfrom
aoshen02:codex/slime-2340-sync
Sep 15, 2026
Merged

CalvinXKY merged 44 commits into
vllm-project:mainfrom
aoshen02:codex/slime-2340-sync

Conversation

@aoshen02

@aoshen02 aoshen02 commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Pull/reload hook alignment and local GPU E2E — 2026-09-14

  • Move the pre-read hook into vLLM startup configuration (--vllm-custom-pull-weights-pre-read-hook), matching Slime ownership; remove the per-RPC hook argument. Documentation and example flags follow the same interface.
  • Local E2E passed on h200-0: Qwen3-0.6B, one trainer GPU and one non-colocated rollout GPU, TP/PP/CP/EP=1, two training steps, batch 2 × group 2, response cap 32, entropy coefficient 0.01, LR 1e-5. Real delta publication → worker hook → pull/reload → continued rollout was exercised; hook events confirmed versions 1 and 2, with XOR/zstd metadata and successful training exit.
  • Base experimental Vime image: vllm/vime@sha256:92a3cdf7017157d46652f7f43270f7f2263c679a22ee7490a9cb226acf9f7d22 (pr410-closeout-r10-20260909), vLLM 0.28.1rc1.dev43+g6f7df92a8. Current source and patched runtime Python files were copied into the container, not source-mounted. This does not claim the published image already contains this change; no image was pushed.
  • Train/rollout logprob absolute difference: 0.009079 before the first update → 0.008511 after its reload. Gradient norm: 0.18375 → 0.17365. The second reload completed, but no subsequent rollout was sampled. These are different samples, not a fixed-token precision comparison.
  • Scope: response truncation was 100%, raw reward/advantages were zero; entropy loss produced nonzero updates. This validates the synchronization path, not convergence, reward quality, cross-node storage, or TP>1 correctness.
  • Changed-file pre-commit and git diff --check passed. An initial Ray dashboard-agent port collision was isolated using separate agent ports. An initial harness assertion incorrectly expected three publications; corrected to two because initialization only captures the baseline, then the full E2E was rerun successfully. Test container stopped and reservation cancelled.

Whole-tree audit — individual approval queue

The current review compares all 658 mapped paths at Slime 4c193f1f, not only the sync window. Eleven mechanical omission repairs are included in the latest update (documentation links/OPD notes, MiMo MTP layer flag, comments and resolved-default test assertion). Changed-file pre-commit and focused CPU tests are checked; this is not full GPU/CI completion.

55 proposals/investigations below are NOT blanket-approved and are NOT 55 confirmed bugs. Approval to publish this list does not authorize implementing its native fixes. Existing candidate differences, including A01, are subject to review; unresolved engine gaps remain open. No image/latest promotion is part of this update.

Current decision: A01. Proposed wording in both languages: “Buildkite runs pre-commit checks and PR tests.” Only the two CONTRIBUTING.md lines; no other contribution policy changes. Awaiting explicit decision.

Complete approval document — A01–A55
ID File/surface Proposed decision or investigation Status
A01 CONTRIBUTING.md:179,391 Keep or remove the two candidate CI-description corrections, which are not Slime sync changes Await individual approval
A02 vime/backends/megatron_utils/hf_checkpoint_saver.py:108 Correct the pairing-cache comment to describe Vime's actual converter rather than nonexistent stateful caching Await individual approval
A03 vime/utils/processing_utils.py:encode_video_for_rollout_engine Make video conversion preserve uint8 [0,255] inputs instead of clamping them to [0,1]; establish supported float range before patching Native correctness proposal; validation/design still needed
A04 vime/backends/megatron_utils/data.py:multimodal batching Review per-key padding rather than assuming every multimodal field shares variable-length final-axis semantics Investigation, not an approved fix
A05 Native DSpark attention/hidden capture/loss/export Separate existing native dtype/mask/PP issues and delta-disk draft interaction into individual fixes with repro evidence Investigation; must not bundle into mirror sync
A06 DSpark + delta-disk updater Direct iterator excludes draft parameters and delta updater never selects the draft source; decide whether to implement this native composition or explicitly reject it Source-path omission confirmed; no GPU failure claimed; awaiting individual decision
A07 vime/agent/adapters/common.py:_tokens_and_logprobs_from_choice Reject incomplete logprob responses instead of synthesizing zero logprobs for training samples Confirmed native fallback; focused validation proposal awaiting individual approval
A08 examples/tau-bench/vllm_tool_parser.py Replace the native always-Qwen25 regex parser with vLLM parser dispatch honoring the selected parser and tools schema Historical #142 divergence confirmed; functional rewrite requires individual approval
A09 Tau compute_process_reward + batched_tau_bench_rm Restore raw environment reward, or explicitly retain native shaping/normalization as a separate experiment CPU extracted-function evidence: failed task can score1.5, and0.15 becomes1 when normalized alone; awaiting decision
A10 examples/tau-bench/run_qwen3_4B.sh Restore Slime training hyperparameters/resume behavior or retain the native experiment with explicit ownership LR, temperature, lengths, KL, entropy and load differences confirmed
A11 Tau prompts, simulator config and factory Decide native local simulator/default10turns/no_think/multi-call instruction separately; restore unsupported-strategy rejection if approved Source behavior differs from Slime, not an engine requirement
A12 Tau env.step failure handling Mark environment failures ABORTED rather than allowing done=True to become COMPLETED Source control flow confirmed; no sandbox failure induced
A13 Existing MTP recipe candidate depth and derived graph sizes Use source single-chain depth K=D-1, or explicitly retain native K=D experiment tuning; update capture sizes consistently Current translation table confirms non-equivalence but reserves experiment changes for approval
A14 sync-skills translation table watchdog summary and existing recipe env Correct the stale summary that calls watchdog equivalent, consistent with its own §5.5; separately design actual runtime watchdog support Native documentation correction queued; no SOP edit made
A15 vime/backends/vllm_utils/server_control.py and rollout abort Restore a server-idle completion contract while preserving delete-type abort and late-request resweeps; do not equate local pending-task drain with empty worker queues Source control-flow difference confirmed; orphan/disconnect E2E not yet reproduced; native correction requires individual approval
A16 Group overrides and EPD engine configuration Translate non-overlap sleep disabling to the native field; resolve ignored language_only/encoder_urls semantics and validate per-group accepted keys instead of merely documenting them No consumers for these three source names in pinned vLLM/current patches; lifecycle and EPD data paths have separate mechanisms, so no blanket failure claimed
A17 engine_group.py allocator env versus vllm_engine.py child env Decide the intended allocator policy before removing redundant partial filtering or restoring selected options; align comments with that decision Actor preserves non-expandable options but child removes both allocator env variables; no policy change made
A18 docs/{en,zh}/advanced/vllm-config.md router note Correct pd_disaggregation=True to the actual native router field vllm_pd_disaggregation=True Documentation-only native correction; await individual approval
A19 docs/{en,zh}/advanced/vllm-config.md custom rollout examples Translate caller sampling_params rather than replacing them with literal temperature/top_p/length values Source example preserves caller configuration; Vime native example changes it; await individual approval
A20 docs/{en,zh}/advanced/delta-weight-sync.md hook description Describe /collective_rpc method pull_weights instead of implying a /pull_weights HTTP endpoint Hook implementation confirmed, native HTTP-path wording correction pending
A21 docs/{en,zh}/developer_guide/ci.md Correct the claim that the GPU gate waits for all CPU steps; current gate depends only on pre-commit Native docs correction; changing pipeline dependencies would be a separate approval
A22 docs/zh/developer_guide/install_flashqla.md Remove or substantiate the claim that a release target explicitly enables INSTALL_FLASHQLA Repo search finds only Dockerfile default0 and this guide, no enabling release target; external evidence still possible
A23 docs/{en,zh}/developer_guide/profiling.md verification instructions Match actual dictionary-style launcher logging rather than requiring a --profiler-config command string Native diagnostic prose correction; startup configuration itself is supported
A24 docs/{en,zh}/examples/qwen3-30B-A3B.md batch guidance Qualify full-rollout global batch equality as a single-step example rather than a mandatory invariant Current argument parser supports num_steps_per_rollout>1 and scheduler multiple steps; documentation-only native correction
A25 docs/{en,zh}/get_started/agent.md:55 Translate X-SMG-Routing-Key to the actual x-session-id header, including the default-session exception common.py:538-540 confirms runtime contract; native adapter documentation correction awaiting approval
A26 docs/{en,zh}/get_started/customization.md agent examples Describe multi_agent as custom-generate-function-path and fully_async as replacement rollout-function-path Both launchers contradict the native prose; restore accurate hook ownership after individual approval
A27 docs/{en,zh}/get_started/{quick_start,usage}.md GPU count explanations Include prefill-context parallelism in the total-GPUs-to-TP condition, and distinguish router engine replicas from internal DP arguments.py:169-172 computes TP=GPUs/(PPPCPDP); docs only mention PP/DP and later imply direct equality. Native documentation correction awaiting approval
A28 Native AMD tutorial and run-qwen3-8B-amd.sh cleanup Remove the claim that selecting two GPUs avoids clashes, or scope cleanup to task-owned processes before making that guarantee Launcher executes host/container process-name-wide ray stop and pkill before applying visibility; no actual process was killed during audit
A29 Native AMD tutorial WandB contract Make tracking truly optional or document mandatory online tracking/authentication Launcher always adds use-wandb, wandb-mode online and wandb-key; docs say key optional. Existing credentials may allow success, so failure is not unconditional
A30 vime/rollout/vllm_streaming_rollout.py cancellation metadata Decide whether an interrupted call must retain an already-received weight_version; then test cancellation carrying that field Current local version is lost when CancelledError skips finalization; existing cancellation test covers tokens/masks but not version. Native lifecycle contract, not yet an approved fix
A31 VLLMEngine release/resume and multi-node recovery Preserve node-rank-zero HTTP ownership when recovery visits all_engines, including headless actors Source routes release/resume through guarded _make_request; Vime direct POST lacks guard. Recovery explicitly invokes newly created all_engines; multi-node nonzero nodes are headless. Source-path issue confirmed, no distributed repro yet
A32 sync-skills feature-gap ledger HiCache exclusion Replace name-based SGLANG-ONLY justification with a capability-level CPU-offload lifecycle disposition after investigation CPU-offload lifecycle report confirms missing optional host release at the pinned receiver; source excludes storage-enabled mode. No RAM benchmark or shared SOP edit yet
A33 docker/patch/latest/vllm-pull_weights.patch native structure/comments Decide whether to retain native helper simplification and restore omitted source algorithm comments/full-copy logging Algorithm matches source; native byte-count guard and mmap cleanup differ. No silent patch rewrite. See current-tree-pull-weights-patch-audit-20260910.md; CPU execution attempt blocked by missing zstandard
A34 GLM-5/GLM-5.2 indexer rotary recipe control Translate ineffective INDEXER_ROPE_NEOX_STYLE=0 into receiver config indexer_rope_interleave=True, after checking actual checkpoint and existing HF overrides No env consumer in pinned vLLM or patch stack. Both receiver indexers read the config instead. Control mismatch proven; actual checkpoint numerical failure not claimed. See current-tree-model-patch-audit-20260910.md
A35 tools/convert_hf_to_torch_dist.py AMD initialization guard Restore source CPU-initialization guard, or document a verified reason for allowing GPU initialization on AMD Only residual difference in this training conversion tool; not an engine API translation. No AMD failure reproduced. Needs individual decision before adding a restrictive guard
A36 .claude/skills/release/SKILL.md latest promotion policy Clarify whether latest requires the Vime PR merged and tested, or also every receiver patch merged into upstream vLLM Current native prose requires all vLLM patches upstream, a stronger condition than Vime-merge gating and absent from source Slime release workflow. No publication or policy edit made
A37 tests/test_qwen3.5_0.8B_gsm8k_async_short.py training batch token budget Restore source 9216 or retain 2048 with explicit experimental justification Training-side microbatch partition differs, not inference translation. No automatic retuning; see current-tree-small-test-diffs-20260910.md
A38 Four multi-group/mixed-offload configuration E2Es Confirm native max-num-seqs=32 cap and its resource justification Source does not set the corresponding cap; no assertion removal, but execution concurrency differs. See current-tree-config-e2e-diffs-20260910.md
A39 tests/test_qwen2.5_0.5B_fully_async_short.py fault injection Retain explicitly as native recovery coverage or restore source plain async smoke scenario Added use-fault-tolerance combines with ci-test to enable injected failure; not just inference API translation
A40 Same fully-async test ROCm preparation/training Confirm checkpoint-conversion and no-offload-train/no-gradient-accumulation-fusion overrides against intended AMD image Source lacks these branches. No AMD environment validation in this audit; keep unchanged pending individual approval
A41 GLM4.7 PD test top-p reduction in coverage Restore top-p=0.95 after G7 receiver support is verified, or explicitly retain restricted coverage Target uses1.0 while source uses0.95 with speculation. Existing G7, not a new capability; cannot claim test parity from passing target alone
A42 Role-config unit test dependency isolation Decide whether to restore source-equivalent dependency-free isolation using existing CLI/Ray stubs Native replacement helper omits AsyncEngineArgs/ray.util; six isolated tests fail on imports in this local virtualenv. Not evidence of CI failure with dependencies installed; no test/environment edits made
A43 External-PD readiness comment Remove or substantiate native claim that vLLM /health is unreliable on PD-only nodes Source describes /health_generate; target mechanically renames it to a different API. Polling /server_info is reasonable, but the translated rationale is not established. Comment-only correction requires approval
A44 Global sampling-mask enablement conflicts with greedy eval Verify/fix per-request eval handling or receiver greedy-mask support, keeping source's positive training-temperature requirement Training top_p!=1 sets engine-wide mask; dataset eval temperature may be0; receiver rejects it. Source per-request opt-in and greedy singleton differ. Static call-chain evidence, no GPU reproduction yet
A45 docker/README.md nonexistent release recipe Replace just release with actual native build/manifest instructions just --dry-run release fails: no recipe; source release workflow differs. Documentation untouched pending approval
A46 docker/justfile build-test provenance Forward explicit VIME_COMMIT as normal build does, or document external code-copy requirement Current build-test uses Dockerfile default main, so PR checkout alone does not pin embedded code. No claim existing CI copied code incorrectly
A47 docker/Dockerfile.rocm architecture arguments Unify or validate GPU_ARCH and GFX_ARCH before library pruning GPU_ARCH controls compiled extensions; independent GFX_ARCH=gfx950 prunes ROCm libraries. Non-default gfx942 build arg alone is inconsistent; no ROCm build performed
A48 RolloutManager metrics getter wrapper Inline private helper into public remote method if retained Private helper has only public wrapper caller in product search; public method may have external consumers, so do not delete API blindly
A49 ROCm execute_train direct-driver environment Validate worker runtime-env equivalence and decide whether to consolidate duplicated construction AMD exports differ from job runtime_env; GPU-specific exclusions may be intentional. Driver exports alone do not prove worker inheritance; no launch performed
A50 examples/mem_agent/_common.sh:mem_agent_detect_nvlink Count zero NVLink matches without terminating under pipefail, while retaining real query-error handling Non-destructive fake-topology reproduction exits 1 before NVLS=0; native launcher fix awaits individual approval
A51 examples/mem_agent/eval_ruler_hqa.py:_sub_exact_match Reject empty normalized predictions before substring scoring Actual extracted function returns 1.0 for empty or article-only prediction versus Paris; evaluation metric only, not training reward; awaiting approval
A52 examples/mem_agent/eval_ruler_hqa.py:run_eval metrics Make failed-request coverage explicit in reported metrics or adopt a full-dataset denominator Exceptions excluded from records and scoring denominator, error count printed; scoring policy awaits individual approval
A53 examples/mem_agent/eval_ruler_hqa.py:--force Replace prior output on forced rerun rather than append duplicate task IDs Source opens output in append mode even under force; future cached stats aggregate duplicate runs; awaiting approval
A54 docker/patch/latest/vllm-inflight-queue-diagnostics.patch:LLMEngine.get_inflight_queue_diagnostics Return EngineCoreClient's list directly instead of wrapping it again Exact added method with contract-matching fake core returns list[list[dict]], not list[dict]; async HTTP path unaffected; await individual approval
A55 docker/patch/latest/vllm-pd-request-metrics.patch and MultiKVConnectorWorkerMetadata Preserve child per-request transfer metrics through MultiConnector with explicit collision/aggregation semantics Actual wrapper class inherits default empty metrics; CPU child128bytes becomes wrapper{}; telemetry gap, not transfer failure; awaiting approval

A06 is split out of A05 so it can be reviewed independently. Detailed source
and test boundaries are in current-tree-weight-contracts-20260910.md.

Parity gaps such as missing runtime profiler controls belong to the sync-gap
worklist, not cosmetic/native cleanup. Explicitly excluded capabilities must
not be reintroduced just because the source tree contains them.

A07 also covers streaming's zero-padding/truncation of malformed logprobs;
normal-stream success is not evidence that this fallback is acceptable.

A13 also applies to both speculative-decoding guides (source steps3/D4 versus
Vime K4), and to the translation table's outdated summary D→K wording; its §5.2
correctly states K=D−1 for topk1. Do not count the repeated docs as new features.

The model-document pass extends A13 to GLM4.7/GLM5.2 depth and capture excerpts,
and notes DeepSeek-R1's native addition of MTP where the source excerpt does
not enable it. Approve experiment semantics separately from parameter spelling.


Current source — ff99e9ff / r10 runtime (2026-09-09)

  • Product HEAD is ff99e9ff408da74f4fbfdd1a1514122e66716f46. The two follow-up changes fix the EPD cache-file existence assertion (a glob iterator was previously always truthy) and the delta pre-read hook comment. Changed-file pre-commit passed. The strengthened EPD test passed a complete regular-versus-EPD run on GB200/r10; only that test file was copied, not runtime code.
  • CI1183 is not final-HEAD proof: it tests e52a2198 with r10. Querying include_retried_jobs=true exposes four original failures: Qwen3.5 short exit1 with unresolved connection errors, plus three exit-1 jobs whose Buildkite agents were lost. Fully-async short passed exit0. Automatic retries are preserved in the audit; none were manually requested to hide failures.
  • The original Qwen3.5 short configuration passed exit0 on four GB200 GPUs under single-node Slurm24542: 1319-sample evaluation (accuracy 0.5367703), three training rollouts, deliberate engine failure and successful rebuild/reconnect. The original connection-error signature did not reproduce. Peak sampled process FD count was 2738 with limit1048576; CI H100 limits are unknown, so this does not establish an FD root cause. This is ARM/GB200 diagnostic evidence, not an H100 reproduction certificate.
  • Final full CI1187 binds exact source ff99e9ff408da74f4fbfdd1a1514122e66716f46 and the r10 digest below. All six GPU suites were explicitly selected; the uploaded 39-job GPU matrix matches the source matrix. Current checkpoint: 7 passed, 39 reserved, no failed attempts; not yet full green. The automatic CI1186 lacks the image override and is not the final gate.
  • Runtime digest remains sha256:92a3cdf7017157d46652f7f43270f7f2263c679a22ee7490a9cb226acf9f7d22. Final code-SHA/digest full CI and semantic whole-tree audit remain outstanding; latest is unchanged. Sync ledger update: Inferact/vime-sync-skills@51f4f39; G8.6 is native, with 15 active capability gaps (not 15 PRs).

Earlier candidate — r10 / e52a2198 (2026-09-09)

  • Experimental image vllm/vime:pr410-closeout-r10-20260909, multiarch digest sha256:92a3cdf7017157d46652f7f43270f7f2263c679a22ee7490a9cb226acf9f7d22; product e52a21987838fee03352a4f45ce57af0735133bf. AMD64/ARM64 product and runtime hashes verified; all 27 patched runtime files match r9. Neither the pinned vLLM base nor latest changed.
  • Full CI #1183 targets this exact SHA/digest with all six GPU suites requested. Pending, not green. Earlier CI1181 is not certification of this SHA.
  • Exact installed r9 tests:135 agent/rollout tests and56 isolated observability/argument tests passed. r10 adds documentation-only corrections: valid EPLB enablement/expert divisibility, accurate DeepEP/watchdog scope, and worker-step rather than request-count profiling. Nine docs tests and pre-commit passed. These are not substitutes for final r10 full CI.
  • Fresh r10 installed-image validation passes 200 CPU tests and live G5/G9/abort on one GB200 node (Slurm24542, P-TP1/D-DP2). Nonstream/stream remote waits417.743/453.800ms differ from transfer-worker67.568/62.540ms; both responses carry58,720,256 bytes and all queue/allocation fields. True DP0/1 each show four requests (running plus remote-KV-waiting), then zero after cancellation, delayed pending, two scans and pause/flush/resume. Product/runtime checksums pass with no source replacement. GenerateState/pending are injected; this is not a full-training run. D-engine latency is distinct from the outer P→D HTTP span. Whole-tree semantic review remains in progress; current validation ledger is sync-skills 12598b9.

Earlier candidate — r9 / 64633ca1 (2026-09-09)

  • Experimental dual-architecture image: vllm/vime:pr410-closeout-r9-20260909, immutable digest sha256:205d68387d352c86202256a3bfcecf4d34166f5136cb79dfabf0d9ba55ce79c3; clean product 64633ca134c3b22fd0cb186c7f684c7c0fb0ab4a. Both builds verify product and27 runtime-file hashes; runtime hashes equal r8. Same pinned base, latest unchanged.
  • Full CI #1181 targets this exact SHA/digest; all six GPU suites requested. Pending, not green. CI1179 targets the previous SHA, not this final candidate.
  • Installed r8 validation passed G5 streaming/nonstreaming (remote wall waits401.203/434.451ms versus transfer-worker65.459/62.338ms), DP0/1 counts4+4→0+0 and production abort pending/two-scan/pause/flush/resume. Injected GenerateState/pending boundary remains explicit. Installed SSE fixture suite17 passed.
  • r8 installed-dependency testing exposed two test issues: transformers import stubs shadowed the real package, and a reasoning-parser test omitted tokenizer. The two-file test-only fix now supplies vocab and only stubs absent transformers. Same installed runtime with fixed tests:135 passed; lean CPU:134 passed/1 skip; pre-commit passed. No runtime workaround added. The exact r9 image still needs its own final CI result.
  • Further full-tree source review covers20 additional recipe residuals and14 GPU test recipes/registrations. Native OPD recipe ownership Add on-policy distillation example (Qwen3-8B + Qwen3-32B vLLM teacher) #328 is now recorded in sync-skills f5e7385; inherited DeepEP-auto/model-semantics differences remain explicitly OPEN. Full-tree semantic audit is still in progress.

Earlier candidate — r8 / 02ae37ed (2026-09-09)

  • Experimental multiarch image: vllm/vime:pr410-closeout-r8-20260909, immutable digest sha256:9fa1604ae477567786ab71f63f3d8f472771f0db081c33fe4b8dfdeaf8993ff5.
  • Clean product SHA 02ae37ed627a8dd7bd409e166fb7c58febbeed0e and27 patched runtime files verified during both architecture builds; pinned vLLM base unchanged. latest remains sha256:5b48444d8e9962b5525ec11aaa012a75c5170544f4500d28451bc0b46a2f7728.
  • Full CI #1179 created against this older SHA/digest, all six GPU suites requested. Not final-r9 proof.

Latest audit follow-up — 8f9ad045 (2026-09-09)

  • Real loopback HTTP disconnect exposed a native adapter bug: handling ClientError also cancelled the caller, interrupting later cleanup. Removing three self-cancellation lines preserves context cleanup and the original exception, matching Slime's lack of caller self-cancellation.
  • Existing registered adapter/rollout tests now cover this failure, separate tokenless terminal events, and Slime's1/20/64 streaming intervals over65 tokens. Related CPU suites134 passed,1 skipped; pre-commit passed. Native origin [Sync][A] rollout data-model: micro-batch scheduling rollout-side + variable global batch + group_ids (slime #1926/#1930/#1933/#1941/#1959/#1965/#1969/#1984/#1962) #145 and the repair are recorded in sync-skills.
  • This follow-up and the Tau README fence repair are included in r8 and r9. CI1176/r7 results below do not certify the new SHA; CI1181 is the current gate.

Earlier validation — r7 (2026-09-09)

  • Product SHA: 51090be611dc796d9d22e43f35935c6693271103.
  • Experimental multiarch image: vllm/vime:pr410-closeout-r7-20260909, digest sha256:3acc3fd9c4b60f9d403d9a66784b51222f02923296733113aa9458d5ffe7b8bb.
  • Both architecture builds/pushes and clean-source hash checks passed. Same vLLM pin 6f7df92a8e6; latest untouched. Diagnostic actor code is excluded.
  • Full CI #1176 targets this exact SHA/digest and requests all six GPU suites. Scheduled/running is not a passing result.
  • Full-tree audit found Geo3K's native custom rollout discarded shared sampling-mask and per-turn metadata. It now uses the existing converter, retaining routing validation while removing duplicate decoding. Existing registered rollout test reproduces the missing mask before the fix;57 rollout/Sample CPU tests and pre-commit pass. Native provenance Add VLM Geo3k multiturn experiment #120/[Bugfix][Rollout] Fix Geo3K VLM multi-turn rollout #341/[Rollout] Add vLLM encoder-prefill disaggregation #370 is recorded in sync-skills facd6a1.
  • r6 first-step async KL failure remains recorded, not hidden: subsequent original-reuse capture passed; same frozen first batch with/without extra actor forward both yielded KL0.0. This does not establish why the uncaptured original batch failed. No extra forward or relaxed assertion was added to product code.
  • Final r7 installed-runtime SSE suite:17 passed, including tokenless terminal finish_reason, empty error events, usage and per-token mask chunks. Engine outputs are mocked fixtures; no runtime source replacement. Test-only virtualenv required tblib and pytest-asyncio before execution.
  • Fresh immutable r7 PD/DP2/abort revalidation passed on one exclusive GB200 node (Slurm24542), without runtime source replacement. Streaming/nonstreaming remote-KV wall waits were440.806/412.423ms; transfer-worker sums were62.495/63.826ms, with58,720,256 bytes each. These are distinct, non-additive boundaries. True DP ranks0/1 reported4+4 requests, then0+0 after the production Vime abort body drained pending work and performed two scans; HTTP pause/flush/resume passed. GenerateState and delayed pending work are injected, so this is not a full training run. Final whole-tree audit and full CI completion remain required.

Earlier validation — r6 (2026-09-09)

  • Code: 559c062cf8e2ce32c0c8b980649b1e6c1d89b6dc.
  • Experimental image: vllm/vime:pr410-closeout-r6-20260909; both architectures built, pushed, and source-hash checked.
  • Multiarch digest: sha256:14db1bbfed80519b50665bb72dd2ff697d7d2b0603ea7af0d070e8ab01662141.
  • Fixed engine pin: 6f7df92a8e6cdc74a725b8f10b4d0b48ba2b37ef; no base upgrade.
  • Final full CI pending local regression. CI #1165 is the older a23/r5 build, not r6 validation. Two short tests failed on the positive-top-k guard; automatic retries are not a fix. A GLM PD job was interrupted; its cancellation is not yet root-caused.
  • latest remains sha256:5b48444d8e9962b5525ec11aaa012a75c5170544f4500d28451bc0b46a2f7728.

New r6 changes and evidence

  • Preserve Slime's explicit special-token spacing; 47 affected CPU cases passed.
  • Remove both Vime and vLLM positive-top-k guards rather than changing the original short tests' top-p=0.95 sampling policy. The existing mask representation preserves full vocabulary support. GB200 r5 baseline top-k=-1 returned HTTP500; the same image with only the engine guard removed passed three seeds × 32 tokens, with exact stream/nonstream token and mask equality. This is a runtime-modified A/B, not an immutable r6 training result.
  • vLLM #55935 updated to ec646bac0e7, extending the existing TITO test to bounded/unbounded top-k; pre-commit passed. Vime argument tests:28 passed,2 dependency skips.
  • Fresh r6 original four-GPU synchronous GSM8K short passed:3 steps,1319-example evaluation (accuracy0.53677028), intentional engine fault injection/rebuild, and final weight reconnect. Train/rollout logprob absolute differences were0.00673161/0.00827847/0.00807286. No runtime source replacement.
  • Original r6 asynchronous short failed at first-step actor/ref KL:1.23146e-5 versus the1e-8 assertion. This is not a connection failure, and the assertion has not been relaxed. Diagnostic-only follow-up on successor single-node Slurm24542 confirms all284 actor/ref snapshot tensors are exactly equal; separately computed fixed-input logprobs are being collected to distinguish forward-mode differences. This modified diagnostic container is not immutable-image validation.
  • Latest productHEAD 458b341982a24b10c28b0f430b3b3431bacebbac restores an inherited SGLang numerical-provenance comment; r6 contains 559c062c. Final SHA/image/CI must be matched after closeout.
  • Correct false GLM validation claims and obsolete speculative config examples in both documentation languages, include PCP in worker GPU counts, remove a shell warning accidentally prefixed to G5 patch, and correct the customized CI suite count. Release check and9 docs-consistency tests pass.

Earlier fresh-r5 GB200 evidence (not final-r6 proof)

One exclusive Slurm node, job24460; Qwen3-0.6B, MRV2/eager, NIXL, P TP1 / D TP1 DP2. ARM index 73f2f0bfdaa8fae597a0851b259cb73d761855dd6d86476eae93775f7a0cba47; product and 26 runtime-file hashes verified, no runtime source replacement.

  • G5: actual streaming/nonstreaming P→D responses contain P/D initial queue, D post-receive queue, P/D allocation, P TTFT, remote wait, NIXL handshake/transfer/post worker time and bytes. Nonstream/stream remote wait424.10/406.61ms; transfer-worker sum55.077/58.897ms;58,720,256 bytes each. These are different boundaries, not additive wall-clock phases. Post-receive queue starts at scheduler promotion, not NIC completion. Both DP workers can require a cold handshake.
  • G9/full abort: true DP labels0/1, eight requests4+4 including remote-KV-waiting requests→0+0. Production Vime abort body cancels actual streams, drains delayed pending work, performs two scans, then HTTP pause/flush/resume succeeds. GenerateState/delayed pending are injected; not a full training run.
  • **SSE:**17 installed-runtime tests pass, including tokenless terminal finish_reason and empty error events (mock engine-output fixtures).
  • Fully-async root cause: earlier same-node original False/candidate True A/B identifies missing reset_running_requests=True as cache-reset timeout cause, not a connection-error guess. Candidate passed without blind retry; final r5 CI remains the gate.
  • Native-overlay audit fixes: frozen engines now use level1 sleep to preserve unreloaded weights (native GPU A/B and four dispatch cases); rank-local MoE IPC retains DSpark draft synchronization (35 affected CPU cases). Neither implies a new full MoE+DSpark GPU training proof.
  • G5 fork#29 now 2eabc9cebc4; G9 #55274 c3bb15984b8; SSE #55935.

Remaining

Audit also identified G12: runtime profiler step/stage/options are not equivalent to startup ProfilerConfig. The canonical ledger now records15 active capability gaps, including this historical omission; no claim that passing PD tests closes it.
Final r7 full CI and complete fixed-cutoff/native-overlay per-file audit. No claim of complete GLM numerical parity. Historical independent video/OPD findings remain recorded, not silently folded into this change. G8.6 is native completion fencing, not a missing feature. Canonical gap ledger and native ownership records updated through facd6a1; completed sync cutoff remains unchanged.

Historical implementation and validation notes (older candidates; not r5 gates)

Current candidate: G5 handshake and allocation (2026-09-09)

  • Code: ba6434eeedb11518dcfa58e358490b50c694662b.
  • Experimental image: vllm/vime:pr410-closeout-r3-20260909, multiarch digest sha256:2e65d368b55cc78fc375027cf268bbdcaa188ad5d8213f2452fd7cbca9d44e65 (amd64 + arm64).
  • Full CI: https://buildkite.com/vllm/vime-ci/builds/1157 — queued, not yet green. latest remains sha256:5b48444d8e9962b5525ec11aaa012a75c5170544f4500d28451bc0b46a2f7728.
  • G5 fork PR29 now includes 0819643d546: allocation wall wait is measured separately from remote-KV wait and summed worker handshake/transfer time. Allocation begins at the first attempt and includes capacity retries, not all pre-admission scheduling delay.
  • Single GB200 Slurm node, P TP1 / D TP2, actual streaming/nonstreaming response propagation PASS. Allocation 0.077/0.044 ms, remote wait 488.614/5.788 ms; handshake worker sum 722.397/0 ms; transfer worker sum 173.747/7.084 ms. Both transfer 58,720,256 bytes. Worker sums are not wall-time spans. Live traffic did not induce capacity pressure; a separate scheduler capacity-retry test passed.
  • Full upstream pre-commit, product pre-commit and patch application checks passed. Final published-image validation, final full CI and whole-tree semantic audit remain open. The historical entries below are not evidence that these final gates passed.

Closeout candidate — 2026-09-09

Current code: 2b842a87c4581913a1bbf803149e76fb455a2893.
Experimental image: vllm/vime:pr410-closeout-r2-20260909, immutable digest
sha256:b0b3b03dbb34ed937b4cec067727c5e98e87825098ff3896efc981b73d9c8d0c.
The vLLM pin stays 6f7df92a8e6cdc74a725b8f10b4d0b48ba2b37ef; latest is untouched.

Full CI #1153 targets this exact code and image with all six GPU suites. Not yet green. #1151 tests the preceding candidate; it cannot certify this revision.

Patch Owner / purpose
vllm-pull_weights.patch fork #45, host-local checkpoint pull; separate from native sparse-loading primitives
vllm.patch Existing Vime engine adapters plus #55935 streaming masks and empty-terminal finish_reason fix (5af75ca27fb)
vllm-pd-request-metrics.patch fork #29, 3deba9eff34: request-bound NIXL telemetry, remote wait, P→D timing propagation, stream/non-stream responses
vllm-inflight-queue-diagnostics.patch #55274, c3bb15984b8: use real data_parallel_index, not dense model's reset computational rank

Verified results and scope

  • One exclusive Slurm GB200 node (job24460), Qwen3-0.6B, NIXL P TP1 / D DP2 TP1, eager MRV2.
  • Published first closeout ARM image: streaming and non-streaming P→D→response metrics passed. Remote wait was 485.738 / 457.252 ms; completed-transfer worker telemetry 64.047 / 62.764 ms; 58,720,256 bytes each. P-local queue and TTFT were preserved. These are observed samples, not a performance A/B or TP scaling benchmark.
  • Worker time is cumulative across handles/workers, not wall-clock transfer latency. r2 fixes the receiver so this is an independent metric, never a fabricated request timeline span. Post durations can overlap transfer duration; these metrics must not be summed with remote wait.
  • Full production Vime abort body + real HTTP: cancels streams, drains pending work, performs two scans, then pause/flush/resume. Real DP0/DP1 queues empty afterward. The harness injects GenerateState and a delayed pending task; it is not a complete rollout-training run.
  • Original fully-async test on four GB200 GPUs: candidate reset_running_requests=True passed; same-machine original False failed with cache-flush TimeoutError. Requests are requeued/recomputed, not aborted. No blind retry used to establish this A/B.
  • Pinned ARM streaming tests:17 passed; focused aggregation test passed. Vime117 focused tests passed before r2; r2's48 affected tests and pre-commit passed. Upstream G5 pre-commit includes mypy and Rust formatting.
  • Two final-image harness corrections are not hidden: missing dev-mode caused abort endpoint404; an early client started before health readiness and got connection errors. With matching dev-mode/MRV2 and all three health endpoints ready, abort passed.

Remaining / audit status

G8.6 was misattributed: IPC completion fencing is native, not an extra missing feature; the ledger counts14 active capability gaps. Remaining applicable G5 stage breakdown and real TP aggregation coverage are still under review. Final per-file audit and CI completion remain required; this description does not claim complete Slime/SGLang feature parity.

Canonical records: feature-gap ledger, sync ledger, Vime-native stack, updated in 1e3d65b. Completed sync cutoff is unchanged.

The sections below describe earlier revisions and their historical test scope.


Streaming-mask follow-up (2026-09-08)

  • Engine PR: vLLM #55935 (draft, main-based; human review/native-main CI pending).
  • Backport: 6fc5fd77395feeda60b0909b70a08e1b376b7bc0, integrated into docker/patch/latest/vllm.patch; vLLM pin remains 6f7df92a8e6.
  • Actual AMD64 and ARM64 container A/B: baseline 6 failed / 9 passed → candidate 15 passed on each architecture.
  • Real GB200 Qwen3-0.6B, MRV2/TP1/eager/sleep enabled, top-k16/top-p0.9, processed logprobs: seeds17/42/123 ×32tokens, streaming/non-streaming token IDs and masks exactly match. The same unpatched-server smoke fails because SSE returns sampling_mask: null.
  • Experimental multiarch image: vllm/vime:pr410-stream-mask-20260908, digest sha256:6ed5f4cfcb90fe0b98523fa7e4394b19c3a73b6b33bc1909652ab17524629a8e. Both architecture configs identify source 6fc5fd77 and unchanged engine pin. No latest update.
  • Candidate CI #1149 explicitly uses that digest through VIME_CI_IMAGE; all six GPU suites requested. Scheduled/running is not a passing result. Other automatic builds using the default image are not evidence for this patch.
  • PD/model semantics are being checked separately; native cleanup hooks are present, but that alone does not certify multi-frontend drain or deterministic model alignment. Detailed GPU/PD results will be appended once complete.

Latest-200 audit update — 6e07971d

Expanded to 200 merged Slime PRs + four direct fixes (2091f7af^..4c193f1f), covering 502 historical paths plus 83 final embedded SGLang patch targets. The earlier unchanged-divergence inventory is not a semantic sign-off; this deeper review found additional omissions.

Area Confirmed correction
Cache lifecycle Retry HTTP-200 cache-reset responses with success=false; preserve source backoff/timeout.
Disk weight version A disk-only pull no longer publishes the future model version while old-weight generation continues; publish after successful reload.
Streaming / observability Preserve received masks on cancellation, trace actual TITO request/usage fields including usage-only chunks, and use the real speculative-config argument.
Replay safety Restore Slime #2167's mandatory mask validation for top_p < 1; do not silently train without masks.
Agent contracts Restore shared rollout IDs at all four multi-agent exits and preserve supported sampling defaults, including zero/false values.
Router / external engines Preserve explicit log-level overrides and identify native EC encoder-only workers.
Training Fix four obsolete batch-invariant imports; remove upstream-deleted gated-attention registration.
Scripts / build / CI Fix DeepSeek JSON/NVSHMEM, invalid attention backend names, optional TMS CUDA-major input, and six upstream eval-disable job settings.
Documentation Restore portable root deployment/correctness navigation, agent toctrees, current Buildkite registration guidance and clean per-target patch validation; preserve source attribution.

Validation: 229 passed, 3 skipped in isolated local CPU groups; changed-file pre-commit and whitespace checks passed. Skips require a real vLLM installation. A combined run exposed pre-existing test-stub pollution in two CLI tests; these run separately rather than adding environment workarounds. No new product test files, GPU/full-CI result, image rebuild, image push, or release claim. The image pin and published tags remain unchanged.

Still open — do not read this as complete engine parity:

  • G11: pinned and latest vLLM lack token-aligned sampling masks through DELTA output → collector aggregation → TITO SSE. A local candidate exists, but is not installed in the image and has no PR yet; mock/source-extracted tests do not prove engine support.
  • DeepEP automatic phase switching, scheduler watchdog equivalence, and existing G4/G5/G6/G7/G8 limitations need separate capability work.
  • The old speculative-count translation was also wrong: SGLang D includes a verify root; vLLM K counts proposals. In the verified single-chain path K=D-1=num_steps preserves depth. Tree budgets and recipe tuning are not automatically changed.
  • Additional source review covers #1945/#2072/#2169/#2228 historical patch migrations/deletions. PD profiling moved to a fork router (still G5/G6); obsolete queue detail was replaced, not simply absorbed; final-prefill cancellation cleanup was genuinely dropped upstream. Source-history proof does not close connector/model/hardware validation.
  • Native pause provides real execution/connector barriers, but keep+flush need not empty waiting requests. No default closed-loop training failure is claimed without a reachable late-admission scenario.

The sync-skills translation table has been corrected for actual EP group size (DP × PCP × TP), the obsolete universal single-node rule, TITO fields and the inactive legacy watchdog env. No product parallel layout was changed. Signed Qwen3-Omni/DSpark overlays and exclusions remain intact; completed sync cutoff is not advanced.


Summary

Sync the portable parts of THUDM/slime#2272 into Vime:

  • let custom generators declare abort_mode = "request"
  • cancel request-scoped streaming tasks without aborting unrelated vLLM requests
  • retain Vime's existing server-wide /abort_requests path and periodic re-sweep for non-streaming generators
  • fail closed when a vLLM SSE stream ends without a terminal finish_reason
  • recycle only aborted partial groups that contain a non-empty generated prefix

The Vime-native VIME_CI_IMAGE Buildkite change has been split into #411.

Per-file disposition

Slime change Vime treatment
slime/rollout/sglang_rollout.py Port cancellation lifecycle to vllm_rollout.py; retain Vime #296's vLLM server-abort re-sweep for non-request generators.
slime/rollout/sglang_streaming_rollout.py Mark the existing vLLM SSE generator request-abortable and fail closed on unexpected EOF.
slime/rollout/streaming_utils.py Not copied: it normalizes cumulative/incremental SGLang chunks; vLLM already emits incremental token/logprob deltas.
slime/utils/arguments.py Port only the public abort_mode contract; omit the SGLang incremental-output flag.
tests/test_streaming_rollout.py Map portable coverage into existing tests/test_vllm_rollout.py, without adding a parallel SGLang-shaped test module.
plugin generate contract fixture Port the two new GenerateState lifecycle fields.
GitHub workflow/template No file port: the mapped Vime tests are already registered in Buildkite's synchronized CPU suite.
THUDM/slime#2340 agent adapter hunk Native-equivalent translation: cancelling Vime's router request closes the selected worker request, which cancels the vLLM engine request; the source comment now states this exact behavior.

Upstream window

  • previous cutoff: 3778dbf6d1a533ab478ecf5ddaa11449a47752b2
  • audited Slime tip: 4c193f1f37509cca70f0e88807a9305b70f63f4e
  • included: #2272
  • reviewed as native-equivalent: #2340

Historical full-repository alignment audit (before the latest-100 catch-up)

Compared the complete PR candidate with the mechanical Slime 4c193f1f mirror, then compared every per-file divergence with the previous #2334/#402 pair:

  • 658 paths in the candidate/mirror union; all classified
  • 572 Vime files and 608 mechanical-mirror files
  • 269 files byte-for-byte identical
  • 372 divergences unchanged from the previous audited round
  • 17 paths manually re-audited, covering all 16 actually new or changed divergences plus the touched plugin contract
  • source comments/prose and all newly introduced provenance-sensitive terms were included in the hunk review

Earlier validation (not the final catch-up commit)

  • synchronized rollout/plugin tests — 43 passed
  • G5 engine-argument, trace-normalization, and real default-generate response regression — 107 passed
  • targeted pre-commit, source whitespace checks, and patch-format/application checks — passed
  • historical full matrix before the engine-patch follow-up: Buildkite #112246/46 jobs passed

Engine feature-gap patches

  • vllm-pull_weights.patch: G1 host-local full/delta checkpoint pull.
  • vllm.patch: G2/G3 TITO speculative statistics and request-bound weight version, plus the Qwen3-Omni TP fix still missing from the fixed vLLM pin.
  • vllm-pd-request-metrics.patch: implemented G5 subset exposing per-request remote-KV wait time; Vime enables native per-request metrics and normalizes the response into the existing trace/rollout metric schema. The full Slime phase breakdown remains tracked.
  • vllm-inflight-queue-diagnostics.patch: G9 bounded per-DP-rank in-flight queue diagnostics (vLLM #55274).
  • Docker applies the four patches independently and in dependency order. This Slime window did not update its engine image, so Vime retains the previous fixed vLLM base and its still-required Qwen3-Omni TP fix.

Additional validation:

  • sequential application of all four patches against fixed vLLM 6f7df92a8e6cdc74a725b8f10b4d0b48ba2b37efpassed
  • focused G1/G5/G9 patch regression — 9 passed

Release tooling catch-up

Per-PR omission re-audit

Rechecked the 22 merged Slime PRs in 41014d1f..4c193f1f, including the previous #402 window. The release tooling was explicitly excluded in the old sync ledger together with SGLang/conda-specific artifacts. The generic tools should have been translated separately. This PR restores them, including Slime's date-tag format validation. Existing engine feature gaps remain tracked separately.

Slime PR Re-audit result
#2286 SGLang older-version alias and router compatibility only; Vime retains its pinned vLLM API. No old-SGLang fallback copied.
#2216 Backend-neutral accelerator modules and call-site changes are present; environment names are translated. SGLang transport internals, NPU image patches and GitHub workflows retain platform-specific dispositions; CPU accelerator coverage is registered in Buildkite.
#2294 ring_flash_attn dependency removed; layer comparator moved into tests. Historical Vime alignment-test differences retained.
#2296 Eval-only optimizer/scheduler construction changes present in checkpoint/model code.
#2114 Raw PPO KL preservation, loss call sites and test_ppo_kl_metric.py present; test registered in Buildkite.
#2085 Teacher rollout temperature applied through the vLLM teacher-scoring contract.
#2297 Non-positive rollout-temperature validation and test present.
#2298 Observability moves, new rollout/train helpers and import rewrites present. Final profile_utils.py matches translated Slime; intermediate additions removed by later upstream commits are not omissions. vLLM metric field mappings retain documented engine gaps.
#2312 Stale delta+NCCL recommendation removed in both external-engine documents.
#2316 Obsolete Megatron memory patch and package removed; corresponding test updated.
#2317 Test cleanup and additions mapped to Buildkite CPU/utils/agent suites. The expanded audit additionally restores the missing NUM_GPUS = 0 declaration in test_megatron_role_config.py.
#2318 fanout_test_helpers moved to tests; runtime import/counter environment translated.
#2320 Dead branches and iterator base removed. Vime-specific IPC/NCCL and DSpark adapters preserved; no removed paths remain.
#2321 create_weight_updater extraction and test_update_weight_factory.py present; test registered in Buildkite.
#2322 rollout_validation module/tests removed; placement validation owned by engine_group after #2323.
#2323 deployment/disaggregation/engine_group split present. Router ports, vLLM worker lifecycle and PD wiring use existing Vime equivalents.
#2326 README reading paths updated. Existing Vime CONTRIBUTING ownership retained rather than importing Slime/Z.ai claims.
#2327 UE8M0 force flag, quantizer and converter changes present.
#2330 Documentation path/anchor/example fixes and test_docs_consistency.py present; the expanded audit additionally fixes the delta example link and CLI flag. Search-R1 remains excluded by user instruction; Buildkite docs and Docker README retain Vime policy.
#2334 Confirmed erroneous exclusion: release skill/checker omitted alongside engine-specific files. Both are now restored in #410. Restore upstream date-tag format validation as well. build_conda/NPU/versioned SGLang patches remain intentionally excluded; package/docs are already 0.3.2.
#2272 Request-scoped streaming cancellation and partial-sample behavior translated into existing vLLM rollout files/tests. SGLang cumulative-stream accumulator is protocol-specific and not copied.
#2340 Router-to-worker cancellation represented by closing the selected vLLM router request; existing #410 behavior evidence retained.

Latest-100 Slime PR omission audit — 638758e3

Expanded beyond the previous 22-PR review to 243773cf^..4c193f1f: 100 PRs + 4 direct fixes, 398 historical changed paths. Reviewed surviving behavior as well as later upstream deletions and signed Vime-native overlays. The prior unchanged-divergence check was insufficient: configuration fields could exist yet be dropped at the outgoing request boundary.

Source Catch-up in this PR
#2242 / #2005 Preserve min_new_tokensmin_tokens and repetition_penalty in ordinary rollout and agent adapter requests.
#2108 Pass multi-agent response metadata into Sample.append_response_tokens; reuse the existing vLLM metadata parser instead of duplicating it.
#2272 Budget partial streaming continuation using sample.response_length, not decoded text or re-tokenized prompts. Add portable cancellation, preserved-prefix, unrelated cancellation, mixed-group resume and metadata regressions to the existing test file.
#2257 Quote the modelopt >=0.37.0 requirement so the shell cannot interpret it as output redirection.
#2181 / #2330 Correct the delta example's pre-read CLI flag and documentation link.
#2317 / #2180 Restore CPU test GPU-count metadata and exact release-train comment wording.
#2334 Release skill/checker omission already restored by the earlier commits in this PR.

Validation for this catch-up:

  • rollout + plugin contracts: 48 passed;
  • evaluation config + docs consistency: 9 passed;
  • real-HTTP agent adapter suite: 14 passed, 1 skipped;
  • all changed-file pre-commit hooks and git diff --check: passed;
  • the standalone Megatron-role suite is not claimed fully validated here: local venv lacks vLLM/Ray; with the existing CLI stub harness, five cases pass and the placement-group case cannot import ray.util. No extra environment-adaptation code was added;
  • no GPU E2E or Docker build/push is claimed for this commit. The vLLM pin and published image tags are unchanged.

Known engine gaps (G4/G6/G7/G8 and the remaining G5 phase breakdown) remain open in the sync-skills ledger. The unsupported GLM deterministic GPU tests are not registered as supposedly passing CI. User-excluded retool/search-r1, conda/NPU/old SGLang patches and signed Qwen3-Omni/DSpark overlays keep their explicit dispositions.

@read-the-docs-community

read-the-docs-community Bot commented Sep 4, 2026

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a request-level abort mechanism for vLLM streaming rollouts, allowing individual active HTTP streams to be cancelled instead of aborting all in-flight requests on the server. It also adds a check to raise a RuntimeError if a streaming response ends without a terminal finish reason, along with corresponding unit tests. The review feedback highlights two critical issues where AttributeErrors could be raised when using custom generators that return lists of samples: first, in _run_request_abortable_generate when setting the abort status, and second, in the abort function when processing and updating metadata on nested sample groups. Both issues can be resolved by explicitly checking for and handling list types.

Comment on lines +471 to +487
async def _run_request_abortable_generate(
state: GenerateState,
sample: Sample,
generate_call: Awaitable[Sample | list[Sample]],
) -> Sample | list[Sample]:
task = asyncio.current_task()
assert task is not None
state.cancellable_tasks.add(task)
try:
return await generate_call
except asyncio.CancelledError:
if task in state.cancellable_tasks:
raise
sample.status = Sample.Status.ABORTED
return sample
finally:
state.cancellable_tasks.discard(task)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

In _run_request_abortable_generate, the sample parameter can be either a single Sample or a list[Sample] (e.g., when using custom generators that return multiple samples, such as multi-turn agent rollouts). If sample is a list, attempting to set sample.status = Sample.Status.ABORTED will raise an AttributeError. We should check if sample is a list and update the status of each sample accordingly.

async def _run_request_abortable_generate(
    state: GenerateState,
    sample: Sample | list[Sample],
    generate_call: Awaitable[Sample | list[Sample]],
) -> Sample | list[Sample]:
    task = asyncio.current_task()
    assert task is not None
    state.cancellable_tasks.add(task)
    try:
        return await generate_call
    except asyncio.CancelledError:
        if task in state.cancellable_tasks:
            raise
        if isinstance(sample, list):
            for s in sample:
                s.status = Sample.Status.ABORTED
        else:
            sample.status = Sample.Status.ABORTED
        return sample
    finally:
        state.cancellable_tasks.discard(task)

Comment on lines 667 to 672
group = task.result()
if not any(sample.status == Sample.Status.ABORTED and sample.response_length > 0 for sample in group):
continue
for sample in group:
if sample.response and "start_rollout_id" not in sample.metadata:
sample.metadata["start_rollout_id"] = rollout_id

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

In the abort function, group is obtained from task.result(), which can be a list[Sample | list[Sample]] when custom generators return multiple samples. If any item in group is a list, accessing sample.status, sample.response_length, sample.response, or sample.metadata directly will raise an AttributeError. We should flatten the group first to safely perform these checks and metadata updates.

            group = task.result()
            flat_group = []
            for item in group:
                if isinstance(item, list):
                    flat_group.extend(item)
                else:
                    flat_group.append(item)
            if not any(sample.status == Sample.Status.ABORTED and sample.response_length > 0 for sample in flat_group):
                continue
            for sample in flat_group:
                if sample.response and \"start_rollout_id\" not in sample.metadata:
                    sample.metadata[\"start_rollout_id\"] = rollout_id

@aoshen02
aoshen02 force-pushed the codex/slime-2340-sync branch 3 times, most recently from 7c839dd to cf4de1f Compare September 4, 2026 07:54
@aoshen02

aoshen02 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Added the Vime translation of Slime #2334 release tooling in c852b3d.

  • Adds .claude/skills/release/SKILL.md and its checker at the same paths used by Slime.
  • Translates SGLang/conda-specific checks into Vime package/docs, pinned base-image, and complete Docker patch COPY/apply validation.
  • Leaves docker/README.md and docker/justfile unchanged; Vime-native candidate-image selection remains isolated in [CI] Allow testing candidate Vime images #411.

Validated with the positive release check, a negative COPY-without-apply fixture, py_compile, pre-commit, and git diff --check.

@aoshen02
aoshen02 force-pushed the codex/slime-2340-sync branch 3 times, most recently from 15b611f to c852b3d Compare September 8, 2026 00:42
@aoshen02

aoshen02 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

PR-by-PR omission re-audit

Scope: Slime 41014d1f..4c193f1f, 22 first-parent merged PRs: previous #402 window (20) and current #410 window (2). Candidate before this follow-up: c852b3d3. This is a source/disposition audit, not a new GPU validation claim.

Root cause: sync-ledger explicitly excluded #2334 release tooling together with build_conda and versioned SGLang patches. This was an overbroad exclusion, not a lost Git merge. The candidate now carries the two release-tool files; this follow-up restores the upstream date-format check. Existing feature-gap ledger items remain open and are not declared implemented by this audit.

Method: enumerate every PR and changed path including renames/deletions; compare final translated upstream content with candidate; check missing additions against subsequent upstream edits and signed Vime overlays; verify deleted paths and Buildkite test registration. Literal differences alone are not omissions.

Slime #2286

SGLang older-version alias and router compatibility only; Vime retains its pinned vLLM API. No old-SGLang fallback copied.

Upstream commit: 1494c50069a3cdef24aaf5f8b94c1eb378c72e2c.

M	slime/backends/sglang_utils/arguments.py
M	slime/ray/rollout.py

Slime #2216

Backend-neutral accelerator modules and call-site changes are present; environment names are translated. SGLang transport internals, NPU image patches and GitHub workflows retain platform-specific dispositions; CPU accelerator coverage is registered in Buildkite.

Upstream commit: e593fa0a02135d79848c08dcf96d25eb20227c18.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	slime/backends/megatron_utils/__init__.py
M	slime/backends/megatron_utils/actor.py
M	slime/backends/megatron_utils/data.py
M	slime/backends/megatron_utils/hf_checkpoint_saver.py
M	slime/backends/megatron_utils/megatron_to_hf/processors/quantizer_compressed_tensors.py
M	slime/backends/megatron_utils/server/logprob_utils.py
M	slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
M	slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
M	slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
M	slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
M	slime/backends/sglang_utils/__init__.py
M	slime/backends/sglang_utils/sglang_engine.py
M	slime/ray/rollout.py
M	slime/ray/train_actor.py
M	slime/ray/utils.py
A	slime/utils/accelerator/__init__.py
A	slime/utils/accelerator/base.py
A	slime/utils/accelerator/cuda.py
A	slime/utils/accelerator/musa.py
A	slime/utils/accelerator/torch_accelerator.py
M	slime/utils/memory_utils.py
M	slime/utils/profile_utils.py
M	slime/utils/reloadable_process_group.py
M	slime/utils/routing_replay.py
M	slime/utils/tensor_backper.py
M	slime_plugins/models/flash_dot_product_attention.py
M	slime_plugins/models/qwen3_5.py
M	slime_plugins/models/qwen3_5_vl.py
M	slime_plugins/models/qwen3_next.py
A	tests/test_accelerator.py
M	tests/test_empty_colocated_weight_bucket.py
M	tests/test_reloadable_process_group_world.py
M	tools/convert_hf_to_fp8.py
M	tools/convert_hf_to_int4_direct.py
M	tools/convert_hf_to_torch_dist.py
M	tools/convert_to_hf.py
M	tools/fp8_cast_bf16.py

Slime #2294

ring_flash_attn dependency removed; layer comparator moved into tests. Historical Vime alignment-test differences retained.

Upstream commit: 8f20503f19651e541c55c6614622d2b50dd2034b.

M	requirements.txt
R099	slime/utils/compare_glm52_layerwise.py	tests/glm52_layerwise_comparator.py
M	tests/test_glm52_6layer_deterministic_e2e.py
M	tests/test_glm52_layerwise_comparison.py

Slime #2296

Eval-only optimizer/scheduler construction changes present in checkpoint/model code.

Upstream commit: a0d6d26a2c61d1db2d3a0da8901d76636ed42df3.

M	slime/backends/megatron_utils/model.py
M	slime/ray/placement_group.py

Slime #2114

Raw PPO KL preservation, loss call sites and test_ppo_kl_metric.py present; test registered in Buildkite.

Upstream commit: 045310b2b490dc6ca22ddbc60cf29b21fc3b42aa.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	slime/backends/megatron_utils/loss.py
A	tests/test_ppo_kl_metric.py

Slime #2085

Teacher rollout temperature applied through the vLLM teacher-scoring contract.

Upstream commit: 1da1bb19e96adb1be4ff4b40d08a23b4b6ce3692.

M	slime/rollout/on_policy_distillation.py

Slime #2297

Non-positive rollout-temperature validation and test present.

Upstream commit: 16c15fc2068db1f73313f63f0d3c90e762b025d2.

M	slime/utils/arguments.py
M	tests/test_megatron_argument_validation.py

Slime #2298

Observability moves, new rollout/train helpers and import rewrites present. Final profile_utils.py matches translated Slime; intermediate additions removed by later upstream commits are not omissions. vLLM metric field mappings retain documented engine gaps.

Upstream commit: 624b824a898ab0ec1fcb4d373004c7f3852bf515.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	docker/NOTES_GB10.md
M	docker/npu_patch/slime.patch
M	docs/en/developer_guide/trace.md
M	docs/en/get_started/customization.md
M	docs/zh/developer_guide/trace.md
M	docs/zh/get_started/customization.md
M	slime/backends/megatron_utils/actor.py
M	slime/backends/megatron_utils/cp_utils.py
M	slime/backends/megatron_utils/data.py
M	slime/backends/megatron_utils/model.py
A	slime/observability/__init__.py
R091	slime/utils/logging_utils.py	slime/observability/logging_utils.py
R100	slime/utils/metric_utils.py	slime/observability/metric_utils.py
R100	slime/utils/profile_utils.py	slime/observability/profile_utils.py
A	slime/observability/rollout_data_utils.py
A	slime/observability/rollout_metrics.py
R096	slime/utils/tensorboard_utils.py	slime/observability/tensorboard_utils.py
R098	slime/utils/timer.py	slime/observability/timer.py
R100	slime/utils/trace_utils.py	slime/observability/trace_utils.py
R100	slime/backends/megatron_utils/train_dump_utils.py	slime/observability/train_data_utils.py
A	slime/observability/train_metric_utils.py
R100	slime/utils/wandb_utils.py	slime/observability/wandb_utils.py
M	slime/ray/rollout.py
M	slime/ray/train_actor.py
M	slime/rollout/_fanout_test_helpers.py
M	slime/rollout/sglang_rollout.py
M	slime/rollout/sglang_streaming_rollout.py
M	slime/utils/arguments.py
M	slime/utils/data.py
D	slime/utils/train_metric_utils.py
M	slime_plugins/rollout_buffer/rollout_buffer_example.py
M	tests/_cp_dist_helpers.py
R093	tests/utils/test_trace_utils.py	tests/observability/test_trace_utils.py
M	tests/plugin_contracts/test_plugin_runtime_hook_contracts.py
M	tests/test_megatron_argument_validation.py
M	tests/test_metric_report.py
M	tests/test_metric_report_dist.py
M	tests/test_qwen2.5_0.5B_fanout_short.py
A	tests/test_rollout_data_utils.py
M	tests/test_rollout_metrics.py
D	tests/test_rollout_routing_replay_validation.py
R099	tests/test_train_dump.py	tests/test_train_data_utils.py
M	tools/convert_hf_to_torch_dist.py
M	train.py
M	train_async.py

Slime #2312

Stale delta+NCCL recommendation removed in both external-engine documents.

Upstream commit: 1a3fb0a6c9eeacf41a3a6b3603f4320d6760eed0.

M	docs/en/advanced/external-rollout-engines.md
M	docs/zh/advanced/external-rollout-engines.md

Slime #2316

Obsolete Megatron memory patch and package removed; corresponding test updated.

Upstream commit: c403335dd36ffc76a2c2c99bdb9cf7c95ae1eb9b.

M	slime/backends/megatron_utils/__init__.py
D	slime/backends/megatron_utils/megatron_patch/__init__.py
D	slime/backends/megatron_utils/megatron_patch/megatron_chunked_grad_coalesce_patch.py
M	tests/test_deep_ep_tms_patch.py

Slime #2317

Test cleanup and additions mapped to Buildkite CPU/utils/agent suites. No removed upstream test paths remain.

Upstream commit: a37dd90b60350a8d13561ef7e2647d0f20508756.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	tests/test_advantage_whiten_cp.py
M	tests/test_agent/test_sandbox_exec_and_wait.py
M	tests/test_block_fp8_zero_block.py
D	tests/test_chunked_gae.py
D	tests/test_deepgemm_forward.py
D	tests/test_deepgemm_moe_forward.py
M	tests/test_eval_config.py
M	tests/test_filter_long_prompt.py
M	tests/test_fully_async_rollout.py
D	tests/test_gspo.sh
M	tests/test_loss_cp_invariance.py
M	tests/test_ppo_kl_metric.py
M	tests/test_process_rollout_data.py
D	tests/test_qwen2.5_0.5B_async_short.py
M	tests/test_qwen2.5_0.5B_fully_async_short.py
D	tests/test_qwen2.5_0.5B_short.py
M	tests/test_qwen3_linear_attention_cu_seqlens.py
M	tests/test_read_file_slicing.py
M	tests/test_reloadable_process_group_memory_check.py
M	tests/test_tau_bench_token_delta.py
M	tests/utils/test_loss_mask_type_qwen35.py
D	tests/utils/test_mask_utils.py
M	tests/utils/test_megatron_role_config.py
M	tests/utils/test_sglang_config.py

Slime #2318

fanout_test_helpers moved to tests; runtime import/counter environment translated.

Upstream commit: d8ad1b574a5b2aa1d07a0fabebb0ba92d23f7681.

R089	slime/rollout/_fanout_test_helpers.py	tests/fanout_test_helpers.py
M	tests/test_qwen2.5_0.5B_fanout_short.py

Slime #2320

Dead branches and iterator base removed. Vime-specific IPC/NCCL and DSpark adapters preserved; no removed paths remain.

Upstream commit: 7fc5715c576fd7078bda9d812215fed85ea3fdb9.

M	docs/en/get_started/usage.md
M	docs/zh/get_started/usage.md
M	slime/backends/megatron_utils/actor.py
M	slime/backends/megatron_utils/checkpoint.py
M	slime/backends/megatron_utils/hf_checkpoint_saver.py
M	slime/backends/megatron_utils/loss.py
M	slime/backends/megatron_utils/megatron_to_hf/__init__.py
M	slime/backends/megatron_utils/model.py
M	slime/backends/megatron_utils/update_weight/common.py
D	slime/backends/megatron_utils/update_weight/hf_weight_iterator_base.py
M	slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
M	slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
M	slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
M	slime/observability/profile_utils.py
M	slime/observability/rollout_metrics.py
M	slime/observability/trace_utils.py
M	slime/ray/actor_group.py
M	slime/ray/train_actor.py
M	slime/utils/arguments.py
M	slime/utils/data.py
M	slime/utils/flops_utils.py
M	slime/utils/health_monitor.py
M	slime/utils/http_utils.py
M	slime/utils/misc.py
M	slime/utils/ppo_utils.py
M	slime/utils/seqlen_balancing.py
M	slime/utils/tensor_backper.py
M	tests/test_empty_colocated_weight_bucket.py
M	tests/test_megatron_argument_validation.py
M	tests/test_process_rollout_data.py
M	tests/test_rollout_metrics.py
M	tests/utils/test_hf_checkpoint_saver.py

Slime #2321

create_weight_updater extraction and test_update_weight_factory.py present; test registered in Buildkite.

Upstream commit: 7e4ac3be9b9c4dea6c2e5b0718a5475bfdc6fa68.

M	slime/backends/megatron_utils/actor.py
M	slime/backends/megatron_utils/update_weight/__init__.py
A	tests/test_update_weight_factory.py

Slime #2322

rollout_validation module/tests removed; placement validation owned by engine_group after #2323.

Upstream commit: daebd20bdcf56cd36277d99099f49f88c4afe2b5.

M	slime/ray/rollout.py
D	slime/ray/rollout_validation.py
D	tests/test_rollout_validation.py

Slime #2323

deployment/disaggregation/engine_group split present. Router ports, vLLM worker lifecycle and PD wiring use existing Vime equivalents.

Upstream commit: d8ff51c4852695b799870d0845ea2d9b4d1bcc4b.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
A	slime/backends/sglang_utils/deployment.py
A	slime/backends/sglang_utils/disaggregation.py
A	slime/backends/sglang_utils/engine_group.py
M	slime/backends/sglang_utils/sglang_config.py
M	slime/ray/rollout.py
M	tests/utils/test_sglang_config.py

Slime #2326

README reading paths updated. Existing Vime CONTRIBUTING ownership retained rather than importing Slime/Z.ai claims.

Upstream commit: a067ce6face6dfee297f219c470c406b8a5025f1.

M	CONTRIBUTING.md
M	README.md
M	README_zh.md

Slime #2327

UE8M0 force flag, quantizer and converter changes present.

Upstream commit: 08160d3f7ca95ab31947768f16e422225c2b3a8a.

M	slime/backends/megatron_utils/megatron_to_hf/processors/quantizer_fp8.py
M	slime/utils/arguments.py
M	tests/test_megatron_argument_validation.py

Slime #2330

Documentation path/anchor/example fixes and test_docs_consistency.py present. Search-R1 remains excluded by user instruction; Buildkite docs and Docker README retain Vime policy.

Upstream commit: a3f500977f33b82de6ac0414c0c43abfe656c3e0.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	README.md
M	README_zh.md
M	docker/README.md
M	docs/conf.py
M	docs/en/advanced/megatron-config.md
M	docs/en/advanced/reproducibility.md
M	docs/en/developer_guide/ci.md
M	docs/en/examples/glm4.7-30B-A3B.md
M	docs/en/examples/qwen3-4b-base-openhermes.md
M	docs/en/get_started/customization.md
M	docs/en/get_started/usage.md
M	docs/zh/advanced/megatron-config.md
M	docs/zh/advanced/reproducibility.md
M	docs/zh/developer_guide/ci.md
M	docs/zh/examples/glm4-9B.md
M	docs/zh/examples/glm4.7-30B-A3B.md
M	docs/zh/examples/qwen3-4b-base-openhermes.md
M	docs/zh/examples/qwen3-next-80B-A3B.md
M	docs/zh/get_started/customization.md
M	docs/zh/get_started/usage.md
M	examples/README.md
M	examples/delta_weight_sync/README.md
M	slime/utils/arguments.py
A	tests/test_docs_consistency.py

Slime #2334

Confirmed erroneous exclusion: release skill/checker omitted alongside engine-specific files. Both are now restored in #410. Restore upstream date-tag format validation as well. build_conda/NPU/versioned SGLang patches remain intentionally excluded; package/docs are already 0.3.2.

Upstream commit: 3778dbf6d1a533ab478ecf5ddaa11449a47752b2.

A	.claude/skills/release/SKILL.md
A	.claude/skills/release/scripts/check_release.py
M	build_conda.sh
A	docker/patch/v0.5.15.post1/megatron-sglang-aligned.patch
A	docker/patch/v0.5.15.post1/sglang-deterministic.patch
M	docker/version.txt
M	docs/conf.py
M	setup.py

Slime #2272

Request-scoped streaming cancellation and partial-sample behavior translated into existing vLLM rollout files/tests. SGLang cumulative-stream accumulator is protocol-specific and not copied.

Upstream commit: 4c1ab40203952b3dcc8582b653f3a83f2c6e8128.

M	.github/workflows/pr-test.yml
M	.github/workflows/pr-test.yml.j2
M	slime/rollout/sglang_rollout.py
M	slime/rollout/sglang_streaming_rollout.py
A	slime/rollout/streaming_utils.py
M	slime/utils/arguments.py
M	tests/plugin_contracts/test_plugin_generate_contracts.py
A	tests/test_streaming_rollout.py

Slime #2340

Router-to-worker cancellation represented by closing the selected vLLM router request; existing #410 behavior evidence retained.

Upstream commit: 4c193f1f37509cca70f0e88807a9305b70f63f4e.

M	slime/agent/adapters/common.py

@aoshen02

aoshen02 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Slime 最近 100 PR 扩展漏项审计(2026-09-08)

范围:Slime 243773cf^..4c193f1f,100 个带 PR 编号的 first-parent 提交 + 4 个无编号直接修复,398 个历史变更路径;对照 Vime #410 工作树的当前内容,而非只看 #410 的文件列表。

方法:并行按训练/utils/plugins、agent/examples/docs、Docker/CI、rollout/engine 分域审计,检查历史变更在当前 tip 是否存活,后续删除是否已镜像,并对签名的引擎翻译/自有覆盖单独判定。路径清单是覆盖索引,不等于每个功能都做了 GPU E2E。

本轮发现的确定遗漏见下表‘补齐’项;测试与最终提交记录见 PR #410 更新。G4/G6/G7/G8 与 G5 剩余阶段指标仍在 feature-gap ledger,未在本轮冒充闭合。保留既有自有覆盖,不恢复用户排除的 retool/search-r1、build_conda、旧 SGLang/NPU patch 或改 Docker README。

PR/提交 审计处置 历史变更文件
#2340 fix(agent): abort timed-out SGLang requests via router workers (#2340) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/agent/adapters/common.py
#2272 feat: support streaming external rollouts (#2272) 补齐部分续传的 response_length 预算与流取消/混合中止/续传覆盖;不复制 SGLang 累积流解析器。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/rollout/sglang_rollout.py
slime/rollout/sglang_streaming_rollout.py
slime/rollout/streaming_utils.py
slime/utils/arguments.py
tests/plugin_contracts/test_plugin_generate_contracts.py
tests/test_streaming_rollout.py
#2334 [release] bump to v0.3.2 (#2334) 此前已在 #410 恢复遗漏的通用 release skill/checker;不恢复 conda/NPU/版本化 SGLang patch。 .claude/skills/release/SKILL.md
.claude/skills/release/scripts/check_release.py
build_conda.sh
docker/patch/v0.5.15.post1/megatron-sglang-aligned.patch
docker/patch/v0.5.15.post1/sglang-deterministic.patch
docker/version.txt
docs/conf.py
setup.py
#2330 [docs] fix out-dated doc (#2330) 补齐 delta 示例跨 docs-copy 的绝对链接;保持 search-r1/retool 排除。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
README.md
README_zh.md
docker/README.md
docs/conf.py
docs/en/advanced/megatron-config.md
docs/en/advanced/reproducibility.md
docs/en/developer_guide/ci.md
docs/en/examples/glm4.7-30B-A3B.md
docs/en/examples/qwen3-4b-base-openhermes.md
docs/en/get_started/customization.md
docs/en/get_started/usage.md
docs/zh/advanced/megatron-config.md
docs/zh/advanced/reproducibility.md
docs/zh/developer_guide/ci.md
docs/zh/examples/glm4-9B.md
docs/zh/examples/glm4.7-30B-A3B.md
docs/zh/examples/qwen3-4b-base-openhermes.md
docs/zh/examples/qwen3-next-80B-A3B.md
docs/zh/get_started/customization.md
docs/zh/get_started/usage.md
examples/README.md
examples/delta_weight_sync/README.md
slime/utils/arguments.py
tests/test_docs_consistency.py
#2327 feat: allow forcing UE8M0 FP8 scales (#2327) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/megatron_to_hf/processors/quantizer_fp8.py
slime/utils/arguments.py
tests/test_megatron_argument_validation.py
#2326 [doc] update doc (#2326) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 CONTRIBUTING.md
README.md
README_zh.md
#2323 [cleanup] Refactor rollout.py (#2323) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/sglang_utils/deployment.py
slime/backends/sglang_utils/disaggregation.py
slime/backends/sglang_utils/engine_group.py
slime/backends/sglang_utils/sglang_config.py
slime/ray/rollout.py
tests/utils/test_sglang_config.py
#2322 [cleanup] Remove rollout_validation.py (#2322) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/ray/rollout.py
slime/ray/rollout_validation.py
tests/test_rollout_validation.py
#2321 [cleanup] extract create_weight_updater to make actor's init func cleaner (#2321) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/update_weight/__init__.py
tests/test_update_weight_factory.py
#2320 [cleanup] remove dead code and merge never visited branches (#2320) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/get_started/usage.md
docs/zh/get_started/usage.md
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/checkpoint.py
slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/loss.py
slime/backends/megatron_utils/megatron_to_hf/__init__.py
slime/backends/megatron_utils/model.py
slime/backends/megatron_utils/update_weight/common.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_base.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
slime/observability/profile_utils.py
slime/observability/rollout_metrics.py
slime/observability/trace_utils.py
slime/ray/actor_group.py
slime/ray/train_actor.py
slime/utils/arguments.py
slime/utils/data.py
slime/utils/flops_utils.py
slime/utils/health_monitor.py
slime/utils/http_utils.py
slime/utils/misc.py
slime/utils/ppo_utils.py
slime/utils/seqlen_balancing.py
slime/utils/tensor_backper.py
tests/test_empty_colocated_weight_bucket.py
tests/test_megatron_argument_validation.py
tests/test_process_rollout_data.py
tests/test_rollout_metrics.py
tests/utils/test_hf_checkpoint_saver.py
#2318 [ci] move fanout_test_helpers to tests/ (#2318) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 tests/fanout_test_helpers.py
tests/test_qwen2.5_0.5B_fanout_short.py
#2317 [ci] Clean up tests (#2317) 补齐 test_megatron_role_config.py 的 NUM_GPUS = 0。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
tests/test_advantage_whiten_cp.py
tests/test_agent/test_sandbox_exec_and_wait.py
tests/test_block_fp8_zero_block.py
tests/test_chunked_gae.py
tests/test_deepgemm_forward.py
tests/test_deepgemm_moe_forward.py
tests/test_eval_config.py
tests/test_filter_long_prompt.py
tests/test_fully_async_rollout.py
tests/test_gspo.sh
tests/test_loss_cp_invariance.py
tests/test_ppo_kl_metric.py
tests/test_process_rollout_data.py
tests/test_qwen2.5_0.5B_async_short.py
tests/test_qwen2.5_0.5B_fully_async_short.py
tests/test_qwen2.5_0.5B_short.py
tests/test_qwen3_linear_attention_cu_seqlens.py
tests/test_read_file_slicing.py
tests/test_reloadable_process_group_memory_check.py
tests/test_tau_bench_token_delta.py
tests/utils/test_loss_mask_type_qwen35.py
tests/utils/test_mask_utils.py
tests/utils/test_megatron_role_config.py
tests/utils/test_sglang_config.py
#2316 Remove megatron_patch for memory optimization (#2316) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/__init__.py
slime/backends/megatron_utils/megatron_patch/__init__.py
slime/backends/megatron_utils/megatron_patch/megatron_chunked_grad_coalesce_patch.py
tests/test_deep_ep_tms_patch.py
#2312 docs: remove stale delta NCCL recommendation (#2312) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/advanced/external-rollout-engines.md
docs/zh/advanced/external-rollout-engines.md
#2298 [NFC] Add observability subfolder (#2298) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
docker/NOTES_GB10.md
docker/npu_patch/slime.patch
docs/en/developer_guide/trace.md
docs/en/get_started/customization.md
docs/zh/developer_guide/trace.md
docs/zh/get_started/customization.md
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/cp_utils.py
slime/backends/megatron_utils/data.py
slime/backends/megatron_utils/model.py
slime/observability/__init__.py
slime/observability/logging_utils.py
slime/observability/metric_utils.py
slime/observability/profile_utils.py
slime/observability/rollout_data_utils.py
slime/observability/rollout_metrics.py
slime/observability/tensorboard_utils.py
slime/observability/timer.py
slime/observability/trace_utils.py
slime/observability/train_data_utils.py
slime/observability/train_metric_utils.py
slime/observability/wandb_utils.py
slime/ray/rollout.py
slime/ray/train_actor.py
slime/rollout/_fanout_test_helpers.py
slime/rollout/sglang_rollout.py
slime/rollout/sglang_streaming_rollout.py
slime/utils/arguments.py
slime/utils/data.py
slime/utils/train_metric_utils.py
slime_plugins/rollout_buffer/rollout_buffer_example.py
tests/_cp_dist_helpers.py
tests/observability/test_trace_utils.py
tests/plugin_contracts/test_plugin_runtime_hook_contracts.py
tests/test_megatron_argument_validation.py
tests/test_metric_report.py
tests/test_metric_report_dist.py
tests/test_qwen2.5_0.5B_fanout_short.py
tests/test_rollout_data_utils.py
tests/test_rollout_metrics.py
tests/test_rollout_routing_replay_validation.py
tests/test_train_data_utils.py
tools/convert_hf_to_torch_dist.py
train.py
train_async.py
#2297 fix: reject non-positive rollout temperature at parse time (#2297) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/arguments.py
tests/test_megatron_argument_validation.py
#2085 fix(opd): score teacher logprobs at rollout temperature, not 0 (#2085) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/rollout/on_policy_distillation.py
#2114 fix(ppo): preserve raw KL so rollout/kl logging is correct (#2114) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/loss.py
tests/test_ppo_kl_metric.py
#2296 fix(train): skip optimizer and scheduler for eval-only (#2296) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/model.py
slime/ray/placement_group.py
#2294 cleanup (#2294) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 requirements.txt
tests/glm52_layerwise_comparator.py
tests/test_glm52_6layer_deterministic_e2e.py
tests/test_glm52_layerwise_comparison.py
#2216 feat: add backend-aware MUSA support (#2216) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/__init__.py
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/data.py
slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/megatron_to_hf/processors/quantizer_compressed_tensors.py
slime/backends/megatron_utils/server/logprob_utils.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
slime/backends/sglang_utils/__init__.py
slime/backends/sglang_utils/sglang_engine.py
slime/ray/rollout.py
slime/ray/train_actor.py
slime/ray/utils.py
slime/utils/accelerator/__init__.py
slime/utils/accelerator/base.py
slime/utils/accelerator/cuda.py
slime/utils/accelerator/musa.py
slime/utils/accelerator/torch_accelerator.py
slime/utils/memory_utils.py
slime/utils/profile_utils.py
slime/utils/reloadable_process_group.py
slime/utils/routing_replay.py
slime/utils/tensor_backper.py
slime_plugins/models/flash_dot_product_attention.py
slime_plugins/models/qwen3_5.py
slime_plugins/models/qwen3_5_vl.py
slime_plugins/models/qwen3_next.py
tests/test_accelerator.py
tests/test_empty_colocated_weight_bucket.py
tests/test_reloadable_process_group_world.py
tools/convert_hf_to_fp8.py
tools/convert_hf_to_int4_direct.py
tools/convert_hf_to_torch_dist.py
tools/convert_to_hf.py
tools/fp8_cast_bf16.py
#2286 fix: improve compatibility with older SGLang versions (#2286) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/sglang_utils/arguments.py
slime/ray/rollout.py
#2276 Add args check for --save-debug-train-data (#2276) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/arguments.py
tests/test_megatron_argument_validation.py
#2267 Fix model convert when use latest megatron (#2267) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/arguments.py
slime_plugins/models/glm5/glm5.py
slime_plugins/models/qwen3_5.py
slime_plugins/models/qwen3_next.py
tools/convert_hf_to_torch_dist.py
#2274 [ROCm] Support the INT4 QAT kernel on ROCm (#2274) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/kernels/int4_qat/fake_int4_quant_cuda.cu
slime/backends/megatron_utils/kernels/int4_qat/setup.py
#2271 fix transform_ue8m0 in fp8 convert (#2271) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/megatron_to_hf/__init__.py
slime/backends/megatron_utils/megatron_to_hf/processors/__init__.py
slime/backends/megatron_utils/megatron_to_hf/processors/quantizer_fp8.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_base.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
#2266 Refactor --save-debug-train-data (#2266) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
docs/en/developer_guide/debug.md
docs/zh/developer_guide/debug.md
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/loss.py
slime/backends/megatron_utils/model.py
slime/backends/megatron_utils/train_dump_utils.py
slime/utils/arguments.py
slime/utils/data.py
slime/utils/train_dump_utils.py
tests/test_qwen2.5_0.5B_debug_train_dump_e2e.py
tests/test_train_dump.py
#2199 fix(npu): bracket IPv6 hosts in distributed init methods (#2199) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/npu_patch/slime.patch
#2242 fix: honor every eval.defaults key and restore per-dataset stop / min_new_tokens (#2242) 补齐普通 rollout 的 min_new_tokens→min_tokens / repetition_penalty 请求传递(原配置层已有,HTTP 层丢失)。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/rollout/sglang_rollout.py
slime/utils/eval_config.py
tests/test_eval_config.py
#2238 fix: stop the fully-async rollout dropping completed groups (#2238) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/rollout/fully_async_rollout.py
tests/test_fully_async_rollout.py
#2213 Fix tau-bench token deltas for reasoning templates (#2213) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/tau-bench/token_delta.py
examples/tau-bench/trainable_agents.py
tests/test_tau_bench_token_delta.py
#2236 fix: don't overwrite an explicitly set --start-rollout-id (#2236) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/arguments.py
tests/test_megatron_argument_validation.py
#2235 fix: whiten advantages over the DP group that includes context parallel (#2235) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/loss.py
tests/test_advantage_whiten_cp.py
#2234 fix: pair --log-correct-samples rewards with the DP-local samples (#2234) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/data.py
slime/utils/data.py
tests/test_process_rollout_data.py
#2239 fix: clear exec_and_wait's spawn lock between logical invocations (#2239) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/agent/sandbox.py
tests/test_agent/test_sandbox_exec_and_wait.py
#2243 fix: restore args.ckpt_step after load_other_checkpoint (#2243) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/actor.py
#2170 Fix placement group crash for external engines under debug_rollout_only (#2170) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/ray/placement_group.py
slime/utils/arguments.py
tests/test_placement_group.py
#2132 fix(mtp): support multi-head MTP loss logging (mtp-num-layers > 1) (#2132) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/model.py
#2189 [Doc] Clarify PPO/Critic docs after #1856 (#2189) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/advanced/megatron-config.md
docs/en/get_started/usage.md
docs/zh/advanced/megatron-config.md
docs/zh/get_started/usage.md
#2133 docs(examples): list coding_agent_rl in examples/README (#2133) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/README.md
examples/fully_async/README.md
#2138 docs(readme): add Dressage to Chinese ecosystem (#2138) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 README_zh.md
#2205 perf: vectorize REINFORCE++ discounted returns (#2205) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/utils/ppo_utils.py
tests/test_discounted_returns.py
#2237 fix: keep dataset order in filter_long_prompt for mixed multimodal data (#2237) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/utils/data.py
tests/test_filter_long_prompt.py
#2241 fix: restore negative dataset slice bounds (path@[-100:]) (#2241) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/utils/data.py
tests/test_read_file_slicing.py
#2246 fix: cast gpu_id to int in sort_key to prevent lexicographic ordering (#2246) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/ray/placement_group.py
#2247 fix: forward dual-clip PPO epsilon (#2247) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/loss.py
tests/test_policy_loss.py
#2254 docs: correct reverse KL definition in OPD guide (#2254) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/advanced/on-policy-distillation.md
docs/zh/advanced/on-policy-distillation.md
#2256 fix(tools): clamp block max in block_fp8 to avoid NaN weights from all-zero blocks (#2256) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 tests/test_block_fp8_zero_block.py
tools/convert_hf_to_fp8.py
#2261 fix(rollout): restore partial continuation token budget (#2261) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/rollout/sglang_rollout.py
slime/rollout/sglang_streaming_rollout.py
#2264 fix: preserve consecutive tool responses in Qwen3 SFT tokenization (#2264) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/mask_utils.py
tests/utils/test_loss_mask_type_qwen35.py
#2262 feat(glm5): align Megatron DeepEP training with SGLang rollout (#2262) 训练端已映射;GLM deterministic E2E 仍依赖 G8 引擎缺口,不能注册不支持的测试冒充覆盖。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
.gitignore
docker/Dockerfile
docker/patch/latest/megatron-sglang-aligned.patch
docker/patch/latest/sglang-deterministic.patch
docker/version.txt
docs/en/advanced/reproducibility.md
docs/zh/advanced/reproducibility.md
docs/zh/developer_guide/install_flashqla.md
slime/backends/megatron_utils/alignment/__init__.py
slime/backends/megatron_utils/alignment/deepgemm_forward.py
slime/backends/megatron_utils/alignment/deepgemm_moe_forward.py
slime/backends/megatron_utils/alignment/deterministic_route_kernels.py
slime/backends/megatron_utils/alignment/env.py
slime/backends/megatron_utils/alignment/layerwise_alignment.py
slime/backends/megatron_utils/arguments.py
slime/backends/megatron_utils/loss.py
slime/backends/megatron_utils/model.py
slime/backends/megatron_utils/model_provider.py
slime/backends/megatron_utils/update_weight/expert_routing.py
slime/backends/sglang_utils/arguments.py
slime/backends/sglang_utils/jit_kernels/csrc/gemm/glm5_router_gemm.cuh
slime/backends/sglang_utils/sglang_engine.py
slime/ray/actor_group.py
slime/ray/rollout.py
slime/ray/utils.py
slime/utils/arguments.py
slime/utils/compare_glm52_layerwise.py
slime/utils/routing_replay.py
slime_plugins/models/glm5/glm5.py
slime_plugins/models/glm5/ops/indexer.py
slime_plugins/models/glm5/ops/sparse_mla.py
tests/test_deepgemm_forward.py
tests/test_deepgemm_moe_forward.py
tests/test_expert_routing.py
tests/test_glm52_6layer_deterministic_e2e.py
tests/test_glm52_layerwise_comparison.py
tests/test_glm52_layerwise_zero_e2e.py
tests/test_glm5_indexer_q_norm.py
tests/test_glm5_indexer_short_context.py
tests/test_layerwise_alignment.py
tests/test_model_provider_freeze.py
tests/test_rollout_routing_replay_validation.py
tests/utils/test_sglang_arguments.py
#2257 [docker] support cuda 13 (#2257) 补齐 Docker modelopt 版本约束引号,避免 shell 把 >= 当重定向。 docker/Dockerfile
docker/README.md
docker/justfile
docker/version.txt
#2252 [release] bump to v0.3.1 (#2252) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 build_conda.sh
docker/Dockerfile.gb10
docker/patch/latest/sglang-pull_weights.patch
docker/patch/v0.5.15.post1/megatron.patch
docker/patch/v0.5.15.post1/sglang-pull_weights.patch
docker/patch/v0.5.15.post1/sglang-release_hicache.patch
docker/patch/v0.5.15.post1/sglang-top_p.patch
docker/patch/v0.5.15.post1/sglang.patch
docker/version.txt
requirements.txt
setup.py
slime/backends/megatron_utils/actor.py
slime/backends/sglang_utils/external.py
slime/backends/sglang_utils/sglang_engine.py
slime/rollout/sglang_rollout.py
slime/utils/reloadable_process_group.py
tests/plugin_contracts/_shared.py
tests/test_external_sglang_engines.py
tests/test_qwen3_0.6B_parallel_check.py
tests/test_qwen3_30B_A3B.py
tests/test_qwen3_30B_A3B_r3.py
tests/test_reloadable_process_group_world.py
#2251 Internalize mbridge and remove megatron-bridge (#2251) 沿用直接 HF 转换与 HfWeightIteratorDirect;保留登记过的 DSpark 自有覆盖。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
build_conda.sh
docker/Dockerfile
docker/Dockerfile.gb10
docker/Dockerfile.rocm
docker/Dockerfile.rocm_MI350-5
docker/Dockerfile_20250810_9a48ba0.rocm
docker/Dockerfile_20250810_c22f55b.rocm
docker/patch/v0.5.5.post1/sglang.patch
docker/patch/v0.5.6/sglang.patch
docs/en/advanced/arch-support-beyond-megatron.md
docs/en/examples/gemma4.md
docs/en/examples/glm4.7-30B-A3B.md
docs/en/examples/glm4.7-355B-A32B.md
docs/en/examples/glm5.2-744B-A40B.md
docs/en/index.rst
docs/en/platform_support/amd_tutorial.md
docs/zh/advanced/arch-support-beyond-megatron.md
docs/zh/examples/gemma4.md
docs/zh/examples/glm4.7-30B-A3B.md
docs/zh/examples/glm4.7-355B-A32B.md
docs/zh/examples/glm5.2-744B-A40B.md
docs/zh/index.rst
examples/geo3k_vlm/README.md
examples/geo3k_vlm/run_geo3k_qwen35.sh
examples/geo3k_vlm/run_geo3k_vlm.sh
examples/geo3k_vlm/run_geo3k_vlm_sft.sh
examples/geo3k_vlm_multi_turn/README.md
examples/geo3k_vlm_multi_turn/rollout.py
examples/geo3k_vlm_multi_turn/run_geo3k_vlm_multi_turn.py
examples/geo3k_vlm_multi_turn/run_geo3k_vlm_multi_turn_grpo_npu.py
examples/geo3k_vlm_multi_turn/run_geo3k_vlm_multi_turn_ppo_npu.py
examples/geo3k_vlm_multi_turn/run_grpo_npu.sh
examples/geo3k_vlm_multi_turn/run_ppo_npu.sh
scripts/models/gemma4-12B.sh
scripts/models/gemma4-26B-A4B.sh
scripts/models/gemma4-31B.sh
scripts/models/gpt-oss-20B.sh
scripts/models/qwen3.5-35B-A3B-vl.sh
scripts/run-gemma4-26B-A4B-gsm8k.sh
scripts/run-gemma4-31B-gsm8k.sh
scripts/run-gpt-oss-20B.sh
scripts/run-minimax-m2.sh
slime/backends/megatron_utils/__init__.py
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/checkpoint.py
slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/hf_to_megatron/__init__.py
slime/backends/megatron_utils/hf_to_megatron/common.py
slime/backends/megatron_utils/hf_to_megatron/deepseek.py
slime/backends/megatron_utils/hf_to_megatron/glm.py
slime/backends/megatron_utils/hf_to_megatron/qwen.py
slime/backends/megatron_utils/hf_to_megatron/qwen3_5.py
slime/backends/megatron_utils/hf_to_megatron/qwen3_next.py
slime/backends/megatron_utils/megatron_to_hf/__init__.py
slime/backends/megatron_utils/megatron_to_hf/gemma4.py
slime/backends/megatron_utils/megatron_to_hf/gpt_oss.py
slime/backends/megatron_utils/megatron_to_hf/mimo.py
slime/backends/megatron_utils/megatron_to_hf/processors/__init__.py
slime/backends/megatron_utils/megatron_to_hf/qwen3_5.py
slime/backends/megatron_utils/model_provider.py
slime/backends/megatron_utils/update_weight/common.py
slime/backends/megatron_utils/update_weight/expert_routing.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_base.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_bridge.py
slime/utils/arguments.py
slime/utils/mask_utils.py
slime/utils/megatron_bridge_utils.py
slime_plugins/mbridge/__init__.py
slime_plugins/mbridge/deepseek_v32.py
slime_plugins/mbridge/gemma4.py
slime_plugins/mbridge/glm4.py
slime_plugins/mbridge/glm4moe.py
slime_plugins/mbridge/glm4moe_lite.py
slime_plugins/mbridge/gpt_oss.py
slime_plugins/mbridge/mimo.py
slime_plugins/mbridge/minimax_m2.py
slime_plugins/mbridge/qwen3_5.py
slime_plugins/mbridge/qwen3_next.py
slime_plugins/megatron_bridge/__init__.py
slime_plugins/megatron_bridge/glm4v_moe.py
slime_plugins/models/gemma4.py
slime_plugins/models/gemma4_provider.py
slime_plugins/models/gpt_oss.py
slime_plugins/models/qwen3_5_vl.py
slime_plugins/models/qwen3_5_vl_utils.py
tests/gemma4/_standalone_imports.py
tests/gemma4/test_gemma4_attention.py
tests/gemma4/test_gemma4_bridge.py
tests/gemma4/test_gemma4_cp_attention.py
tests/gemma4/test_gemma4_dual_rope.py
tests/gemma4/test_gemma4_hf_key_contract.py
tests/gemma4/test_gemma4_layer_integration.py
tests/gemma4/test_gemma4_layer_scalar_broadcast.py
tests/gemma4/test_gemma4_provider.py
tests/gemma4/test_gemma4_qkv_roundtrip.py
tests/gemma4/test_gemma4_router.py
tests/gemma4/test_gemma4_sft_rollout.py
tests/test_gemma4_12B_gsm8k_short.py
tests/test_hf_to_megatron.py
tests/test_megatron_argument_validation.py
tests/test_qwen2.5_0.5B_async_short.py
tests/test_qwen2.5_0.5B_debug_rollout_then_train.py
tests/test_qwen2.5_0.5B_fanout_short.py
tests/test_qwen2.5_0.5B_fully_async_short.py
tests/test_qwen2.5_0.5B_opd_sglang.py
tests/test_qwen2.5_0.5B_sglang_config.py
tests/test_qwen2.5_0.5B_sglang_config_distributed.py
tests/test_qwen2.5_0.5B_short.py
tests/test_qwen3_5_mtp_bridge_mapping.py
tests/test_qwen3_5_vl_native.py
tests/test_sglang_config_mixed_offload.py
tests/test_sglang_config_mixed_offload_ft.py
tests/utils/test_loss_mask_type_gemma4.py
tests/utils/test_megatron_bridge_utils.py
tools/convert_hf_to_torch_dist.py
tools/convert_torch_dist_to_hf_bridge.py
tools/preprocess_gpt_oss.py
#2250 Add lightweight rollout hooks and sampling controls (#2250) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/__init__.py
slime/backends/sglang_utils/arguments.py
slime/ray/rollout.py
slime/rollout/filter_hub/base_types.py
slime/rollout/filter_hub/dynamic_sampling_filters.py
slime/rollout/sample_hooks.py
slime/rollout/sglang_rollout.py
slime/utils/arguments.py
slime/utils/misc.py
tests/plugin_contracts/test_plugin_path_loading_contracts.py
tests/test_deep_ep_tms_patch.py
tests/test_rollout_sample_hooks.py
tests/test_stateless_adam.py
#2249 Remove --train-memory-margin-bytes (#2249) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 scripts/run-gpt-oss-20B.sh
slime/backends/megatron_utils/actor.py
slime/utils/arguments.py
tests/test_megatron_argument_validation.py
#2248 Support PYTORCH_ALLOC_CONF (#2248) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/Dockerfile
docker/version.txt
slime/backends/sglang_utils/sglang_engine.py
#2228 [docker] upgrade sglang to v0.5.15.post1 (#2228) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/Dockerfile
docker/README.md
docker/patch/latest/sglang-pull_weights.patch
docker/patch/latest/sglang-release_hicache.patch
docker/patch/latest/sglang-top_p.patch
docker/patch/latest/sglang.patch
docker/version.txt
slime/backends/sglang_utils/arguments.py
slime/backends/sglang_utils/sglang_engine.py
tests/test_qwen3_0.6B_parallel_check.py
tests/test_qwen3_4B_external_pd.py
tests/utils/test_sglang_config.py
#2223 Fix --save-hf (#2223) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/hf_checkpoint_saver.py
#2210 Update qwen3-4B.md (#2210) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/zh/examples/qwen3-4B.md
#2220 Optimize update weight (#2220) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/update_weight/common.py
slime/backends/megatron_utils/update_weight/expert_routing.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_base.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_bridge.py
slime/backends/megatron_utils/update_weight/hf_weight_iterator_direct.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
slime/backends/sglang_utils/sglang_engine.py
slime/ray/rollout.py
tests/test_empty_colocated_weight_bucket.py
tests/utils/test_sglang_config.py
#2208 Support reloading the default process group (#2208) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/actor.py
slime/ray/rollout.py
slime/utils/distributed_utils.py
slime/utils/reloadable_process_group.py
tests/test_reloadable_process_group_world.py
#2185 Support routed_experts_start_len (#2185) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/actor.py
slime/utils/types.py
#2181 [3/n] Disaggregated rollout: engine-side /pull_weights (#2181) delta 示例更正不存在的 pre-read 参数;引擎 pull 协议仍由独立 patch 承载。 docker/Dockerfile
docker/patch/latest/sglang-pull_weights.patch
docs/en/advanced/delta-weight-sync.md
docs/en/advanced/external-rollout-engines.md
docs/en/get_started/customization.md
docs/zh/advanced/delta-weight-sync.md
docs/zh/advanced/external-rollout-engines.md
docs/zh/get_started/customization.md
examples/delta_weight_sync/README.md
examples/delta_weight_sync/run-glm4.7-30B-A3B-delta.sh
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/hf_checkpoint_saver.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
slime/backends/sglang_utils/sglang_engine.py
slime/ray/actor_group.py
slime/ray/rollout.py
slime/utils/arguments.py
slime/utils/disk_delta.py
tests/utils/test_hf_checkpoint_saver.py
#2184 sync source_names (#2184) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/get_started/usage.md
docs/zh/get_started/usage.md
slime/backends/megatron_utils/data.py
slime/ray/rollout.py
slime/utils/data.py
#2183 cleanup (#2183) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/server/logprob_utils.py
slime/backends/megatron_utils/server/megatron_server.py
slime/backends/sglang_utils/sglang_engine.py
slime/ray/rollout.py
slime/ray/rollout_validation.py
slime/rollout/sglang_rollout.py
slime/utils/arguments.py
slime/utils/ppo_utils.py
tests/test_rollout_validation.py
53a87b0a [docker] fix patch 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/Dockerfile
docker/patch/latest/sglang.patch
1168380a [docker] fix sglang patch 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/patch/latest/sglang-release_hicache.patch
8cc298b7 [docker] fix dockerfile 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/Dockerfile
#2180 Add --release-train (#2180) 恢复 release-train 注释的上游措辞;功能代码未改。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
docker/Dockerfile
docker/patch/latest/sglang-release_hicache.patch
docker/patch/latest/sglang.patch
docker/version.txt
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
slime/ray/actor_group.py
slime/ray/placement_group.py
slime/utils/arguments.py
tests/test_megatron_argument_validation.py
tests/test_release_train.py
tests/utils/test_megatron_role_config.py
train.py
train_async.py
#2178 [docker] Update dependencies (#2178) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/Dockerfile
docker/version.txt
#2175 Fix R3 for allgather_cp (#2175) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/cp_utils.py
#2172 [docker] Update training side dependencies (#2172) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/Dockerfile
docker/version.txt
#2173 [docker] Update SGLang patch for PD R3 routed experts (#2173) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/Dockerfile
docker/patch/latest/sglang.patch
docker/version.txt
slime/utils/types.py
tests/test_rollout_metrics.py
23464705 Fix router 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docker/Dockerfile
#2169 Merging profiling info into router (#2169) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/Dockerfile
docker/patch/latest/sglang-top_p.patch
docker/patch/latest/sglang.patch
docker/version.txt
slime/ray/rollout.py
tests/utils/test_trace_utils.py
#2089 Disk-level delta weight sync (#2089) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/patch/latest/sglang.patch
docs/en/advanced/delta-weight-sync.md
docs/en/advanced/external-rollout-engines.md
docs/en/index.rst
docs/zh/advanced/delta-weight-sync.md
docs/zh/advanced/external-rollout-engines.md
docs/zh/index.rst
examples/README.md
examples/delta_weight_sync/README.md
examples/delta_weight_sync/run-glm4.7-30B-A3B-delta.sh
examples/delta_weight_sync/run-glm4.7-355B-A32B-delta.sh
requirements.txt
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/sglang.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk.py
slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
slime/backends/megatron_utils/update_weight/update_weight_from_distributed_delta.py
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
slime/backends/sglang_utils/sglang_engine.py
slime/ray/rollout.py
slime/utils/arguments.py
slime/utils/disk_delta.py
tests/test_megatron_argument_validation.py
#2167 Always requires rollout_top_p_token_ids when rollout_top_p is not 1.0 (#2167) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/ray/rollout.py
#2161 feat(coding_agent_rl): env-selectable grading protocol + sandbox RPC robustness (#2161) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/coding_agent_rl/generate.py
examples/coding_agent_rl/run_qwen36_35b_a3b_swe_8nodes.sh
examples/coding_agent_rl/swe.py
slime/agent/adapters/common.py
slime/agent/harness/claude_code.py
slime/agent/harness/codex.py
slime/agent/harness/common.py
slime/agent/parsing.py
slime/agent/sandbox.py
slime/agent/trajectory.py
tests/test_agent/_fakes.py
tests/test_agent/test_harness.py
tests/test_agent/test_trajectory_manager_branching.py
#2151 fix(update_weight): bracket IPv6 master address in tcp:// init_method (#2151) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py
#2123 Fix training stuck on all-gather cp (#2123) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/loss.py
#2160 Fix CI (#2160) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 tests/test_ppo_logprob_entropy_gpu.py
tests/test_qwen3_0.6B_parallel_check.py
#2158 Remove ctx.set_materialize_grads(False) which may cause issues (#2158) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/ppo_utils.py
#2153 bugfix (#2153) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/loss.py
#2152 Optimize memory usage for _VocabParallelLogProbEntropy (#2152) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/loss.py
slime/utils/ppo_utils.py
tests/test_ppo_logprob_entropy_gpu.py
#2106 feat(examples/strands_sglang): update to strands-sglang 0.4.2 (#2106) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/strands_sglang/README.md
examples/strands_sglang/__init__.py
examples/strands_sglang/generate_with_strands.py
examples/strands_sglang/requirements.txt
examples/strands_sglang/subprocess_interpreter.py
#2144 perf: fuse PPO logprob entropy computation (#2144) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/loss.py
slime/utils/ppo_utils.py
tests/test_ppo_logprob_entropy.py
tests/test_ppo_logprob_entropy_gpu.py
#2134 fix: handle empty colocated weight buckets (#2134) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/update_weight/update_weight_from_tensor.py
tests/test_empty_colocated_weight_bucket.py
#2135 feat(gemma4): add Gemma4 dense and MoE support (#2135) Gemma4/mbridge 部分已被后续 #2251 删除,不按历史新增文件盲目恢复。 docs/en/examples/gemma4.md
docs/en/index.rst
docs/zh/examples/gemma4.md
docs/zh/index.rst
scripts/models/gemma4-12B.sh
scripts/models/gemma4-26B-A4B.sh
scripts/models/gemma4-31B.sh
scripts/run-gemma4-26B-A4B-gsm8k.sh
scripts/run-gemma4-31B-gsm8k.sh
slime/backends/megatron_utils/megatron_to_hf/__init__.py
slime/backends/megatron_utils/megatron_to_hf/gemma4.py
slime/utils/arguments.py
slime/utils/external_utils/command_utils.py
slime/utils/mask_utils.py
slime_plugins/mbridge/__init__.py
slime_plugins/mbridge/gemma4.py
slime_plugins/models/gemma4.py
slime_plugins/models/gemma4_provider.py
tests/gemma4/_standalone_imports.py
tests/gemma4/test_gemma4_attention.py
tests/gemma4/test_gemma4_bridge.py
tests/gemma4/test_gemma4_cp_attention.py
tests/gemma4/test_gemma4_dual_rope.py
tests/gemma4/test_gemma4_hf_key_contract.py
tests/gemma4/test_gemma4_layer_integration.py
tests/gemma4/test_gemma4_layer_scalar_broadcast.py
tests/gemma4/test_gemma4_provider.py
tests/gemma4/test_gemma4_qkv_roundtrip.py
tests/gemma4/test_gemma4_router.py
tests/gemma4/test_gemma4_sft_rollout.py
tests/test_gemma4_12B_gsm8k_short.py
tests/utils/test_loss_mask_type_gemma4.py
tools/convert_hf_to_torch_dist.py
#2145 [docker] fix top_p mask speed issue (#2145) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 docker/patch/latest/sglang-top_p.patch
docker/version.txt
#2143 Fix parallel update_from_disk in megatron server (#2143) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/megatron_utils/server/megatron_server.py
#2125 feat(coding_agent_rl): select claude_code/codex harness+adapter pair via SWE_AGENT (#2125) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/coding_agent_rl/generate.py
examples/coding_agent_rl/run_qwen36_35b_a3b_swe_8nodes.sh
#2124 fix(agent) SWE coding-agent RL stability bugs (abort handling, session cleanup) (#2124) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/coding_agent_rl/generate.py
examples/coding_agent_rl/run_qwen36_35b_a3b_swe_8nodes.sh
slime/agent/adapters/common.py
slime/agent/harness/common.py
slime/agent/trajectory.py
#2121 Fix bug on non-float reward (#2121) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/rollout/sglang_rollout.py
#2118 sync from internal (#2118) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
slime/backends/megatron_utils/arguments.py
slime/backends/megatron_utils/model.py
slime/backends/megatron_utils/model_provider.py
slime/backends/megatron_utils/server/__init__.py
slime/backends/megatron_utils/server/arguments.py
slime/backends/megatron_utils/server/logprob_utils.py
slime/backends/megatron_utils/server/megatron_server.py
slime/backends/megatron_utils/stateless_adam.py
slime/ray/actor_group.py
slime/ray/placement_group.py
slime/rollout/sglang_rollout.py
slime/utils/arguments.py
slime/utils/eval_config.py
slime/utils/trace_utils.py
tests/utils/test_megatron_server_arguments.py
tools/trace_timeline_viewer.py
#2111 [codex] Add Dressage to ecosystem README (#2111) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 README.md
#2110 Extract append_response_tokens to Sample (#2110) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/utils/types.py
tests/test_rollout_metrics.py
#2108 Extract append_response_tokens to Sample (#2108) 补齐 multi-agent append_response_tokens 的元信息传递,复用默认 rollout 的 vLLM 响应解析。 examples/geo3k_vlm_multi_turn/rollout.py
examples/multi_agent/agent_system.py
examples/retool/generate_with_retool.py
examples/search-r1/generate_with_search.py
slime/ray/rollout.py
slime/rollout/sglang_rollout.py
slime/rollout/sglang_streaming_rollout.py
slime/utils/misc.py
slime/utils/types.py
tests/test_rollout_metrics.py
tests/test_sample.py
#2107 Fix wrongly removed RouterArgs registry (#2107) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 slime/backends/sglang_utils/arguments.py
#2101 fix(examples/tau-bench): use RunConfig.agent_strategy in TAU_CONFIGS (#2101) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/tau-bench/README.md
examples/tau-bench/generate_with_tau.py
#2102 Support top_p mask (#2102) 已分域检查;引擎 patch 逐目标映射见现有 feature-gap/patch ledger,不能以文件未复制判为功能无须支持。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
docker/Dockerfile
docker/patch/latest/sglang-top_p.patch
docker/version.txt
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/data.py
slime/backends/megatron_utils/loss.py
slime/backends/megatron_utils/model.py
slime/ray/rollout.py
slime/rollout/sglang_rollout.py
slime/rollout/sglang_streaming_rollout.py
slime/utils/ppo_utils.py
slime/utils/types.py
tests/test_glm4.7_30B_A3B_pd_mooncake.py
tests/test_logprob_response_spans.py
tests/test_qwen3.5_0.8B_gsm8k_async_short.py
tests/test_qwen3.5_0.8B_gsm8k_short.py
tests/test_sample.py
#2096 docs: drop dangling Dr.GRPO custom-reducer example reference (#2096) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 docs/en/get_started/customization.md
docs/zh/get_started/customization.md
slime/utils/arguments.py
#2100 Remove bshd support (#2100) 已分域交叉检查现存实现与后续删除;特有引擎/CI/自有覆盖按签名差异保留。 examples/geo3k_vlm/README.md
examples/geo3k_vlm/run_geo3k_qwen35.sh
slime/backends/megatron_utils/actor.py
slime/backends/megatron_utils/cp_utils.py
slime/backends/megatron_utils/data.py
slime/backends/megatron_utils/loss.py
slime/backends/megatron_utils/model.py
slime/utils/arguments.py
slime_plugins/megatron_bridge/glm4v_moe.py
tests/test_megatron_argument_validation.py
tests/test_value_temperature.py
#2005 [coding-agent-rl] Refactor coding-agent RL: turn-node TrajectoryManager + pluggable harness layer (#2005) 补齐 agent 独立采样映射的 min_new_tokens/repetition_penalty;沙盒与会话架构保留上游。 .github/workflows/pr-test.yml
.github/workflows/pr-test.yml.j2
examples/coding_agent_rl/README.md
examples/coding_agent_rl/generate.py
examples/coding_agent_rl/run_qwen36_35b_a3b_swe_8nodes.sh
examples/coding_agent_rl/sandbox.py
examples/coding_agent_rl/swe.py
slime/agent/adapters/anthropic.py
slime/agent/adapters/common.py
slime/agent/adapters/openai.py
slime/agent/aiohttp_threaded.py
slime/agent/harness/__init__.py
slime/agent/harness/claude_code.py
slime/agent/harness/codex.py
slime/agent/harness/common.py
slime/agent/sandbox.py
slime/agent/trajectory.py
tests/test_agent/__init__.py
tests/test_agent/_dump_helpers.py
tests/test_agent/_fakes.py
tests/test_agent/test_adapters.py
tests/test_agent/test_agent_rollout_cpu.py
tests/test_agent/test_harness.py
tests/test_agent/test_trajectory_manager_branching.py
tests/test_agent_adapters.py
tests/test_agent_sdk_adapters.py
tests/test_agent_trajectory.py

@aoshen02

aoshen02 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Latest-200 audit inventory — catch-up 6e07971d

This is the complete merge-order inventory, not a blanket parity assertion: 200 numbered PRs + four direct fixes, 2091f7af^..4c193f1f, 502 historical changed paths. The current description lists the concrete repairs and validation (229 passed, 3 skipped, local CPU; no image/GPU claim).

Evidence-route labels refer to task artifacts under /home/aoshen/vime/projects/vime-sync-slime-032/agent_run/reports/latest200-*.md. Those reports contain per-file/hunk findings and explicit OPEN boundaries. In particular, G11 streaming masks, remaining model/kernel behavior and historical patch-rebase proof must not be inferred complete from this inventory.

Complete PR index (oldest to newest)

# PR / direct commit Title Historical changed paths Evidence routes
1 #1916 (2091f7af) [docker] update torch memory saver (#1916) 1 docker-ci-scripts
2 #1919 (b8f59d2a) add critic wandb config (#1919) 2 training-utils
3 #1920 (f0bce74a) Move fully_async example to main codebase (#1920) 9 docker-ci-scripts; examples-agent; engine-weights; training-utils
4 #1921 (35e8767f) Add example for streaming output (#1921) 4 docker-ci-scripts; engine-weights; main-owner findings; training-utils
5 #1924 (1c810731) Reduce host memory with upgraded tms (#1924) 6 docker-ci-scripts; training-utils; engine-weights
6 #1926 (2f4bd0d8) Move micro-batch scheduling from training side to rollout side (#1926) 12 docker-ci-scripts; examples-agent; training-utils; engine-weights; main-owner findings
7 #1932 (d8841781) save host menmroy (#1932) 1 training-utils
8 #1930 (6961f597) Support training with variable global batch size (#1930) 7 training-utils; engine-weights; main-owner findings
9 #1938 (79989380) fix: guard sglang_speculative_algorithm read in --debug-train-only mode (#1938) 1 engine-weights; main-owner findings
10 #1933 (7405851f) [2/N] Support training with variable global batch size (#1933) 18 docker-ci-scripts; examples-agent; training-utils; engine-weights; main-owner findings
11 #1939 (ae818a37) add more cpu ci (#1939) 9 docker-ci-scripts; training-utils
12 #1940 (e51aaaba) run cpu test on main branch (#1940) 2 docker-ci-scripts
13 #1934 (e7134570) Add GPU placement validation before starting rollout engines (#1934) 3 engine-weights; main-owner findings; training-utils
14 #1941 (3b19068a) Add multi-sample test (#1941) 5 docker-ci-scripts; engine-weights; training-utils
15 #1942 (fda7075c) update docs (#1942) 8 examples-agent
16 #1943 (f3309c15) remove redundant file (#1943) 2 training-utils
17 #1944 (99229174) register validate_server_group_gpu_indices to ci (#1944) 3 docker-ci-scripts; training-utils
18 #1806 (987b3149) feat: delta weight sync (disk + nccl transports) (#1806) 17 docker-ci-scripts; engine-weights; examples-agent; training-utils
19 #1946 (38eb3626) Add backward compatibility to delta weight updation (#1946) 3 training-utils; engine-weights
20 #1945 (56740126) [docker] upgrade to sglang v0.5.12.post1 (#1945) 8 docker-ci-scripts; engine-weights; training-utils
21 #1949 (875ab40d) [docker] fix sglang pd prefill abort request (#1949) 2 docker-ci-scripts; engine-weights
22 #1923 (b6764131) [examples] add coding_agent_rl: agent-in-sandbox RL minimal demo (#1923) 6 examples-agent; docker-ci-scripts
23 #1956 (d84dad7b) Add slime/agent/ and move sandbox impl inside (#1956) 6 examples-agent; docker-ci-scripts
24 #1957 (e2391132) Minor refactor for coding agent rl logic and remove SWE_LIST_TRAJECTORY (#1957) 3 examples-agent; docker-ci-scripts
25 #1958 (223ef1f6) Move coding_agent_rl's helper function to sandbox.py (#1958) 2 examples-agent
26 #1952 (d3490718) disable param backup (#1952) 4 docker-ci-scripts; training-utils; engine-weights
27 #1953 (b5625a6e) [sglang_utils] flush_cache: log non-200 responses and back off before… (#1953) 1 engine-weights
28 #1960 (ad3b8744) Extract more util code from coding_agent_rl example (#1960) 6 examples-agent; docker-ci-scripts
29 #1961 (5007e32f) [docs] Add docs for agent rl (#1961) 6 examples-agent
30 #1959 (7ee0c14e) rollout: add forge_load to replay dumped rollouts with sglang alive (#1959) 2 engine-weights; training-utils
31 #1954 (82101244) [coding_agent_rl] middleware: shutdown_session drains in-flight handl… (#1954) 2 examples-agent
32 #1962 (39a77193) lint (#1962) 1 engine-weights
33 #1963 (afc323fb) Fix trajectory merging logic (#1963) 9 examples-agent; docker-ci-scripts; training-utils
34 #1965 (09c70450) Don't use sample.index as default rollout_id (#1965) 1 engine-weights; main-owner findings
35 #1947 (b5994e68) feat: add FlashQLA backend for Qwen GDN and skip selected comm memory checks (#1947) 11 docker-ci-scripts; examples-agent; training-utils
36 #1968 (a5770f84) [ci] add check for train_rollout_logprob_abs_diff (#1968) 1 training-utils
37 #1969 (def718c7) support --save-hf for raw mode (#1969) 10 docker-ci-scripts; training-utils; engine-weights
38 #1972 (aeb0a29e) [docker] fix mooncake offload in sglang v0.5.12 (#1972) 2 docker-ci-scripts; engine-weights
39 #1973 (4bb3136d) [docker] fix patch (#1973) 1 docker-ci-scripts; engine-weights
40 #1974 (c01b647a) [docs] Add finer explanation for re-tokenizationi issue (#1974) 1 examples-agent
41 #1977 (dbfcda96) [docker] fix GLM4.7 flash for sglang v0.5.12 (#1977) 1 docker-ci-scripts; engine-weights
42 #1978 (3c5d2033) [docker] Fix qwen3 30B + deepep with sglang 0.5.12 (#1978) 1 docker-ci-scripts; engine-weights
43 #1979 (acac6616) [agent] Add openai and anthropic adapters (#1979) 16 docker-ci-scripts; examples-agent; training-utils
44 #1980 (55d3e416) [Fix] Fix FLOPs accounting for non-MLA attention (#1980) 1 training-utils
45 #1981 (41c94f4b) [agent] extract Adapter class (#1981) 10 examples-agent; training-utils
46 #1982 (cc50ea51) [agent] Fix dropping overlong sample (#1982) 5 examples-agent; training-utils
47 #1983 (963a3526) [docker] fix GLM4.7 Flash in sglang v0.5.12 (#1983) 2 docker-ci-scripts; engine-weights
48 #1984 (a3c5462a) rename rollout_ids to group_ids (#1984) 20 examples-agent; training-utils; engine-weights; main-owner findings
49 #1985 (ac3c6d6c) [test] make tests shorter (#1985) 29 docker-ci-scripts; training-utils
50 #1986 (07782178) [docs] optimize readme (#1986) 18 examples-agent; training-utils
51 #1987 (988ac776) [ci] don't compare ref_logprob and logprob when R3 is on (#1987) 1 training-utils
52 #1988 (106ec33f) [docs] optimize docs (#1988) 11 examples-agent
53 #1989 (0975e42c) [docs] fix doc (#1989) 2 examples-agent root-doc addendum
54 #1990 (e40b8231) [ci] fix kl check on R3 (#1990) 2 training-utils
55 #1967 (05370bf9) Fix PYTHONBUFFERED typo to PYTHONUNBUFFERED=1 (#1967) 48 docker-ci-scripts; examples-agent; training-utils
56 #1991 (b4bff4ab) [ci] Add e2e test for delta weight update (#1991) 5 docker-ci-scripts; training-utils; engine-weights
57 #1950 (5f258746) fix: drop incorrect critic GPU add to rollout_num_gpus in colocate mode (#1950) 1 training-utils
58 #1929 (53cb7393) Feat/minimax m2.5 support (#1929) 9 docker-ci-scripts; training-utils
59 #1928 (d9d149dc) fix: avoid applying rollout temperature to critic values (#1928) 2 training-utils
60 #1992 (d527ba8b) cleanup (#1992) 4 docker-ci-scripts
61 #1993 (7a7aba4e) Patch sglang 0.5.12.post1 for delta sync (#1993) 1 docker-ci-scripts; engine-weights
62 #1975 (bf14dc21) [release] bump to v0.3.0 (#1975) 10 docker-ci-scripts; engine-weights; training-utils
63 #2001 (d3912f4e) [docs] Add step-by-step debug tutorial (#2001) 2 examples-agent
64 #1995 (d719f036) fix(multi-agent): preserve rollout logprobs (#1995) 2 examples-agent; docker-ci-scripts
65 #2013 (44d29ee5) Revert "rename rollout_ids to group_ids" (#2013) 20 examples-agent; training-utils; engine-weights; main-owner findings
66 #2016 (e1b9c90b) Fully support --rollout-external-engine-addrs (#2016) 19 examples-agent; docker-ci-scripts; training-utils; engine-weights; main-owner findings
67 #2020 (89fad404) Accelerate raw HF save with node writers (#2020) 2 training-utils
68 #2021 (a096428f) Support update_from_disk (#2021) 18 examples-agent; docker-ci-scripts; training-utils; engine-weights
69 #2022 (9c0751f1) Add docs for external servers (#2022) 12 examples-agent
70 #2017 (71c2679b) feat: add --balance-by-flops for FLOPs-balanced micro-batching (#2017) 3 training-utils
71 #2028 (1cfc60e4) remove abundant function (#2028) 1 training-utils
72 #2029 (8a5397e2) use balance_by_flops as balance data across mbs (#2029) 3 training-utils
73 #2030 (a73a1496) [examples]: add qwen3.5-9b model config and fully_async example (#2030) 3 examples-agent; docker-ci-scripts
74 #2024 (1de8347e) Log progress while waiting for placement group (#2024) 1 engine-weights
75 #2031 (2bfa5693) Allow only set rollout_id for prompt that return multiple responses (#2031) 1 engine-weights; main-owner findings
76 #2027 (10a8b108) Only upload per sample stats to wandb (#2027) 15 docker-ci-scripts; engine-weights; examples-agent; main-owner findings; training-utils
77 #2034 (564fd9c2) [docs] Add AgentCore RL Toolkit to ecosystem list (#2034) 2 examples-agent root-doc addendum
78 #2035 (8fc32230) Don't upload 'count' to wandb (#2035) 1 engine-weights; main-owner findings
79 #2041 (09e59f63) [docker] always re-register mooncake addr during offloading (#2041) 2 docker-ci-scripts; engine-weights
80 #2042 (c4a53fa3) [docker] update sgl-router (#2042) 1 docker-ci-scripts
81 #2046 (1dbad75c) Revert "[docker] always re-register mooncake addr during offloading" (#2046) 2 docker-ci-scripts; engine-weights
82 #2045 (74dd6551) docs: add vime to the ecosystem section in README (#2045) 2 examples-agent root-doc addendum
83 #2044 (1c4517cc) support rich image config for vlm (#2044) 1 training-utils
84 #2047 (39c50151) [docs] add Miles to slime ecosystem (#2047) 1 examples-agent root-doc addendum
85 #2050 (06aec613) Set RAY_USE_UVLOOP=0 for Ray actors (#2050) 7 engine-weights; training-utils; main-owner findings
86 #2055 (d4aa9c0d) [ci] clean up ci (#2055) 6 docker-ci-scripts; examples-agent; training-utils
87 #2056 (ee72ab5a) Use /v1/loads to re-abort server (#2056) 2 engine-weights
88 #2058 (74591435) [docs] update miles description and chinese version (#2058) 2 examples-agent root-doc addendum
89 #2057 (0efcab01) Allow zero-GPU rollout router startup (#2057) 11 examples-agent; training-utils; engine-weights; main-owner findings
90 #2070 (1b0415a2) [docker] expose sglang load inflight details (#2070) 2 docker-ci-scripts; engine-weights
91 #2036 (5d7296a7) fix(search-r1): stop generation at and (#2036) 1 examples-agent
92 #2072 (fec3da9b) [docker] upgrade sglang to v0.5.13 (#2072) 4 docker-ci-scripts; engine-weights; training-utils
93 #2080 (b7fd1abd) cleanup (#2080) 1 engine-weights; main-owner findings
94 #2081 (4c058f65) sync from internal and cleanup (#2081) 4 engine-weights; training-utils
95 #2067 (a1dddef1) [algo] Add CISPO advantage estimator (MiniMax-M1) (#2067) 9 docker-ci-scripts; examples-agent; training-utils; engine-weights; main-owner findings
96 #2082 (e46ca0a2) Overlapping data loading and sglang initialization (#2082) 3 engine-weights; main-owner findings; training-utils
97 #2086 (96cb409a) Add ci badge to readme (#2086) 2 examples-agent root-doc addendum
98 #2087 (23c6b0d3) Fix CI badge (#2087) 2 examples-agent root-doc addendum
99 #2088 (6269f20d) Add rollout_data_transport nixl (#2088) 9 training-utils; engine-weights; main-owner findings
100 #2093 (872504c1) Support GLM-5.2 (#2093) 29 examples-agent; docker-ci-scripts; training-utils
101 #2005 (243773cf) [coding-agent-rl] Refactor coding-agent RL: turn-node TrajectoryManager + pluggable harness layer (#2005) 27 docker-ci-scripts; examples-agent; training-utils
102 #2100 (77037513) Remove bshd support (#2100) 11 examples-agent; docker-ci-scripts; training-utils
103 #2096 (21b1b33d) docs: drop dangling Dr.GRPO custom-reducer example reference (#2096) 3 examples-agent; training-utils
104 #2102 (8f5e2151) Support top_p mask (#2102) 19 docker-ci-scripts; engine-weights; training-utils; main-owner findings
105 #2101 (5c47ffbe) fix(examples/tau-bench): use RunConfig.agent_strategy in TAU_CONFIGS (#2101) 2 examples-agent
106 #2107 (3fd7927f) Fix wrongly removed RouterArgs registry (#2107) 1 engine-weights
107 #2108 (b9b122c5) Extract append_response_tokens to Sample (#2108) 11 examples-agent; engine-weights; main-owner findings; training-utils
108 #2110 (d495f61c) Extract append_response_tokens to Sample (#2110) 2 training-utils
109 #2111 (112da2c4) [codex] Add Dressage to ecosystem README (#2111) 1 examples-agent root-doc addendum
110 #2118 (8f732538) sync from internal (#2118) 18 docker-ci-scripts; training-utils; engine-weights; main-owner findings
111 #2121 (e3049ac5) Fix bug on non-float reward (#2121) 1 engine-weights
112 #2124 (34a533ba) fix(agent) SWE coding-agent RL stability bugs (abort handling, session cleanup) (#2124) 5 examples-agent; docker-ci-scripts
113 #2125 (a897e1f4) feat(coding_agent_rl): select claude_code/codex harness+adapter pair via SWE_AGENT (#2125) 2 examples-agent; docker-ci-scripts
114 #2143 (122ac0c2) Fix parallel update_from_disk in megatron server (#2143) 1 training-utils
115 #2145 (df926b6a) [docker] fix top_p mask speed issue (#2145) 2 docker-ci-scripts; engine-weights
116 #2135 (e734ee75) feat(gemma4): add Gemma4 dense and MoE support (#2135) 33 examples-agent; docker-ci-scripts; training-utils
117 #2134 (96188292) fix: handle empty colocated weight buckets (#2134) 4 docker-ci-scripts; training-utils; engine-weights
118 #2144 (6a0ee158) perf: fuse PPO logprob entropy computation (#2144) 6 docker-ci-scripts; training-utils
119 #2106 (a2158f1d) feat(examples/strands_sglang): update to strands-sglang 0.4.2 (#2106) 5 examples-agent; docker-ci-scripts
120 #2152 (ca7a7eaf) Optimize memory usage for _VocabParallelLogProbEntropy (#2152) 3 training-utils
121 #2153 (fa3c990a) bugfix (#2153) 1 training-utils
122 #2158 (2b0c9459) Remove ctx.set_materialize_grads(False) which may cause issues (#2158) 1 training-utils
123 #2160 (58fbd73a) Fix CI (#2160) 2 training-utils
124 #2123 (6ad61127) Fix training stuck on all-gather cp (#2123) 1 training-utils
125 #2151 (f8609b8d) fix(update_weight): bracket IPv6 master address in tcp:// init_method (#2151) 1 training-utils; engine-weights
126 #2161 (46d13b19) feat(coding_agent_rl): env-selectable grading protocol + sandbox RPC robustness (#2161) 13 examples-agent; docker-ci-scripts; training-utils
127 #2167 (90c212b5) Always requires rollout_top_p_token_ids when rollout_top_p is not 1.0 (#2167) 1 engine-weights; main-owner findings
128 #2089 (af3d7fff) Disk-level delta weight sync (#2089) 24 docker-ci-scripts; engine-weights; examples-agent; training-utils; main-owner findings
129 #2169 (22cdc6e1) Merging profiling info into router (#2169) 6 docker-ci-scripts; engine-weights; main-owner findings; training-utils
130 direct 23464705 (23464705) Fix router 1 docker-ci-scripts
131 #2173 (1b73ddc1) [docker] Update SGLang patch for PD R3 routed experts (#2173) 5 docker-ci-scripts; engine-weights; training-utils
132 #2172 (a4b8c9c8) [docker] Update training side dependencies (#2172) 2 docker-ci-scripts
133 #2175 (5c530c15) Fix R3 for allgather_cp (#2175) 2 training-utils
134 #2178 (e848052a) [docker] Update dependencies (#2178) 2 docker-ci-scripts
135 #2180 (c7487788) Add --release-train (#2180) 17 docker-ci-scripts; engine-weights; training-utils
136 direct 8cc298b7 (8cc298b7) [docker] fix dockerfile 1 docker-ci-scripts
137 direct 1168380a (1168380a) [docker] fix sglang patch 1 docker-ci-scripts; engine-weights
138 direct 53a87b0a (53a87b0a) [docker] fix patch 2 docker-ci-scripts; engine-weights
139 #2183 (2d909df5) cleanup (#2183) 9 training-utils; engine-weights; main-owner findings
140 #2184 (f27ef35c) sync source_names (#2184) 5 examples-agent; training-utils; engine-weights; main-owner findings
141 #2181 (474861aa) [3/n] Disaggregated rollout: engine-side /pull_weights (#2181) 22 docker-ci-scripts; engine-weights; examples-agent; training-utils; main-owner findings
142 #2185 (680824dd) Support routed_experts_start_len (#2185) 2 training-utils
143 #2208 (fb42ae45) Support reloading the default process group (#2208) 7 docker-ci-scripts; training-utils; engine-weights; main-owner findings
144 #2220 (6d485c42) Optimize update weight (#2220) 15 training-utils; engine-weights; main-owner findings
145 #2210 (50f2d944) Update qwen3-4B.md (#2210) 1 examples-agent
146 #2223 (ea9819f8) Fix --save-hf (#2223) 1 training-utils
147 #2228 (aaf5c209) [docker] upgrade sglang to v0.5.15.post1 (#2228) 12 docker-ci-scripts; engine-weights; training-utils
148 #2248 (e76876db) Support PYTORCH_ALLOC_CONF (#2248) 3 docker-ci-scripts; engine-weights
149 #2249 (66034ab7) Remove --train-memory-margin-bytes (#2249) 4 docker-ci-scripts; training-utils
150 #2250 (2a60f00d) Add lightweight rollout hooks and sampling controls (#2250) 15 docker-ci-scripts; training-utils; engine-weights; main-owner findings
151 #2251 (f655e13d) Internalize mbridge and remove megatron-bridge (#2251) 119 docker-ci-scripts; engine-weights; examples-agent; training-utils
152 #2252 (a6272da0) [release] bump to v0.3.1 (#2252) 22 docker-ci-scripts; engine-weights; training-utils
153 #2257 (06ffdbe2) [docker] support cuda 13 (#2257) 4 docker-ci-scripts
154 #2262 (a74ae3a0) feat(glm5): align Megatron DeepEP training with SGLang rollout (#2262) 45 docker-ci-scripts; engine-weights; examples-agent; training-utils; main-owner findings
155 #2264 (f033ebfc) fix: preserve consecutive tool responses in Qwen3 SFT tokenization (#2264) 2 training-utils
156 #2261 (26e859af) fix(rollout): restore partial continuation token budget (#2261) 2 engine-weights; main-owner findings
157 #2256 (dd4851f2) fix(tools): clamp block max in block_fp8 to avoid NaN weights from all-zero blocks (#2256) 2 training-utils
158 #2254 (351e559f) docs: correct reverse KL definition in OPD guide (#2254) 2 examples-agent
159 #2247 (78156c53) fix: forward dual-clip PPO epsilon (#2247) 4 docker-ci-scripts; training-utils
160 #2246 (95df894a) fix: cast gpu_id to int in sort_key to prevent lexicographic ordering (#2246) 1 engine-weights
161 #2241 (df3d293e) fix: restore negative dataset slice bounds (path@[-100:]) (#2241) 4 docker-ci-scripts; training-utils
162 #2237 (38d99de1) fix: keep dataset order in filter_long_prompt for mixed multimodal data (#2237) 4 docker-ci-scripts; training-utils
163 #2205 (2c6323b1) perf: vectorize REINFORCE++ discounted returns (#2205) 4 docker-ci-scripts; training-utils
164 #2138 (fb735f1f) docs(readme): add Dressage to Chinese ecosystem (#2138) 1 examples-agent root-doc addendum
165 #2133 (19abf05b) docs(examples): list coding_agent_rl in examples/README (#2133) 2 examples-agent
166 #2189 (3b3bce89) [Doc] Clarify PPO/Critic docs after #1856 (#2189) 4 examples-agent
167 #2132 (aed93211) fix(mtp): support multi-head MTP loss logging (mtp-num-layers > 1) (#2132) 1 training-utils
168 #2170 (916b33a6) Fix placement group crash for external engines under debug_rollout_only (#2170) 3 engine-weights; training-utils
169 #2243 (68a73476) fix: restore args.ckpt_step after load_other_checkpoint (#2243) 1 training-utils
170 #2239 (fcbd428b) fix: clear exec_and_wait's spawn lock between logical invocations (#2239) 4 docker-ci-scripts; examples-agent; training-utils
171 #2234 (c1dd9ab2) fix: pair --log-correct-samples rewards with the DP-local samples (#2234) 5 docker-ci-scripts; training-utils
172 #2235 (dd7f0379) fix: whiten advantages over the DP group that includes context parallel (#2235) 4 docker-ci-scripts; training-utils
173 #2236 (b91f59e2) fix: don't overwrite an explicitly set --start-rollout-id (#2236) 2 training-utils
174 #2213 (fb393e59) Fix tau-bench token deltas for reasoning templates (#2213) 3 examples-agent; training-utils
175 #2238 (7e02052e) fix: stop the fully-async rollout dropping completed groups (#2238) 4 docker-ci-scripts; engine-weights; training-utils
176 #2242 (d3c0e79a) fix: honor every eval.defaults key and restore per-dataset stop / min_new_tokens (#2242) 5 docker-ci-scripts; engine-weights; training-utils
177 #2199 (d38dc29c) fix(npu): bracket IPv6 hosts in distributed init methods (#2199) 1 docker-ci-scripts
178 #2266 (681b3adc) Refactor --save-debug-train-data (#2266) 13 docker-ci-scripts; examples-agent; training-utils
179 #2271 (2fa9a442) fix transform_ue8m0 in fp8 convert (#2271) 6 training-utils; engine-weights
180 #2274 (876cd89b) [ROCm] Support the INT4 QAT kernel on ROCm (#2274) 2 training-utils; docker-ci-scripts
181 #2267 (00986d75) Fix model convert when use latest megatron (#2267) 5 training-utils
182 #2276 (41014d1f) Add args check for --save-debug-train-data (#2276) 2 training-utils
183 #2286 (1494c500) fix: improve compatibility with older SGLang versions (#2286) 2 engine-weights; main-owner findings
184 #2216 (e593fa0a) feat: add backend-aware MUSA support (#2216) 39 docker-ci-scripts; training-utils; engine-weights; main-owner findings
185 #2294 (8f20503f) cleanup (#2294) 4 docker-ci-scripts; training-utils
186 #2296 (a0d6d26a) fix(train): skip optimizer and scheduler for eval-only (#2296) 2 training-utils; engine-weights
187 #2114 (045310b2) fix(ppo): preserve raw KL so rollout/kl logging is correct (#2114) 4 docker-ci-scripts; training-utils
188 #2085 (1da1bb19) fix(opd): score teacher logprobs at rollout temperature, not 0 (#2085) 1 engine-weights
189 #2297 (16c15fc2) fix: reject non-positive rollout temperature at parse time (#2297) 2 training-utils
190 #2298 (624b824a) [NFC] Add observability subfolder (#2298) 47 docker-ci-scripts; examples-agent; training-utils; main-owner findings; engine-weights
191 #2312 (1a3fb0a6) docs: remove stale delta NCCL recommendation (#2312) 2 examples-agent
192 #2316 (c403335d) Remove megatron_patch for memory optimization (#2316) 4 training-utils
193 #2317 (a37dd90b) [ci] Clean up tests (#2317) 26 docker-ci-scripts; training-utils; examples-agent
194 #2318 (d8ad1b57) [ci] move fanout_test_helpers to tests/ (#2318) 2 training-utils
195 #2320 (7fc5715c) [cleanup] remove dead code and merge never visited branches (#2320) 32 examples-agent; training-utils; engine-weights; main-owner findings
196 #2321 (7e4ac3be) [cleanup] extract create_weight_updater to make actor's init func cleaner (#2321) 3 training-utils; engine-weights
197 #2322 (daebd20b) [cleanup] Remove rollout_validation.py (#2322) 3 engine-weights; main-owner findings; training-utils
198 #2323 (d8ff51c4) [cleanup] Refactor rollout.py (#2323) 8 docker-ci-scripts; engine-weights; main-owner findings; training-utils
199 #2326 (a067ce6f) [doc] update doc (#2326) 3 examples-agent root-doc addendum
200 #2327 (08160d3f) feat: allow forcing UE8M0 FP8 scales (#2327) 3 training-utils
201 #2330 (a3f50097) [docs] fix out-dated doc (#2330) 26 docker-ci-scripts; examples-agent; training-utils
202 #2334 (3778dbf6) [release] bump to v0.3.2 (#2334) 8 examples-agent; docker-ci-scripts; engine-weights
203 #2272 (4c1ab402) feat: support streaming external rollouts (#2272) 8 docker-ci-scripts; engine-weights; main-owner findings; training-utils
204 #2340 (4c193f1f) fix(agent): abort timed-out SGLang requests via router workers (#2340) 1 examples-agent

@aoshen02

Copy link
Copy Markdown
Collaborator Author

Follow-up audit of 7b0631f: confirmed the Vime CLI is --vllm-custom-pull-weights-pre-read-hook; automatic forwarding produces vLLM --custom-pull-weights-pre-read-hook, stored in ModelConfig and read by the worker before pull. This mirrors Slime server-owned hook configuration rather than a per-update RPC argument. No old --custom-update-weight-pre-read-path / custom_update_weight_pre_read_path references remain in code, tests, docs, examples or Docker patches. Both English/Chinese docs and the example use the new name. The real E2E log confirms the hook reached vLLM startup configuration and executed for published versions 1 and 2. Remote HEAD matches 7b0631f; working tree and diff check are clean. No further code changes were necessary. Published images have not been updated by this change.

@aoshen02

Copy link
Copy Markdown
Collaborator Author

Local H200 validation at 8f0867e, with trace fix 06ad2e0:

  • h200-0: existing Qwen3-4B streaming partial-rollout E2E completed 2 training steps (Ray raysubmit_i4tvbs5iZtt888tE succeeded). Train/rollout logprob abs diff 0.014115 → 0.012470. Both steps had zero rewards/gradients and 100% truncation: not a convergence or nonzero-update claim. Initial Ray agent port collision was resolved using isolated ports, not product changes.
  • h200-1: existing Qwen3-VL-2B Geo3K two-turn E2E exited 0. Additional real streaming cancellation preserved 16 tokens and resumed to 128, checking exact prefix preservation and loss-mask/logprob lengths, top_p=0.9/top_k=-1.
  • NIXL P/D (one GPU per role on h200-1): 5 real TITO transfers succeeded with 42,205,184 bytes each. Runtime confirms #42644 KV/EC extra_args forwarding; prefill handshake was nonempty and decode received cached prompt tokens.
  • Found trace stage omission: native request_metrics previously produced attributes/summary but no phase children. Fixed to render measured native queue/TTFT/generation phases, not label these as SGLang bootstrap/forward stages. Five further real requests produced prefill/decode/summary children. This is a duration-reconstructed timeline, not cross-host timestamp synchronization. Worker-byte/time throughput now has guarded conversion; 7 focused unit tests pass.
  • Experimental image pr410-closeout-r10-20260909 only, source copied into containers. No latest promotion. Full GPU CI build is being requested; not yet claimed green.

@aoshen02
aoshen02 force-pushed the codex/slime-2340-sync branch 2 times, most recently from 3f31bf0 to dd5f42f Compare September 14, 2026 15:05
aoshen02 and others added 12 commits September 15, 2026 00:43
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Also correct native contributing CI guidance during the full-tree audit.

Assisted-by: OpenAI Codex
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Keep HTTP context cleanup and rethrow the original network failure without cancelling its caller. Add real loopback regression and translate streaming interval/terminal-event coverage into the registered rollout tests.

Assisted-by: OpenAI Codex
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Assisted-by: OpenAI Codex
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Supply the tokenizer vocabulary required by the Qwen3 parser and avoid shadowing an installed transformers package during collection.

Assisted-by: OpenAI Codex
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Assisted-by: OpenAI Codex
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
@aoshen02
aoshen02 force-pushed the codex/slime-2340-sync branch from dcc3570 to c7d56ec Compare September 15, 2026 00:45
@CalvinXKY

Copy link
Copy Markdown
Collaborator

CI is failing

@CalvinXKY
CalvinXKY merged commit 791f101 into vllm-project:main Sep 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants