| refactor: move 5 experimental modules into areal/v2 for 2.0 release (#1448) * refactor: move 5 experimental modules into areal/v2 for 2.0 release Move agent_service, inference_service, training_service, weight_update, and cli from areal/experimental/ to areal/v2/, and rewrite every reference (Python imports, `python -m` invocations, console-script entry points, CODEOWNERS, docs, review-pr signals) to the new path. - 5 directories migrated via `git mv` (history preserved) - 70 files modified across areal/, tests/, examples/, pyproject{,vllm}.toml, .github/CODEOWNERS, ROADMAP.md, and tooling docs - `areal/v2/__init__.py` added so v2 is an importable package - Build config (tool.uv.build-backend with module-root="") auto-discovers the new package — no pyproject changes beyond the entry point Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply pre-commit auto-fixes after areal/v2 move CI pre-commit job reformatted 54 files automatically: - .github/CODEOWNERS: realign owner columns (32-col) after shorter /areal/v2/ paths broke the previous 40-col alignment - areal/**, tests/**, examples/**, docs/**: ruff isort reorders `areal.v2.*` imports into their new alphabetical slot (between `areal.engine` and `areal.infra`) - markdown/yaml whitespace normalized by mdformat / ruff-format Pure formatting; no logic change. `pre-commit run --all-files` is now green locally. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(tests): point py<3.12 conftest stubs at areal/v2/ Two test conftest.py stubs (Python 3.10/3.11 compat) still had the `areal/experimental/{inference_service,weight_update}` path as the namespace package's __path__, broken by the v2 move. The sed pass missed them because the paths were comma-separated `os.path.join` args (`"areal", "experimental", "X"`), not slash-form path strings. Additionally insert an `areal.v2` stub between `areal` and the leaf package so the parent→child attribute wiring loop (which uses `name.rsplit(".", 1)`) can find a parent module in sys.modules. Without it `setattr(parent, child, ...)` silently no-ops and `unittest.mock.patch` traversal breaks on the new path. Spotted by gemini-code-assist on PR #1448. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(tests): mirror areal/v2 move under tests/v2 Move agent_service, inference_service, training_service, and weight_update test directories from tests/experimental/ to tests/v2/ to mirror the source-tree layout. tests/experimental/ retains archon/ and openai/ (still-experimental modules). - 50 files migrated via `git mv` (history preserved) - tests/v2/__init__.py added - 9 files rewritten for the new dotted/slashed test paths: `tests.experimental.{4 modules}` → `tests.v2.{4 modules}` `tests/experimental/{4 modules}` → `tests/v2/{4 modules}` (covers integration_utils imports, fake_train_engine engine_class, pytest invocation strings in docstrings, and the tests/v2/weight_update/torchrun/run_nccl_weight_transfer.py path) conftest stubs (Python <3.12 namespace shims) keep working because _REPO_ROOT is computed via "..", "..", ".." from the conftest file — same depth under tests/v2/X/ as under tests/experimental/X/. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 2 个月前 |
| refactor: move 5 experimental modules into areal/v2 for 2.0 release (#1448) * refactor: move 5 experimental modules into areal/v2 for 2.0 release Move agent_service, inference_service, training_service, weight_update, and cli from areal/experimental/ to areal/v2/, and rewrite every reference (Python imports, `python -m` invocations, console-script entry points, CODEOWNERS, docs, review-pr signals) to the new path. - 5 directories migrated via `git mv` (history preserved) - 70 files modified across areal/, tests/, examples/, pyproject{,vllm}.toml, .github/CODEOWNERS, ROADMAP.md, and tooling docs - `areal/v2/__init__.py` added so v2 is an importable package - Build config (tool.uv.build-backend with module-root="") auto-discovers the new package — no pyproject changes beyond the entry point Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply pre-commit auto-fixes after areal/v2 move CI pre-commit job reformatted 54 files automatically: - .github/CODEOWNERS: realign owner columns (32-col) after shorter /areal/v2/ paths broke the previous 40-col alignment - areal/**, tests/**, examples/**, docs/**: ruff isort reorders `areal.v2.*` imports into their new alphabetical slot (between `areal.engine` and `areal.infra`) - markdown/yaml whitespace normalized by mdformat / ruff-format Pure formatting; no logic change. `pre-commit run --all-files` is now green locally. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(tests): point py<3.12 conftest stubs at areal/v2/ Two test conftest.py stubs (Python 3.10/3.11 compat) still had the `areal/experimental/{inference_service,weight_update}` path as the namespace package's __path__, broken by the v2 move. The sed pass missed them because the paths were comma-separated `os.path.join` args (`"areal", "experimental", "X"`), not slash-form path strings. Additionally insert an `areal.v2` stub between `areal` and the leaf package so the parent→child attribute wiring loop (which uses `name.rsplit(".", 1)`) can find a parent module in sys.modules. Without it `setattr(parent, child, ...)` silently no-ops and `unittest.mock.patch` traversal breaks on the new path. Spotted by gemini-code-assist on PR #1448. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(tests): mirror areal/v2 move under tests/v2 Move agent_service, inference_service, training_service, and weight_update test directories from tests/experimental/ to tests/v2/ to mirror the source-tree layout. tests/experimental/ retains archon/ and openai/ (still-experimental modules). - 50 files migrated via `git mv` (history preserved) - tests/v2/__init__.py added - 9 files rewritten for the new dotted/slashed test paths: `tests.experimental.{4 modules}` → `tests.v2.{4 modules}` `tests/experimental/{4 modules}` → `tests/v2/{4 modules}` (covers integration_utils imports, fake_train_engine engine_class, pytest invocation strings in docstrings, and the tests/v2/weight_update/torchrun/run_nccl_weight_transfer.py path) conftest stubs (Python <3.12 namespace shims) keep working because _REPO_ROOT is computed via "..", "..", ".." from the conftest file — same depth under tests/v2/X/ as under tests/experimental/X/. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 2 个月前 |
| chore(agents): add Codex harness and align AI workflows (#1082) * chore(agents): add Codex harness and align AI workflows Promote Codex to the primary repo-local harness while keeping OpenCode and Claude Code compatibility in sync across skills, agents, and documentation. Key changes: - add .codex custom agent registry and prompts - add .agents repo-local skills for Codex workflows - align commit-conventions and create-pr guidance across harnesses - update AI-assisted development docs and remove skills-lock.json * fix(agents): align harness configs for OpenCode/Codex compatibility Make AGENTS.md harness-neutral with dual-platform invocation and layout tables so both OpenCode and Codex agents see their own syntax. Fix several doc and skill inconsistencies found during audit. Key changes: - AGENTS.md: replace Codex-only section with dual-platform tables - AGENTS.md: add platform-neutral question tool hint - Sync commit-conventions skill to .agents/ with Codex adaptation - Append maintainer guide to add-archon-model in .agents/ - Fix docs/algorithms path in algorithm-expert (both harnesses) - Fix # vs | comment delimiter in docs/zh ai_assisted_dev - Clarify 8-agent composition in docs EN/ZH | 5 个月前 |
| gov: add Le8r0nJames to nuzant-owned scopes (#1641) Add Le8r0nJames as a co-owner for every CODEOWNERS rule currently maintained by nuzant while preserving all existing owners. | 8 天前 |
| refactor: move 5 experimental modules into areal/v2 for 2.0 release (#1448) * refactor: move 5 experimental modules into areal/v2 for 2.0 release Move agent_service, inference_service, training_service, weight_update, and cli from areal/experimental/ to areal/v2/, and rewrite every reference (Python imports, `python -m` invocations, console-script entry points, CODEOWNERS, docs, review-pr signals) to the new path. - 5 directories migrated via `git mv` (history preserved) - 70 files modified across areal/, tests/, examples/, pyproject{,vllm}.toml, .github/CODEOWNERS, ROADMAP.md, and tooling docs - `areal/v2/__init__.py` added so v2 is an importable package - Build config (tool.uv.build-backend with module-root="") auto-discovers the new package — no pyproject changes beyond the entry point Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply pre-commit auto-fixes after areal/v2 move CI pre-commit job reformatted 54 files automatically: - .github/CODEOWNERS: realign owner columns (32-col) after shorter /areal/v2/ paths broke the previous 40-col alignment - areal/**, tests/**, examples/**, docs/**: ruff isort reorders `areal.v2.*` imports into their new alphabetical slot (between `areal.engine` and `areal.infra`) - markdown/yaml whitespace normalized by mdformat / ruff-format Pure formatting; no logic change. `pre-commit run --all-files` is now green locally. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(tests): point py<3.12 conftest stubs at areal/v2/ Two test conftest.py stubs (Python 3.10/3.11 compat) still had the `areal/experimental/{inference_service,weight_update}` path as the namespace package's __path__, broken by the v2 move. The sed pass missed them because the paths were comma-separated `os.path.join` args (`"areal", "experimental", "X"`), not slash-form path strings. Additionally insert an `areal.v2` stub between `areal` and the leaf package so the parent→child attribute wiring loop (which uses `name.rsplit(".", 1)`) can find a parent module in sys.modules. Without it `setattr(parent, child, ...)` silently no-ops and `unittest.mock.patch` traversal breaks on the new path. Spotted by gemini-code-assist on PR #1448. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(tests): mirror areal/v2 move under tests/v2 Move agent_service, inference_service, training_service, and weight_update test directories from tests/experimental/ to tests/v2/ to mirror the source-tree layout. tests/experimental/ retains archon/ and openai/ (still-experimental modules). - 50 files migrated via `git mv` (history preserved) - tests/v2/__init__.py added - 9 files rewritten for the new dotted/slashed test paths: `tests.experimental.{4 modules}` → `tests.v2.{4 modules}` `tests/experimental/{4 modules}` → `tests/v2/{4 modules}` (covers integration_utils imports, fake_train_engine engine_class, pytest invocation strings in docstrings, and the tests/v2/weight_update/torchrun/run_nccl_weight_transfer.py path) conftest stubs (Python <3.12 namespace shims) keep working because _REPO_ROOT is computed via "..", "..", ".." from the conftest file — same depth under tests/v2/X/ as under tests/experimental/X/. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 2 个月前 |
| fix(trainer): run initial evaluation before first update (#1636) `eval_before_train` currently relies on the first scheduled evaluator check, which trainers perform only after one optimization step. The reported baseline can therefore contain updated weights. Run the one-shot evaluation separately so its metrics are logged before the first update without advancing periodic evaluation cadence. Skip the startup evaluation on recovery and clear legacy deferred triggers when loading evaluator state. Key changes: - Invoke the startup baseline from PPO, SFT, DPO, and reward trainers - Preserve periodic evaluation cadence and recovery behavior - Cover call ordering, logging steps, legacy state, and PPO offload Refs: #1232 Signed-off-by: Bo Yang <yb550079@antgroup.com> | 8 天前 |
| Docs: Update README and cli docs (#1521) * docs(readme): add v2.0.0 release news and update online RL doc link Add a News entry for the v2.0.0 release highlighting the microservice architecture (training/inference/agent/weight-update services) and the two agentic RL training examples (Hermes and SWE agent), with a link to the technical report on arXiv. Also update the Highlights section's online RL training link to the new areal-ai.io docs domain. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): refine v2.0 news wording Drop the "(v2.0.0)" tag from the news date and rephrase the examples line so each example gets a specific, self-describing name: the Hermes online RL loop, and end-to-end SWE RL training examples. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): refresh v2.0 highlights and swap logo - add Hermes and SWE agent examples to Agentic RL table - collapse [2026/04/23] Scaffoldings news under a <details> - mark Qwen2.5-VL / Qwen3-VL as Megatron-supported - link 2026 H2 roadmap issue in Future Roadmap - add CLI Configurations link under Tutorial - replace assets/figures/logo.png with v2.0 logo Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs: add consolidated CLI guide and tidy README sections - add docs/{en,zh}/best_practices/cli_guide.md consolidating the training / inference / agent v2 CLI guides; README Tutorial now points at the EN version - Agentic RL table: drop "(v2.0)" labels, rename SWE Agent RL to Coding Agent RL, note AReaL-SWEAgent/Claude Code Agent support - fold [2026/04/23], [2026/04/18], [2026/03/02] into the Previous Releases <details> - swap Q1 roadmap link for Q2 (#1302) in Future Roadmap Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(cli): migrate v2 per-service guides into consolidated CLI guide Content of areal/v2/cli/{training,inference,agent}/cli_guide.md is now maintained solely in docs/{en,zh}/best_practices/cli_guide.md. Removed the "canonical source" callback that pointed back at the per-service files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): fix Asynchronous RL Guide link path Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): remove gitcgr badge link Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(assets): resize logo to 972x1250 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply mdformat to README and zh cli_guide Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 1 个月前 |
| chore: remove legacy code, config, and documentation (#806) * delete the legacy code in `realhf` folder * delete the yaml config for the legacy code * delete legacy docs * remove benchmark instructions * remove csrc * refactor: complete legacy code cleanup and API modernization - Migrate functioncall/ imports from realhf to areal - Remove deprecated functions in areal/dataset/__init__.py (get_custom_dataset_legacy and legacy compatibility code) - Remove deprecated method aliases in areal/experimental/openai/client.py (get_completions, get_responses, set_final_reward, export_completions, export_responses) - Update all call sites to use new API methods (get_interaction, set_last_reward, export_interactions) - Delete examples/config_converter.py (legacy config converter) - Delete docs/references/benchmark.md and docs/references/reproduce.md - Update documentation references and fix stale links - Clean up docs/_toc.yml (remove legacy sections) - Update pyproject.toml and AGENTS.md (remove legacy references) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix import --------- Co-authored-by: Claude <noreply@anthropic.com> | 7 个月前 |
| chore: migrate repo references from InclusionAI to areal-project (#1325) Update all internal URLs and org references after migrating the repository from InclusionAI/AReaL to areal-project/AReaL. Key changes: - Update GitHub repo URLs (github.com/inclusionAI/AReaL -> areal-project/AReaL) - Update GitHub Pages docs URLs (inclusionai.github.io -> areal-project.github.io) - Update GHCR Docker image refs (ghcr.io/inclusionai/ -> areal-project/) - Update CI workflow usernames and GitHub API org references - Update DeepWiki and gitcgr badge URLs - Update issue references in code comments HuggingFace model/dataset URLs intentionally left unchanged. Vendored directories (sglang-src, Megatron-LM, Megatron-Bridge) skipped. | 3 个月前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |
| refactor(api): migrate allocation_mode to per-engine backend fields (#1044) * refactor(api): migrate allocation_mode to per-engine backend fields Replace the centralized `allocation_mode` string with explicit `backend` fields on `TrainEngineConfig` and `InferenceEngineConfig`. Each engine now owns its own backend+parallelism spec (e.g. `fsdp:d4`, `sglang:d4t2`), eliminating implicit auto-backend selection and the shared `AllocationMode` object. Key changes: - Add `backend` field to TrainEngineConfig and InferenceEngineConfig - Add `ModelAllocation.from_str()` for single-component parsing - Remove `AllocationMode` public export (replaced by `ModelAllocation`) - Rename internal `AllocationMode` to `_AllocationMode` for SPMD launcher backward compatibility with FutureWarning - Remove auto-backend selection — explicit backend prefix is now required - Controllers (`TrainController`, `RolloutController`) parse `backend` directly instead of receiving `alloc_mode` from trainers - `WeightUpdateMeta.alloc_mode` replaced by `gen_allocation` (single `ModelAllocation`) - Add `RWTrainer` and `ArchonRWEngine` for reward model training - Remove `get_model_update_meta()` helper (logic moved to trainers) - Update all YAML configs, examples, docs (EN+ZH), and tests BREAKING CHANGE: `AllocationMode` is removed from public API. Users must migrate to per-engine `backend` fields. SPMD launchers emit deprecation warnings. * chore(ci): fix backend specifier for vlm sft test * fix: fix bare dims for actor backends * chore(docs): fix reminder for bare allocation dims | 5 个月前 |
| chore(deps): upgrade runtime dependencies and CI workflow (#1206) * chore(deps): upgrade runtime dependencies and CI workflow Upgrade megatron-core, sglang, vllm (0.19.1), transformers, and related packages. Pin deepep/deepgemm commits and lock trackio version for reproducibility. Key changes: - Upgrade sglang, vllm, transformers, megatron-core versions - Pin vllm to 0.19.1, fix compatibility across backends - Optimize Dockerfile and slim Docker image - Add uv_sync.sh install script, fix uv install on Linux - Fix Archon Qwen3.5 precision and port range issues - Remove integration tests from PR CI (moved to nightly) - Sync GRPO integration test config Refs: upgrade-deps branch * chore: remove duplicated test | 3 个月前 |
| fix(trainer): run initial evaluation before first update (#1636) `eval_before_train` currently relies on the first scheduled evaluator check, which trainers perform only after one optimization step. The reported baseline can therefore contain updated weights. Run the one-shot evaluation separately so its metrics are logged before the first update without advancing periodic evaluation cadence. Skip the startup evaluation on recovery and clear legacy deferred triggers when loading evaluator state. Key changes: - Invoke the startup baseline from PPO, SFT, DPO, and reward trainers - Preserve periodic evaluation cadence and recovery behavior - Cover call ordering, logging steps, legacy state, and PPO offload Refs: #1232 Signed-off-by: Bo Yang <yb550079@antgroup.com> | 8 天前 |
| Initial commit. | 1 年前 |
| docs: update roadmap to Q1 2026 and improve CI/CD documentation (#908) * docs: update roadmap to Q1 2026 and improve CI/CD documentation - Update active roadmap from Q4 2025 to Q1 2026 (Issue #907) - Move Q4 2025 to historical section with completed items - Fix typos in roadmap: Omini → Omni, pypi → PyPI - Fix grammar: "with" → "from", "Integrating" → "Integrate" - Simplify CONTRIBUTING.md by linking to AI-assisted dev guide - Update image building docs for new workflow_dispatch trigger - Add automated test pipeline to Docker image build workflow - Add logging color scheme documentation to code-style rules - Include README.md in Docker builds (remove from .dockerignore) Refs: #907, #542, #257 * use base color instead of exact color in doc | 6 个月前 |
| perf: reduce Megatron training memory peaks (#1555) * perf: reduce Megatron training memory peaks Add an SFT profiling workflow and use its memory snapshots to remove full-sequence vocabulary and optimizer gradient peaks from Megatron training. Key changes: - Add rank-aware kernel and memory profiling for packed SFT workloads - Fuse FP32 vocab-parallel logprob storage with LM head backward - Add optional true chunked LM head loss with recomputed backward - Configure precision-aware optimizer fields before Megatron validation - Cover BF16/FP32 numerical parity and distributed TP/SP behavior * fix(models): avoid private storage identity checks Track the LM head output tensor weakly and compare storage through the public data_ptr API. This preserves allocator-address reuse protection without depending on PyTorch's private storage _cdata field. * test: compare parameter storage without object identity Parameter.data may return a fresh Tensor wrapper on each access. Verify that replicated parameters retain their data pointer and storage offset instead of comparing transient Python objects. * test: make recycled CUDA storage check deterministic Construct the replacement tensor from the original storage instead of relying on the caching allocator to immediately reuse a freed address after the full CI suite. * fix(engine): guard AReaL LM Head storage reuse Keep entropy differentiable unless its gradients are disabled, and make the optimized LM Head path opt-in. Warn when destructive storage reuse makes entropy non-differentiable, while rejecting unsupported NPU and tree-training combinations. * fix(engine): export standard FSDP LoRA adapter keys PEFT keeps the adapter name in live parameter FQNs, while serving engines expect serialized LoRA keys without it. Normalize per-parameter FSDP exports and align the SGLang best-effort assertion with its load behavior. * feat(engine): support chunked logits for padded models Enable chunked LM Head loss for text-only padded BSHD models such as Qwen3.5 and rename the public toggle to enable_chunked_logits so the configuration reflects its behavior. Key changes: - Add padded label construction and output repacking - Add Qwen3.5 and updated Qwen3 MoE profile recipes - Update CLI docs, validation, and regression coverage * fix(engine): configure logprob chunking explicitly Replace the profile-only environment override with a validated train-engine option so FSDP, Megatron, Archon, and tree paths use the same explicit value. Key changes: - add and document TrainEngineConfig.logprobs_chunk_size - pass the setting through every engine logprob path - translate the profile guide and remove out-of-scope FSDP LoRA changes - add config, launcher, and explicit chunk-size tests Refs: #1555 | 26 天前 |
| gov: enforce 2-approval merge policy on main (#1307) * gov: enforce 2-approval merge policy on main Configure repository governance so that pull requests targeting main require two maintainer approvals (or one administrator bypass), with code-owner review and signed commits enforced via GitHub branch protection. Key changes: - Add .github/ruleset.json defining the active branch protection: 2 approving reviews, code-owner review, last-push approval, linear history, signed commits, pre-commit status check, admin bypass via PR only. - Reshuffle .github/CODEOWNERS so every path has at least two owners — the rule degrades gracefully when a single owner is unavailable. - Reconcile GOVERNANCE.md with the mechanical enforcement: 2 maintainer approvals required for all PRs; the lead maintainer may bypass for trivial or hotfix changes with disclosure in the PR description. - Add areal/tools/format_codeowners.py and a corresponding pre-commit hook that aligns owner columns, strips trailing whitespace, validates owner syntax, errors on duplicate paths, and warns on single-owner rules. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * gov: remove required_signatures rule from main branch ruleset Commit signature verification is no longer enforced, allowing contributors without GPG/SSH signing setup to merge into main. --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 3 个月前 |
| chore: migrate repo references from InclusionAI to areal-project (#1325) Update all internal URLs and org references after migrating the repository from InclusionAI/AReaL to areal-project/AReaL. Key changes: - Update GitHub repo URLs (github.com/inclusionAI/AReaL -> areal-project/AReaL) - Update GitHub Pages docs URLs (inclusionai.github.io -> areal-project.github.io) - Update GHCR Docker image refs (ghcr.io/inclusionai/ -> areal-project/) - Update CI workflow usernames and GitHub API org references - Update DeepWiki and gitcgr badge URLs - Update issue references in code comments HuggingFace model/dataset URLs intentionally left unchanged. Vendored directories (sglang-src, Megatron-LM, Megatron-Bridge) skipped. | 3 个月前 |
| gov: add maintainer (#1227) | 4 个月前 |
| chore: migrate community governance files to external repository 📋 (#1386) * chore: migrate community governance files to external repository 📋 - move community meeting materials to areal-project/community - relocate code of conduct to external repository Signed-off-by: mingcheng <mingcheng@apache.org> * docs: reformat community governance files with line breaks 📋 Signed-off-by: mingcheng <mingcheng@apache.org> --------- Signed-off-by: mingcheng <mingcheng@apache.org> | 2 个月前 |
| chore: migrate community governance files to external repository 📋 (#1386) * chore: migrate community governance files to external repository 📋 - move community meeting materials to areal-project/community - relocate code of conduct to external repository Signed-off-by: mingcheng <mingcheng@apache.org> * docs: reformat community governance files with line breaks 📋 Signed-off-by: mingcheng <mingcheng@apache.org> --------- Signed-off-by: mingcheng <mingcheng@apache.org> | 2 个月前 |
| feat: update awex to 0.8.0 (#1591) * feat: update awex to 0.8.0 Bump the pinned awex weight-synchronization dependency in both the SGLang and vLLM manifests and regenerate the corresponding lockfiles. awex 0.8.0 adds Qwen3-MoE weight conversion with dtype-only IPC grouping and an SGLang colocate plugin with colocate P2P transfer fixes. It also corrects the fused qkv split to be GQA-aware and forces CUDA IPC handles to close before signalling the train side. All 25 awex symbols imported by AReaL were audited against v0.8.0 and are unchanged in both name and signature, so no call-site changes are required. awex declares no runtime dependencies, so resolution is otherwise unaffected. Key changes: - Pin awex==0.8.0 in pyproject.toml and pyproject.vllm.toml - Regenerate uv.lock and uv.vllm.lock * chore: update Dockerfile node version and lock npm version | 22 天前 |
| chore: migrate community governance files to external repository 📋 (#1386) * chore: migrate community governance files to external repository 📋 - move community meeting materials to areal-project/community - relocate code of conduct to external repository Signed-off-by: mingcheng <mingcheng@apache.org> * docs: reformat community governance files with line breaks 📋 Signed-off-by: mingcheng <mingcheng@apache.org> --------- Signed-off-by: mingcheng <mingcheng@apache.org> | 2 个月前 |
| chore: migrate community governance files to external repository 📋 (#1386) * chore: migrate community governance files to external repository 📋 - move community meeting materials to areal-project/community - relocate code of conduct to external repository Signed-off-by: mingcheng <mingcheng@apache.org> * docs: reformat community governance files with line breaks 📋 Signed-off-by: mingcheng <mingcheng@apache.org> --------- Signed-off-by: mingcheng <mingcheng@apache.org> | 2 个月前 |
| chore: enforce license (#1170) | 4 个月前 |
| Docs: Update README and cli docs (#1521) * docs(readme): add v2.0.0 release news and update online RL doc link Add a News entry for the v2.0.0 release highlighting the microservice architecture (training/inference/agent/weight-update services) and the two agentic RL training examples (Hermes and SWE agent), with a link to the technical report on arXiv. Also update the Highlights section's online RL training link to the new areal-ai.io docs domain. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): refine v2.0 news wording Drop the "(v2.0.0)" tag from the news date and rephrase the examples line so each example gets a specific, self-describing name: the Hermes online RL loop, and end-to-end SWE RL training examples. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): refresh v2.0 highlights and swap logo - add Hermes and SWE agent examples to Agentic RL table - collapse [2026/04/23] Scaffoldings news under a <details> - mark Qwen2.5-VL / Qwen3-VL as Megatron-supported - link 2026 H2 roadmap issue in Future Roadmap - add CLI Configurations link under Tutorial - replace assets/figures/logo.png with v2.0 logo Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs: add consolidated CLI guide and tidy README sections - add docs/{en,zh}/best_practices/cli_guide.md consolidating the training / inference / agent v2 CLI guides; README Tutorial now points at the EN version - Agentic RL table: drop "(v2.0)" labels, rename SWE Agent RL to Coding Agent RL, note AReaL-SWEAgent/Claude Code Agent support - fold [2026/04/23], [2026/04/18], [2026/03/02] into the Previous Releases <details> - swap Q1 roadmap link for Q2 (#1302) in Future Roadmap Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(cli): migrate v2 per-service guides into consolidated CLI guide Content of areal/v2/cli/{training,inference,agent}/cli_guide.md is now maintained solely in docs/{en,zh}/best_practices/cli_guide.md. Removed the "canonical source" callback that pointed back at the per-service files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): fix Asynchronous RL Guide link path Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(readme): remove gitcgr badge link Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(assets): resize logo to 972x1250 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply mdformat to README and zh cli_guide Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 1 个月前 |
| refactor: move 5 experimental modules into areal/v2 for 2.0 release (#1448) * refactor: move 5 experimental modules into areal/v2 for 2.0 release Move agent_service, inference_service, training_service, weight_update, and cli from areal/experimental/ to areal/v2/, and rewrite every reference (Python imports, `python -m` invocations, console-script entry points, CODEOWNERS, docs, review-pr signals) to the new path. - 5 directories migrated via `git mv` (history preserved) - 70 files modified across areal/, tests/, examples/, pyproject{,vllm}.toml, .github/CODEOWNERS, ROADMAP.md, and tooling docs - `areal/v2/__init__.py` added so v2 is an importable package - Build config (tool.uv.build-backend with module-root="") auto-discovers the new package — no pyproject changes beyond the entry point Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * style: apply pre-commit auto-fixes after areal/v2 move CI pre-commit job reformatted 54 files automatically: - .github/CODEOWNERS: realign owner columns (32-col) after shorter /areal/v2/ paths broke the previous 40-col alignment - areal/**, tests/**, examples/**, docs/**: ruff isort reorders `areal.v2.*` imports into their new alphabetical slot (between `areal.engine` and `areal.infra`) - markdown/yaml whitespace normalized by mdformat / ruff-format Pure formatting; no logic change. `pre-commit run --all-files` is now green locally. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(tests): point py<3.12 conftest stubs at areal/v2/ Two test conftest.py stubs (Python 3.10/3.11 compat) still had the `areal/experimental/{inference_service,weight_update}` path as the namespace package's __path__, broken by the v2 move. The sed pass missed them because the paths were comma-separated `os.path.join` args (`"areal", "experimental", "X"`), not slash-form path strings. Additionally insert an `areal.v2` stub between `areal` and the leaf package so the parent→child attribute wiring loop (which uses `name.rsplit(".", 1)`) can find a parent module in sys.modules. Without it `setattr(parent, child, ...)` silently no-ops and `unittest.mock.patch` traversal breaks on the new path. Spotted by gemini-code-assist on PR #1448. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(tests): mirror areal/v2 move under tests/v2 Move agent_service, inference_service, training_service, and weight_update test directories from tests/experimental/ to tests/v2/ to mirror the source-tree layout. tests/experimental/ retains archon/ and openai/ (still-experimental modules). - 50 files migrated via `git mv` (history preserved) - tests/v2/__init__.py added - 9 files rewritten for the new dotted/slashed test paths: `tests.experimental.{4 modules}` → `tests.v2.{4 modules}` `tests/experimental/{4 modules}` → `tests/v2/{4 modules}` (covers integration_utils imports, fake_train_engine engine_class, pytest invocation strings in docstrings, and the tests/v2/weight_update/torchrun/run_nccl_weight_transfer.py path) conftest stubs (Python <3.12 namespace shims) keep working because _REPO_ROOT is computed via "..", "..", ".." from the conftest file — same depth under tests/v2/X/ as under tests/experimental/X/. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 2 个月前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |
| chore: bump version to v2.1.0 (#1639) Prepare repository metadata and published image references for the v2.1.0 release. Key changes: - bump SGLang and vLLM package metadata and lockfiles - update installation and SkyPilot image references - align the manual release workflow input example | 8 天前 |