Skip to content

Publish complete weight revisions and drain accepted rollout work - #18

Merged
kaiwenKevinn merged 4 commits into
NetX-lab:mainfrom
tcyjohn:codex/final-publication-20261022
Oct 23, 2026
Merged

kaiwenKevinn merged 4 commits into
NetX-lab:mainfrom
tcyjohn:codex/final-publication-20261022

Conversation

@tcyjohn

@tcyjohn tcyjohn commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Part 1 of 3. Merge this series in order: #18 → #19 → #20.

Publishing the same optimizer revision twice can leave the sender waiting while receivers skip a reused transfer identity. Restarted services can also retain an obsolete communication session. Each transfer now receives a fresh snapshot identity and carries the actual optimizer revision. NCCL sessions follow physical receiver membership, with a shared listener and separate store namespaces; superseded communicators are released after replacement succeeds.

Services close admission, drain active requests, install the complete physical TP worker set, reset the prefix cache, and then reopen. Core ranks share preparation and export failures, and the transport preserves the producer and receive-stream dependencies.

Publication pauses retain ownership of unsubmitted tasks and drain work already accepted by the runner. Admission is serialized with pause, timeout notifications do not consume successful-result credit, and publication and prefetch use completed-update indices.

Validation: 170 CPU cases passed on the standalone publication candidate, including request lifetimes, TCPStore lifecycle and a real two-rank collective. The complete three-PR series also passed a fresh 50-update Qwen3-4B run on four GPUs: 200 complete GRPO groups, 800 trajectories, 12 successful Hybrid training batches, four evaluations of the same 20 tasks, final physical-worker publication receipts, and clean audit, cleanup and Slurm exit. History consolidation preserves the validated production code. A follow-up test-only correction uses asyncio.TimeoutError so the drain-timeout assertion also works on Python 3.10.

This is the first PR in the series. The EHP lifecycle PR connects dynamic receiver selection and keeps Hybrid loans across ordinary publication.

This three-part series supersedes #16 and #17.

Drain admitted requests before installation and reopen only after physical TP worker receipts and prefix-cache reset. Give each transfer a fresh snapshot identity and actual optimizer revision, while renewing NCCL sessions only when receiver membership changes.

Keep training ranks in a common export failure protocol, fence NCCL stream dependencies, and ignore stale startup commands. Omit the unused KV reservation and migration APIs.

Validation: 59 distinct targeted CPU cases passed across publication, serving, NCCL lifecycle, and two-rank collective export tests.
@kaiwenKevinn
kaiwenKevinn merged commit a914660 into NetX-lab:main Oct 23, 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