Skip to content

Releases: areal-project/AReaL

v2.0.0

Choose a tag to compare

@sitabulaixizawaluduo sitabulaixizawaluduo released this 01 Jul 16:23
fee938e

🚀 Key Highlights

Micro-service Architecture

Includes training, inference, agent, and weight update services.

Hermes Agent Example

End-to-end agent built on the agent service and wired into the 2.0 training loop. Check out the Hermes RL training example for more details.

CLI Commands

A unified areal CLI to launch, manage, and operate each micro-service. See the per-service guides: training, inference, agent.

What's Changed

New Contributors

Read more

v1.0.4

Choose a tag to compare

@garrett4wade garrett4wade released this 07 May 08:30
37d6c64

What's Changed

New Contributors

Full Changelog: v1.0.3...v1.0.4

v1.0.3

Choose a tag to compare

@garrett4wade garrett4wade released this 16 Apr 12:00
376ecbb

What's Changed

  • chore(docker): add openclaw, ironclaw, zeroclaw, and nanobot-ai to runtime image by @garrett4wade in #1051
  • feat(agent-service): add Agent Service microservice infrastructure by @CormickKneey in #1048
  • feat(gateway): Add rollout gateway infrastructure with controller, router, and data proxy by @nuzant in #1043
  • feat: estimators for kl divergence by @NicolasArias in #1060
  • test(infra): speed up inference service integration tests by @nuzant in #1068
  • fix(infra): simplify RTensor serialization in data proxy by @garrett4wade in #1067
  • fix(rpc): resolve connection reset during RTensor fetch with large payloads by @pratyush618 in #1075
  • docs: add gitcgr code graph badge by @vitali87 in #1073
  • fix(openai): handle streaming responses in chat/completions endpoint by @Zijun9 in #1053
  • fix: add PIL image and processor serialization for VLM RPC by @Adiactive in #1070
  • refactor(api): migrate allocation_mode to per-engine backend fields by @garrett4wade in #1044
  • chore(agents): add Codex harness and align AI workflows by @rchardx in #1082
  • feat(platform): add NUMA CPU affinity binding for training engines by @HT-Yuan in #1083
  • feat(commands): add fork workflow support to create-pr skill by @guozhihao-224 in #1092
  • fix(rpc): batch HTTP RTensor fetches for large multimodal batches by @Wangxiaoxiaoa in #1077
  • fix(fsdp): stabilize Qwen-VL rope-index argument binding and dtype by @Adiactive in #1094
  • Refactor(vllm): use pause_generation from vllm instead of abort_all_req in areal_vllm_server by @HwVanICI in #1091
  • feat: add BailingMoeV2.5 support with Lightning Attention + MLA + MoE + CP by @dingzhiqiang in #1079
  • feat:support model training in IPv6-only environment by @TaoZex in #1072
  • fix: fix pad_packed_tensor_dict by @HKAB in #1104
  • feat: megatron bridge adaptation by @gursimar in #1056
  • fix(engine): remove duplicate trust_remote_code kwarg in MegatronBridge init by @rchardx in #1107
  • fix(dataloader): prevent data drop and padding during validation for accurate metrics by @Anguo-star in #1100
  • fix(archon): add missing POST /data/batch endpoint to data proxy by @rchardx in #1105
  • refactor(engine): abstract CUDA calls via current_platform in PerLayerOptimWrapper by @guozhihao-224 in #1108
  • perf(fsdp): pipeline distributed weight sync with a single pending bucket by @HT-Yuan in #1074
  • fix(engine): restore SGLang VLM training by @garrett4wade in #1098
  • feat(archon): add FP8 blockwise training support by @rchardx in #1087
  • chore(ci): update GCP CI image by @garrett4wade in #1115
  • feat(inference-service): complete vLLM backend support in inference service by @garrett4wade in #1112
  • fix(archon): harden FP8 blockwise training for TP and MoE scenarios by @rchardx in #1118
  • feat(inference_service): add VLM image input support to OpenAI-compatible API by @garrett4wade in #1119
  • feat(utils): add Trackio experiment tracking backend by @guozhihao-224 in #1113
  • refactor(infra): decompose rpc_server into shared guard + blueprints by @garrett4wade in #1126
  • refactor(agents): redesign review-pr taxonomy and sync flow by @rchardx in #1124
  • feat(infra): add client-side fetch buffer for RTensor by @guozhihao-224 in #1122
  • chore: fix gcp image to latest by @nuzant in #1130
  • docs: add Trackio configuration to CLI reference by @rchardx in #1131
  • feat(service): support online inference service by @nuzant in #1121
  • fix(engine): for broken tree training due to bad indent in PR #1056 by @gursimar in #1135
  • feat(service): add vllm backend support for inference service demo by @nuzant in #1136
  • fix(api): add mode validation for WandBConfig and SwanlabConfig by @guozhihao-224 in #1134
  • feat: enable LoRA RL-training in Megatron via megatron-bridge by @gursimar in #1123
  • fix: harden padded distributed eval across training engines by @rchardx in #1109
  • feat(ci): separate vllm and sglang pyproject.toml by @garrett4wade in #1141
  • fix(vllm_ext): clear multimodal caches after generation pause by @Adiactive in #1144
  • fix(ci): sync uv.vllm.lock with the current pyproject.vllm.toml by @garrett4wade in #1146
  • fix(vllm_ext): XCCL lora weights update when PP>1 by buffering and merging PP shards by @gursimar in #1145
  • chore: fix pre-commit by @garrett4wade in #1148
  • Fix #1040: [Feature] Fixed bugs in Archon LoRA Backend by @JiwaniZakir in #1139
  • feat(infra): add distributed data loading service by @garrett4wade in #1120
  • refactor(infra): standardize list-first trajectory batch dispatch by @garrett4wade in #1150
  • feat(infra): allow colocation with offloading and disk weight updates by @garrett4wade in #1157
  • refactor: replace manual JSON parsing with Pydantic models by @koladefaj in #1154
  • fix(engine): FSDP compute_logp fails for Qwen3.5 with dict attention_mask by @pratyush618 in #1153
  • chore: update readme and enforce license by @garrett4wade in #1170
  • chore: ensure SPDX license header in python source files by @garrett4wade in #1171
  • fix: add missing pre-commit check file by @garrett4wade in #1173
  • chore: add project governance for PyTorch ecosystem by @garrett4wade in #1174
  • feat(infra): add microservice-based training service (controller v2) by @garrett4wade in #1169
  • chore: renew qrcode by @garrett4wade in #1184
  • feat(archon): support multi-node inference in gateway controller by @guozhihao-224 in #1178
  • feat(agent-service): add Controller, Guard, and Claude Agent SDK example by @CormickKneey in #1177
  • fix _update_weights_from_disk function to prevent training to be stuck by @asif07hossain in #1181
  • refactor: mount data blueprint via WSGI and adopt Pydantic in engine blueprint by @koladefaj in #1179
  • fix(engine): use meta device for non-rank-0 in FSDP memory_efficient_load by @yulangz in #1182
  • ci: parallelize unit and integration tests across 4 GPU instances by @nuzant in #1185
  • chore: dump v1.0.3 by @garrett4wade in #1191

