Repository navigation
What's Changed
- ci: move Docker builder to us-central1-a by @sitabulaixizawaluduo in #1640
- fix(trainer): run initial evaluation before first update by @harooos in #1636
- gov: add Le8r0nJames to codeowned scopes by @sitabulaixizawaluduo in #1641
- feat(workflow): support multimodal agent trajectories by @sitabulaixizawaluduo in #1606
- fix(infra): prevent leaks after RTensor delete failures by @primorLee in #1633
- perf(engine): stream Megatron microbatches from CPU by @daihaowz in #1622
- fix(ppo): track trajectory truncation explicitly by @harooos in #1637
- feat: add Bailing V3 SWE SFT support by @dingzhiqiang in #1598
- fix(infra): bind forked workers to reserved ports by @yulangz in #1657
- perf: reduce duplicated VLM rollout processing and transfers by @sitabulaixizawaluduo in #1671
- feat: add MTP training with speculative decoding rollout by @HT-Yuan in #1659
- feat(trainer): add multi-objective policy distillation by @yulangz in #1592
- fix(dataset): align VLM SFT loss masks with responses by @CharlesXu-HQ in #1679
- docs: repoint doc links left behind by the bilingual docs split by @tonydzi in #1685
- feat(platforms): add ROCm platform support for AMD GPUs by @Vivicai1005 in #1677
- fix(recover): publish immutable checkpoints via latest pointer by @Le8r0nJames in #1616
- feat: harden Ray and SWE training workflows by @fishcrap in #1696
- feat(infra): publish inference metrics discovery targets by @daihaowz in #1700
- feat: add process rewards for agent training by @dingzhiqiang in #1701
- feat(engine): support Bailing V3 RL with NCCL weight updates by @dingzhiqiang in #1683
- feat: add Arena single- and multi-stream rollouts by @yulangz in #1702
- fix(utils): resolve test model paths lazily by @EazyReal in #1568
- fix(engine): make ragged transport padding objective-safe by @EazyReal in #1566
- feat: support Qwen3.5 hybrid AWEX training and SWE data by @dingzhiqiang in #1703
- build: remove unused blosc dependency by @sitabulaixizawaluduo in #1707
- fix(rollout): train safely on incomplete groups by @EazyReal in #1563
- feat(v2): enable multimodal processor in the data proxy by @sitabulaixizawaluduo in #1694
- fix(trainer): release evaluation RTensors after use by @zhuqiweigit in #1716
- fix(utils): handle time checks without distributed init by @Andrew9603 in #1715
- fix(workflow): account for thinking prefill in Geometry3K rewards by @sitabulaixizawaluduo in #1708
- fix(v2): preserve per-interaction agent rewards by @hsusul in #1662
- docs: document Qwen3.5 and Bailing V3 support by @sitabulaixizawaluduo in #1718
- test: align dispatcher and VLM tests with current contracts by @sitabulaixizawaluduo in #1717
- fix(v2): avoid storing uncollected non-head compute results by @sitabulaixizawaluduo in #1713
- fix(v2): skip fallback reward retries for failed rollout groups by @sitabulaixizawaluduo in #1710
- fix(infra): preserve RTensor references when dumping trajectories by @sitabulaixizawaluduo in #1709
- perf(v2): reuse grouped VLM processor outputs and image transfers by @sitabulaixizawaluduo in #1711
- perf: reduce VLM CPU broadcast and microbatch memory overhead by @sitabulaixizawaluduo in #1697
- fix(recover): restore colocated inference before admission by @Le8r0nJames in #1726
- fix(examples): retain attributed Arena failures with zero reward by @Le8r0nJames in #1724
- fix(engine): adapt colocated AWEX to SGLang scheduler APIs by @Le8r0nJames in #1723
- fix(proxy): preserve configured chat template defaults by @Le8r0nJames in #1725
- fix(reward): validate scorer configuration before PRM execution by @Le8r0nJames in #1727
- feat(trainer): add MiMo-inspired RL training metrics by @dingzhiqiang in #1736
- fix(trainer): offload AWEX rollout before auxiliary scoring by @Le8r0nJames in #1738
- fix(engine): avoid AWEX idle-loop collective deadlock by @yulangz in #1737
- fix(utils): treat missing packages as not matching version checks by @hsusul in #1689
- fix(utils): honor custom IPv6 probe addresses by @Andrew9603 in #1740
- feat(engine): support native MTP-only and packed Qwen SFT by @dingzhiqiang in #1719
- feat(inference): support PRM scorers in v2 trajectory export by @harooos in #1735
- fix: preserve tool call IDs and message grouping in agent history by @harooos in #1734
- feat(engine): support VLM context parallelism by @sitabulaixizawaluduo in #1672
- fix(examples): reject generic GameAgent response failures by @Le8r0nJames in #1748
- fix(reward): complete PRM fallback and tool-result status handling by @Le8r0nJames in #1747
- fix(examples): complete Arena metrics and generation defaults by @Le8r0nJames in #1746
- build: upgrade Megatron Core to 0.19 and Bridge to 0.6 by @sitabulaixizawaluduo in #1733
- feat(v2): support partial rollout groups by @sitabulaixizawaluduo in #1721
- fix(engine): preserve colocate state across offload and recovery by @dingzhiqiang in #1749
- fix: reclaim training caches and bind NUMA by CUDA UUID by @dingzhiqiang in #1756
- feat(reward): preserve episode outcomes and support mean-only groups by @dingzhiqiang in #1750
- fix(dataset): drop ViRL39K rows with unextractable boxed answers by @MohammadHijjawi97 in #1758
- feat(models): support Qwen Flash Next vision and chunked training by @dingzhiqiang in #1751
- feat: add training throughput, FLOPs and MoE balance metrics by @yulangz in #1693
- fix(v2): propagate configured training RPC timeout to data proxy by @sitabulaixizawaluduo in #1712
- chore(deps): bump awex to 0.9.0 by @sitabulaixizawaluduo in #1772
- fix(reward): score LaTeX Geometry3K answers as whole expressions by @MohammadHijjawi97 in #1760
- fix(examples): preserve tau2 user simulator tool history by @MaybeIcanShow in #1759
- fix(v2): forward frequency_penalty and stop in vLLM bridge requests by @MohammadHijjawi97 in #1762
- fix(dataset): keep Geometry3K SFT image_grid_thw two-dimensional by @MohammadHijjawi97 in #1763
- fix(infra): reap detached Slurm worker descendants by @dingzhiqiang in #1771
- fix(experimental): reject non-inline image sources before decoding by @llz3724 in #1775
- gov: update code ownership for core and v2 modules by @sitabulaixizawaluduo in #1778
- feat(ppo): make loss aggregation configurable by @EazyReal in #1546
- fix: stabilize Qwen Flash Next multimodal RL by @dingzhiqiang in #1774
- fix(dataset): forward configured dataset_kwargs to local loaders by @MohammadHijjawi97 in #1761
- feat(engine): support independently normalized named losses by @fishcrap in #1782
- feat(engine): add native R3 router replay by @yulangz in #1496
- feat(engine): add CPU-staged Megatron AdamW by @yulangz in #1613
- fix(infra): quote Slurm container environment values by @Le8r0nJames in #1793
- fix(v2): pin generation versions before awaiting responses by @cyanseek in #1791
- feat(trainer): add composable advantage computation by @fishcrap in #1784
- refactor: unify AWEX converters and adapters across v1 and v2 by @sitabulaixizawaluduo in #1684
- Reduce temporary padding allocations when merging rollout batches by @kiteretsu903 in #1766
- feat(v2): add recipe-based data engineering and TIR example by @sitabulaixizawaluduo in #1780
- fix(trainer): drain single-teacher RTensor input caches by @zhuqiweigit in #1800
- fix(infra): keep commas and equals in local scheduler env var values by @rudycelekli in #1803
- fix(engine): restore FSDP learning-rate scheduler state by @zhuqiweigit in #1801
- fix(utils): share the Saver frequency decision across models in a step by @MohammadHijjawi97 in #1802
- fix(infra): close owned HTTP sessions on every exit by @zmuxuny in #1809
- fix(examples): report the correct tau2 message class by @bianyh in #1813
- fix(utils): split multimodal payloads by trajectory rows by @zmuxuny in #1812
- fix(utils): exhaust port candidates without duplicate draws by @bianyh in #1815
- fix(engine): backport SM90 GDN decode padding protection by @yulangz in #1806
- fix(engine): route Megatron residency memory calls through the device platform abstraction by @li-lizhe in #1787
- ci: update GCP runner image to 20261008-454 by @sitabulaixizawaluduo in #1829
- test(v2): align AWEX barrier fixture with transfer plan by @sitabulaixizawaluduo in #1830
- fix(engine): correct FSDP TP forward layout and Qwen3 norm gradients by @ActuallyEdward in #1822
- feat(engine): reclaim retained AWEX activation storage by @yulangz in #1779
- feat: add Qwen3.8-27B Arena RL training by @dingzhiqiang in #1811
- feat(engine): configure Qwen vision freezing and visual cache reuse by @dingzhiqiang in #1826
- fix: correct Arena recovery, AWEX ranks and metric updates by @dingzhiqiang in #1828
- feat(tools): add reproducible FSDP train-step benchmark by @bianyh in #1824
- fix: enable Qwen3.5 VLM chunked loss and prefill graph control by @yulangz in #1821
- fix(engine): restore aiter MoE weight layout after online weight updates by @xiazhahe in #1834
- feat(docker): add Dockerfile.rocm for AMD ROCm images by @xiazhahe in #1820
- feat(platforms): Add Intel GPU (XPU) support for single-GPU training by @SjeYinTeoIntel in #1832
- test(engine): adapt FSDP tests to support Intel GPUs (XPU) by @SjeYinTeoIntel in #1833
- docs: use Huawei Ascend in README and NPU installation guide by @p40www in #1819
- fix(experimental): preserve concat history and validate tool output by @dingzhiqiang in #1827
- feat: add score centering for SGLang FSDP training by @ActuallyEdward in #1817
- fix(engine): align Qwen VLM image preprocessing across engines by @dingzhiqiang in #1825
- fix(reward): preserve boxed Geometry3K answer expressions by @ActuallyEdward in #1868
- feat(engine): support FSDP TP/CP score centering with TIS by @ActuallyEdward in #1855
- test(ppo): isolate score centering tracker in unit tests by @sitabulaixizawaluduo in #1881
- chore: bump version to v2.1.1 by @sitabulaixizawaluduo in #1880
New Contributors
- @primorLee made their first contribution in #1633
- @CharlesXu-HQ made their first contribution in #1679
- @tonydzi made their first contribution in #1685
- @Vivicai1005 made their first contribution in #1677
- @zhuqiweigit made their first contribution in #1716
- @Andrew9603 made their first contribution in #1715
- @hsusul made their first contribution in #1662
- @MohammadHijjawi97 made their first contribution in #1758
- @MaybeIcanShow made their first contribution in #1759
- @llz3724 made their first contribution in #1775
- @cyanseek made their first contribution in #1791
- @kiteretsu903 made their first contribution in #1766
- @rudycelekli made their first contribution in #1803
- @zmuxuny made their first contribution in #1809
- @bianyh made their first contribution in #1813
- @li-lizhe made their first contribution in #1787
- @xiazhahe made their first contribution in #1834
- @SjeYinTeoIntel made their first contribution in #1832
- @p40www made their first contribution in #1819
Full Changelog: v2.1.0...v2.1.1