Skip to content

v1.0.0

Choose a tag to compare

@garrett4wade garrett4wade released this 02 Mar 15:04
· 321 commits to main since this release
99ce534

馃殌 Key Highlights

Release Notes

Online RL Training

  • Seamlessly train any agents by configuring a base_url and api_key鈥攏o code changes required and no heavy dependencies.
  • Check out the OpenClaw RL training example for more details.

Archon Engine

  • A fully working, PyTorch-native 5D parallel training engine.
  • Includes features like:
    • Automatic HF format conversion
    • Zero-bubble pipelining
    • torch.compile
    • FSDP (Fully Sharded Data Parallel)
    • Selective activation support

AI-Assisted Coding

  • Official commands and skills to streamline development and enable easy customization.

Infrastructure Upgrade

  • Transition from the previous SPMD architecture to a more efficient single-controller architecture.

uv Installation Support

  • Easily set up training environments by running the simple command: uv sync.

What's Changed

  • feat: replace legacy math parsing with math-verify by @rchardx in #739
  • Add installation instructions for Ascend NPU by @HwVanICI in #748
  • [Bug Fix] Fix Tools compatibility, max_token restrictions, and EOS token issues in Proxy mode by @yulangz in #736
  • refactor: modify engine and controllers to support the single-controller mode with the same trainer by @garrett4wade in #753
  • VLM Training on NPU by @HwVanICI in #746
  • refactor: move device utilities to platform classes and io_struct by @garrett4wade in #757
  • Fix: Implement get_device_stats() for train_controller by @HwVanICI in #762
  • refactor: single-source task_id generation in submit methods by @garrett4wade in #759
  • [Bug Fix] Camel example with wrong and missing agent arguments by @HwVanICI in #766
  • feat: use name_resolve for worker discovery and fix perf_tracer in the single-controller mode by @garrett4wade in #764
  • [Feature] Implement Single-Controller XCCL Weight Update by @HwVanICI in #754
  • feat: Implement slurm scheduler by @garrett4wade in #767
  • Ray Scheduler Implementation for Single Controller by @HwVanICI in #741
  • refactor: use callbacks to implement xccl weigh transfer and avoid busy waiting during rollout by @garrett4wade in #769
  • [Testing] Update GCP image to accelerate CI testing by @nuzant in #772
  • refactor: unifying launcher, scheduling spec, yaml configs, and training scripts by @garrett4wade in #770
  • feat: improve logging by @garrett4wade in #771
  • refactor: separate megatron imports and installation from FSDP by @garrett4wade in #773
  • minor fix: vLLM LoRA request cleanup for issue #751 by @TinLongYu in #765
  • fix: refactoring proximal logp recompute condition by @garrett4wade in #780
  • [Feat] Add FP8 training support by @fishcrap in #758
  • Enhance host IP detection in areal.utils.network by @HwVanICI in #778
  • chore: remove the ad-hoc should_broadcast parameter in rpc servers by @garrett4wade in #774
  • feat: support colocated engines in the single-controller mode by @garrett4wade in #779
  • chore: update readme by @garrett4wade in #782
  • docs: restructure AGENTS.md and add CLAUDE.md symlink by @rchardx in #783
  • chore: Expose error when lauch sglang server by @ZiyiTsang in #781
  • refactor: simplifying the implementation of customized workflow with context management by @garrett4wade in #785
  • chore: Expose error when launching vllm server by @garrett4wade in #790
  • refactor: allow dynamic batch size without the dynamic_filtering function by @garrett4wade in #786
  • fix: fix ray scheduler in the single-controller mode by @garrett4wade in #791
  • fix inference engine addr resolving logic by @garrett4wade in #792
  • chore: minor fix doc formula by @ZiyiTsang in #793
  • doc: update docs for grpo and related algorithms by @garrett4wade in #794
  • refactor: migrate grouped rollout from customized workflows to inference engines by @garrett4wade in #789
  • Single-controller LoRA RL fine-tuning with vLLM by @gursimar in #735
  • [Feature] Group-level data redistribution by @nuzant in #800
  • critical fix: passing is_eval and group_size from rollout controller to engines by @garrett4wade in #801
  • Update NPU doc by @HwVanICI in #803
  • feat: add Archon Engine - PyTorch native FSDP2 training backend by @rchardx in #799
  • [Feature] Tree training support (Megatron Engine) for agentic RL training by @nuzant in #804
  • Add NPU RLVR example by @HwVanICI in #798
  • [Bug Fix] XCCL weight synchronization fix for the single controller lora by @gursimar in #796
  • [Bug Fix] Fix import error introduced by tree training PR by @nuzant in #808
  • chore: remove legacy code, config, and documentation by @garrett4wade in #806
  • fix: update tree_attn function name to patch_bridge_for_tree_training by @rchardx in #809
  • fix: prevent fake PID killing in LocalScheduler tests by @rchardx in #810
  • feat(archon): add torch.compile support and profiling tools by @rchardx in #807
  • Add RayScheduler to sft.py by @HwVanICI in #814
  • fix: add lm_head.weight into index when index file exists by @jwhj in #816
  • feat: use subprocess to fork colocated workers by @garrett4wade in #815
  • feat(archon): add Context Parallelism (Ulysses SP) support by @rchardx in #817
  • refactor(data): simplify pad_mb_list alignment parameters by @rchardx in #820
  • refactor: unify HTTP client management in workflow_context by @garrett4wade in #819
  • feat(archon): enable TP + AC + compile compatibility with _WaitAsyncWrapper by @rchardx in #821
  • [FEAT] Add direct TE FP8-PyTorch FP8 conversion by @fishcrap in #802
  • refactor(core): simplify HTTP client lifecycle with event loop cleanup by @garrett4wade in #823
  • feat: Add AgentWorkflow API and migrate workflow resolution to RemoteInfEngine by @garrett4wade in #825
  • feat(scheduler): refactor fork_workers to public API with custom command support by @garrett4wade in #826
  • [FIX] correct vLLM config defaults for chunked prefill and prefix caching by @fishcrap in #827
  • refactor(openai): modularize proxy architecture and add inline mode by @garrett4wade in #829
  • chore(doc): update readme by @garrett4wade in #830
  • fix(test): Fix math-verify tests by @garrett4wade in #831
  • feat(archon): add Expert Parallelism (EP) support for MoE models by @rchardx in #833
  • fix(moe): correct histc max param by @rchardx in #835
  • feat(archon): add explicit FSDP prefetching for EP by @rchardx in #834
  • feat(archon): add EP-aware padding wrapper for MoE grouped_mm by @rchardx in #836
  • testing: fix CI, skip tests that cannot run on A100 GPUs by @nuzant in #838
  • feat(archon): add Expert Tensor Parallelism (ETP) support for MoE models by @rchardx in #839
  • feat: support tree training for FSDP engine by @nuzant in #837
  • fix: remove duplicate setup in gsm8k_rl by @v3nividiv1ci in #842
  • refactor(archon): cleanup parallel dims and FSDP config for pipeline parallelism by @rchardx in #841
  • refactor(tree_attn): decouple FSDP and Megatron implementations by @rchardx in #844
  • feat(workflow): add Anthropic Messages API support for RL training by @fishcrap in #840
  • Wht/fix/fix concat when end with eos and pad by @yulangz in #846
  • [BugFix] VLM RLVR add reward func by @PopSoda2002 in #851
  • [BugFix] Fix wandb bug by @PopSoda2002 in #852
  • feat(archon): add DCP-based HF checkpoint save/load with MoE expert support by @rchardx in #849
  • ci(docker): modernize dependency management and Docker build pipeline by @garrett4wade in #843
  • Bump v0.5.2 by @garrett4wade in #855
  • ci(fix): Fix the image tag upon release by @garrett4wade in #856
  • Fix the loop exit condition in the agenerator by @yulangz in #858
  • feat(launcher): auto-set OMP_NUM_THREADS based on cpus_per_task by @rchardx in #859
  • feat(archon): use meta device + DCP for memory-efficient model init by @rchardx in #860
  • feat(fsdp): add memory_efficient_load option for large model initialization by @rchardx in #862
  • ci(docker): add DeepSeek-V3 kernels and modernize tooling by @fishcrap in #861
  • feat(workflow): Add LangChain agent integration for training by @fishcrap in #865
  • chore: add Claude Code configuration for AReaL by @rchardx in #866
  • Bump v0.5.3 by @garrett4wade in #869
  • fix(ci): use dev image for CI testing by @garrett4wade in #870
  • feat(archon): add pipeline parallelism (PP) support for Archon engine by @rchardx in #864
  • feat(utils): add dynamic PYTHONPATH in get_env_vars by @nuzant in #867
  • chore(claude): refactor agent architecture and complete ecosystem by @rchardx in #873
  • perf(tree_attn): Add lazy attention mask creation for tree training by @nuzant in #872
  • chore(infra): consolidate infrastructure and add create-pr command by @garrett4wade in #875
  • fix(scheduler): Fix SLURM scheduler spec.image and spec.additional_bash_cmds arguments. by @nuzant in #876
  • feat(archon): enable PP > 1 for RL training with XCCL weight sync by @rchardx in #877
  • feat(tree_attn): implement Triton kernel by @alumkal in #874
  • testing: update GCP image for CI by @nuzant in #881
  • refactor(archon): extract runner and weight sync into separate modules by @rchardx in #882
  • docs: streamline CLI usage and reorganize tutorials by @garrett4wade in #878
  • fix(archon): enable torch.compile for attention_norm/ffn_norm by @rchardx in #886
  • Revert "fix(archon): enable torch.compile for attention_norm/ffn_norm" by @rchardx in #887
  • refactor(api): deprecate AgentWorkflow inheritance requirement by @garrett4wade in #883
  • refactor: streamline CLI usage and remove unused files by @garrett4wade in #880
  • refactor(archon): consolidate and simplify test suite by @rchardx in #888
  • fix(tree_attn): Fix some bugs in tree training for FSDP and Megatron engines by @nuzant in #889
  • fix(archon): skip output merge in PP schedule to halve memory usage by @rchardx in #890
  • feat(workflow): add Anthropic Claude SDK integration for RL training by @fishcrap in #885
  • docs: add checkpointing, metrics tracking, and workflow guides by @garrett4wade in #891
  • docs: add agent workflow reference and update agentic RL docs by @garrett4wade in #893
  • docs: add Important Metrics to Monitor section by @xssstory in #894
  • feat(tau2): Add Tau2 agentic RL training example with proxy server by @nuzant in #892
  • feat(archon): add Interleaved1F1B pipeline parallel schedule support by @rchardx in #895
  • docs: add proxy architecture and dataflow diagrams by @fishcrap in #897
  • build: migrate from setuptools to uv build backend by @garrett4wade in #899
  • refactor(trainer): move trainer modules from experimental to areal/trainer by @garrett4wade in #896
  • fix(datapack): use balanced greedy partition for equal DP batch splits by @garrett4wade in #898
  • Fix update_weight_lora_xccl vllm 0.14.0 by @HwVanICI in #902
  • docs: add Archon engine tutorial and AI-assisted development guide by @rchardx in #900
  • docs: reorganize README and rename agent_workflow example by @garrett4wade in #903
  • docs: add agent_workflow to table of contents by @fishcrap in #905
  • Add qwen3-vl-dense support and example on Ascend by @HwVanICI in #868
  • docs: improve grammar and clarity in debugging and OOM guides by @garrett4wade in #904
  • feat(utils): add network filesystem validation for shared paths by @rchardx in #906
  • docs: update roadmap to Q1 2026 and improve CI/CD documentation by @garrett4wade in #908
  • feat(skills): add /add-archon-model skill for new model support by @rchardx in #914
  • fix(ci): disable local scheduler test and docker install validation in CI by @nuzant in #913
  • fix(scheduler): Set CUDA_VISIBLE_DEVICES in sbatch script before Python starts by @nuzant in #910
  • fix(tree-attn): Handle dummy trie in Megatron and optimize attention mask memory by @nuzant in #911
  • fix(ci): fix github release workflow by @garrett4wade in #909
  • feat(archon): Add tree training support for Archon engine by @nuzant in #912
  • feat(archon): add ZBVZeroBubble pipeline schedule support by @rchardx in #916
  • docs: remove outdated design document by @garrett4wade in #917
  • refactor(infra): move scheduler and rpc modules under areal/infra by @garrett4wade in #918
  • refactor(infra): move launcher modules to infra/launcher subpackage by @garrett4wade in #919
  • docs: update CLI reference examples to use train.py by @garrett4wade in #923
  • refactor(tree-attn): simplify tree attention plumbing and restructure attention package by @rchardx in #920
  • Empty cache in npu clear memory by @HwVanICI in #924
  • refactor(utils): reorganize domain-specific utils into natural homes by @rchardx in #925
  • feat(checkpoint): add async checkpoint saving for ArchonEngine by @rchardx in #926
  • chore(agents): port agent infrastructure to OpenCode by @rchardx in #934
  • fix(utils): correct initial log step to start from 0 by @fishcrap in #935
  • fix(agents): Filter out max_turns from kwargs before API calls by @fishcrap in #937
  • feat(archon): add InterleavedZeroBubble (ZB1P) pipeline schedule by @rchardx in #936
  • docs: Add tree training documentation and tau2 example results by @nuzant in #938
  • fix(engine): improve LoRA weight update with versioned naming by @garrett4wade in #928
  • fix(archon): default score_before_experts to False for HF parity by @rchardx in #940
  • feat(archon): add deterministic training mode for reproducibility by @rchardx in #943
  • fix(proxy): use unique role names for proxy workers to fix rollout dump version=0 bug by @yulangz in #941
  • VLM multinode training example and performance comparison with verl on Ascend NPU by @HwVanICI in #932
  • refactor(tests): move tests from areal/tests to top-level tests directory by @garrett4wade in #944
  • refactor(proxy): replace URL-path session isolation with API-key-based auth by @garrett4wade in #946
  • feat(proxy): add proxy gateway and online RL training mode by @garrett4wade in #947
  • feat: correct routed_experts from sglang(trick of routing_replay) by @ZiyiTsang in #884
  • chore: rename online RL examples to make it more attractive by @garrett4wade in #952
  • feat(archon): improve pipeline parallelism memory handling by @rchardx in #951
  • Update README by @garrett4wade in #953
  • feat(tau2): Add Tau2 MOE Model Training Configs and Update README by @GurrenLagann97 in #949
  • chore: auto-configure adam_bf16 for Megatron and update documentation by @ZiyiTsang in #933
  • fix(infra): convert config.rollout via to_structured_cfg in all launchers (#956) by @ZiyiTsang in #956
  • refactor(archon): extract utility functions and simplify engine code by @rchardx in #954
  • Bump v1.0.0 by @garrett4wade in #958

New Contributors

Full Changelog: v0.5.1...v1.0.0