New Contributors

Full Changelog: v1.0.2...v1.0.3

v1.0.2

Choose a tag to compare

@garrett4wade garrett4wade released this 17 Mar 14:19

Release Note

A massive thank you to our newest contributors who joined us for this release! The strength of this project lies in the collective expertise of the open-source community, and your work is what moves us forward.

🚀 Model & Architecture Updates

  • Qwen3.5 Support: Added support for both dense and MoE (Mixture-of-Experts) variants of Qwen3.5 (archon backend, DP-only).

  • On-Policy Distillation: Introduced native support for on-policy distillation.

  • Added opt-in support for Hugging Face kernels and per-layer optimizer steps with a streaming H2D/D2H pipeline for FSDP.

🛠 Infrastructure & Scalability

  • Docker & Runtime: Split Docker images into specialized sglang and vllm variants to allow different torch verions and fast docker image update.

📖 Documentation & Localization

  • Bilingual Support: Launched comprehensive bilingual (EN/ZH) documentation, including a new translate-doc-zh command and fixed LaTeX rendering.

  • New Guides: Added an online proxy mode training guide and revised existing online RL training tutorials.

What's Changed

  • feat(models): shard vision encoder across Ulysses SP ranks by @aoshen524 in #929
  • docs: fix broken documentation links by adding /en/ language prefix by @garrett4wade in #986
  • [Feat] Add on-policy distillation support by @HwVanICI in #964
  • fix: keep PPO token stats consistent under context parallelism by @yash27-lab in #990
  • Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #993
  • Upgrade GitHub Actions to latest versions by @salmanmkc in #994
  • chore: add Python 3.11 support (requires-python >=3.11,<3.13) by @garrett4wade in #991
  • chore(ci): replace format-check with pre-commit CI and add commit-msg hooks by @rchardx in #998
  • feat(docs): add bilingual documentation with translate-doc-zh command by @ZiyiTsang in #995
  • refactor: flatten sub-module imports to use parent package re-exports by @NJX-njx in #996
  • feat(infra): split Docker image into sglang and vllm variants by @garrett4wade in #985
  • docs: fix broken LaTeX rendering in bilingual docs by @rchardx in #1004
  • fix: CPU-only support on macOS by @zhanghaotong in #1003
  • feat(archon): add moe_router_dtype config for FP32 router gate GEMM by @rchardx in #1009
  • refactor: replace string literals with enums and fix logging issues- … by @HT-Yuan in #1008
  • feat(fsdp): add per-layer optimizer step with streaming H2D/D2H pipeline by @aoshen524 in #983
  • Update NPU doc for v1.0.1 release by @HwVanICI in #1022
  • feat(archon): add Qwen3.5 dense and MoE model support (DP-only) by @rchardx in #1012
  • fix: LoRA and XCCL openai_serving_models LoRA versioning bug by @TinLongYu in #1021
  • fix: unify RPC error response JSON key to "error" across server and s… by @HT-Yuan in #1019
  • fix: close sockets on bind failure, fix exit traceback in trainers by @mango766 in #1032
  • fix(vllm): harden runtime LoRA alias handling for XCCL updates by @Wangxiaoxiaoa in #1039
  • fix(ci): minor fixing ruff format by @garrett4wade in #1041
  • docs(github): improve PR template checklist and type-of-change section by @garrett4wade in #1042
  • docs: add online proxy mode training guide by @Zijun9 in #1006
  • Add opt-in support for Hugging Face kernels by @lewtun in #1033
  • fix(archon): Wrap router gate in nn.Module for DTensor hook compatibility by @fishcrap in #1029
  • chore(deps): bump sglang, vllm, megatron-core and restructure Dockerfile by @garrett4wade in #1010
  • ci(infra): add GCP image baking workflow for CI acceleration by @garrett4wade in #1045
  • refactor(infra): simplify RTensor to single-shard and adopt per-trajectory list pipeline by @fishcrap in #1017
  • ci(infra): add GCP image baking workflow and update CI image by @garrett4wade in #1047
  • docs: revise online RL training tutorial for EN and ZH by @garrett4wade in #1049
  • chore: prepare v1.0.2 release by @garrett4wade in #1050

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1

