$ cat alignment/month/2026-10-01.log
the month in review · October 2026
verl lands score centering for bypass-mode REINFORCE
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
Operators gain TPU SFT and GRPO recipes, a VeOmni training backend, and a breaking removal of SGLANG_USE_CPU_ENGINE.
[rollout, vllm, algo, fsdp, trainer, doc] feat: score centering for bypass-mode REINFORCE verl-project/verl
The new loss implements RFC #8009 on top of Marek & Ryabinin's paper, targeting the drift term E_q[R] * E_q[grad log p] that pulls the trainer toward the wrong policy when rollout and training distributions diverge. If you run bypass-mode REINFORCE, your loss now includes a centering term you did not have last month; expect changed gradient magnitudes, not identical runs.
[rollout] remove leftover todo ENV, remove SGLANG_USE_CPU_ENGINE environment (#8069) verl-project/verl
The unconditional SGLANG_USE_CPU_ENGINE=1 set and del in _load_sglang() is gone from the rollout replica loader, so any environment or launch script that exported it must be cleaned up. SGLang rollouts now take the server's own CPU-engine decision.
[doc, hardware, worker, trainer] feat: add SFT support for TPU using TorchTitan engine (#8098) verl-project/verl
SFT on TPUs now runs through TorchTitan with no TPU-specific checks in verl core: the ReduceOp.AVG, all_gather_object and FSDP2 workarounds are pushed down into the engine layer. Read this as the path to start SFT on TPU hardware instead of keeping it on GPU for post-training.
[hardware] feat: enable TPU GRPO with TorchTitan and vLLM via verl-hardware-plugin verl-project/verl
examples/tpu/grpo/run_qwen3_4b_torchtitan.sh runs Qwen3-4B-Base GRPO on GSM8K with TorchTitan training, vLLM rollout, and verl-hardware-plugin. TPU GRPO is now a shipped recipe rather than a branch you maintain yourself, though the launch surface moved out to the plugin.
[ckpt] feat: add veomni model merger verl-project/verl
The new merger turns a DCP distributed checkpoint into a single model export, replacing the scatter of scripts most teams keep for shipping a trained policy out of verl. Pair it with the TP and ETP support added to Bridge checkpoint conversion.
[vllm, hardware] fix: vLLM-Ascend 0.23 sched_yield on ARM hosts and FIA causal mask for genuine decode (#8144) verl-project/verl
vLLM-Ascend 0.23 needed two NPU fixes, a sched_yield call on ARM hosts and an FIA causal mask that only applies to genuine decode, and both are forward-ported and adapted to main's refactored apply_npu_vllm_patches(). If you pin vLLM-Ascend 0.23 on ARM nodes, this determines whether generation is correct at all.
[megatron] fix: backward through chunked vocab-parallel entropy verl-project/verl
With the Megatron engine, entropy_from_logits_with_chunking=True failed in backward with a RuntimeError about a variable modified by an inplace operation whenever entropy stayed in the graph. The fix unblocks chunked-vocab entropy training that had been silently unavailable on Megatron.
[megatron,worker] fix: offload actor parameters after disaggregated weight sync (#7631) verl-project/verl
In disaggregated mode with a non-naive checkpoint backend, Megatron actor parameters stayed on GPU after update_weights(). They now move back to CPU, which is where the memory you budgeted for afterward actually goes.
$ ls alignment/month/ # the briefings behind this review
Keep up with Alignment & Post-training in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.