Choose a tag to compare

@garrett4wade garrett4wade released this 04 Mar 14:18
6bc0830

Release Note

A patch release that fixes a dependency issue in the docker image and enriches the documentation and testing of the OpenClaw example.

What's Changed

  • fix(config): Fix openclaw config typo and increase max_tokens_per_mb by @fishcrap in #959
  • docs(openclaw): Replace hardcoded admin key with placeholder in README by @fishcrap in #967
  • feat: Fully Support MIS/TIS to stablizing rollout-training mismatch by @ZiyiTsang in #930
  • refactor(api): move validation into config post_init methods by @rchardx in #970
  • fix(openai-proxy): return None for empty trajectory in online mode by @fishcrap in #971
  • Ray placement group refactor and preliminary architecture for multinode inference instances by @hlyli in #966
  • feat:Add chinese doc by @ZiyiTsang in #969
  • fix(api): replace Literal type with str for SchedulingSpec.ray_placement_strategy by @garrett4wade in #976
  • update readme by @xssstory in #974
  • test(examples): Add OpenClaw online RL integration test by @fishcrap in #977
  • fix: pinning torchao version to 0.15.0 by @garrett4wade in #981
  • bump v1.0.1 by @garrett4wade in #982

New Contributors

Full Changelog: v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@garrett4wade garrett4wade released this 02 Mar 15:04
99ce534

🚀 Key Highlights

Release Notes

Online RL Training

  • Seamlessly train any agents by configuring a base_url and api_key—no 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 https://github.com/inclusionAI/AReaL/pu...
Read more

v1.0.0.rc1

v1.0.0.rc1 Pre-release
Pre-release

Choose a tag to compare

@garrett4wade garrett4wade released this 06 Feb 13:59
dbc4938

Pre-release for 1.0.0.

v0.5.3

v0.5.3 Pre-release
Pre-release

Choose a tag to compare

@garrett4wade garrett4wade released this 31 Jan 02:06
7cdef3c

Highlights

This is a patch release primarily for delivering the latest docker image for testing.

We will include well-documented features in the next major release.

v0.5.2

v0.5.2 Pre-release
Pre-release

Choose a tag to compare

@garrett4wade garrett4wade released this 26 Jan 11:18
88a6020

Highlights

This is a patch release primarily for delivering the latest docker image with torch 2.9.1, vllm 0.14.0, and sglang 0.5.7 supports.

We will include well-documented features in the next major release.

v0.5.1

Choose a tag to compare

@garrett4wade garrett4wade released this 18 Dec 09:03
636ef26

Highlights

This is a patched release upon v0.5.0.

  • A new docker image with math-verify and the latest ruff.
  • Support for PPO critic model support with Megatron engine.
  • Refactored FSDP/Megatron engine implementations.
  • Implement efficient RPC tensor transfer with RTensor (aka the original DistributedBatch).
  • Beam seach support for vLLM.

What's Changed

  • fix: change checkpoint cleanup flag to fix update_weights_from_disk in single-controller mode by @HwVanICI in #711
  • fix: prevent port overflow in vLLM server with high data parallelism (fixes #652) by @HsiaoTsan in #653
  • refactor: refactor train engine high level APIs by @aaaandychen in #658
  • [Fix] Fix the bug that experiments cannot properly exit in the TIR example by @nuzant in #712
  • chore: print more information in concat mode and handle empty tool calls for easy debugging by @nuzant in #713
  • chore: trim tests in CI by @garrett4wade in #714
  • refactor: enforce task_id creation, access, and manipulation in inference engines by @garrett4wade in #715
  • refactor: redesign TrainEngine API with cleaner abstractions by @rchardx in #719
  • [Testing] Add SFT/GRPO integration test for Megatron train engine. by @nuzant in #726
  • [FEAT] VLLM support for VLM training by @HwVanICI in #698
  • feat: Support beam_search in vllm backend by @ZiyiTsang in #721
  • fix: update multi-turn math test configuration by @rchardx in #727
  • fix: fix logic error in beam search support check by @rchardx in #728
  • feat: add PPO Critic model support for MegatronEngine by @rchardx in #729
  • feat: implement RTensor for metadata transfer in the single-controller mode by @garrett4wade in #731
  • fix: fix multi-turn proxy example by @dhh1995 in #733
  • minor fix: fix openai cache test, add it in CI test suite, and remove OOD todos/fixmes in Megatron engine by @garrett4wade in #732
  • [Feat] XCCL-updates for single LoRA functionality for ascend-vLLM by @gursimar in #679
  • fix: use group_size=1 for eval in proxy examples by @dhh1995 in #737
  • feat: add ignore_eos and skip_special_tokens generation params by @rchardx in #738
  • chore: update datasets to version 3.0.0 or higher for inner API compatibility by @ZiyiTsang in #720
  • feat: build the docker image with math-verify and the latest ruff by @garrett4wade in #744
  • bump v0.5.1 by @garrett4wade in #745

New Contributors

Full Changelog: v0.5.0...v0.5.1