Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6b11d22
fix(rollout): train safely on incomplete groups
EazyReal Jul 29, 2026
6c0f952
docs: allow ray scheduler in agent workflow compatibility notes (#1567)
wuallen57730 Jul 31, 2026
62f955c
fix(rollout): attribute output tokens to the serving version (#1569)
Le8r0nJames Aug 1, 2026
d31701c
fix(engine): engage Megatron deterministic mode before model build (#…
Le8r0nJames Aug 3, 2026
32d0d48
fix: emit PEFT-standard disk LoRA adapter keys so vLLM can load them …
sitabulaixizawaluduo Aug 5, 2026
ed047c2
feat(examples): add SGLang patch enabling Bailing hybrid radix cache …
Le8r0nJames Aug 5, 2026
6b644ae
fix(openai): align proxy tool schemas with sglang chat-completions re…
Le8r0nJames Aug 6, 2026
51609c8
feat(mcore): apply fp32 lm head forward when enabled (#1574)
Le8r0nJames Aug 6, 2026
3e9f632
feat(ppo): report rejection-aware token and log-prob statistics (#1572)
Le8r0nJames Aug 6, 2026
ddec7e9
fix(infra): fail fast when a local inference server dies during launc…
Le8r0nJames Aug 6, 2026
ea306c9
perf: reduce Megatron training memory peaks (#1555)
yulangz Aug 7, 2026
76138cb
feat(colocate): support AWEX colocated actor-rollout training (#1500)
Le8r0nJames Aug 7, 2026
e786869
fix(scheduler): treat every terminal Slurm state as a dead worker (#1…
Le8r0nJames Aug 7, 2026
509ab30
fix(infra): batch ragged gathers and bound rollout stalls
EazyReal Aug 9, 2026
9392e20
fix(api): keep singleton groups trainable and state the slot contract
EazyReal Aug 9, 2026
677c92a
feat(api): make min_usable_group_size configurable
EazyReal Aug 10, 2026
6aa093d
fix(examples): center openclaw rewards at batch level
EazyReal Aug 10, 2026
e8a483c
Merge remote-tracking branch 'upstream/main' into vmax/mask-incomplet…
EazyReal Aug 10, 2026
f7ec6b3
fix(api): reject explicit singleton minimum under group statistics
EazyReal Aug 11, 2026
a6b354a
fix(examples): use batch reward std in openclaw demo
EazyReal Aug 11, 2026
3a29737
fix(api): state min_usable_group_size scope and trigger exactly
EazyReal Aug 11, 2026
2ee4904
feat: update awex to 0.8.0 (#1591)
sitabulaixizawaluduo Aug 11, 2026
eeab9b9
fix: isolate AWEX control barriers from payload transfer (#1596)
pyq623 Aug 12, 2026
75aa8c6
fix(infra): stabilize inference worker routing and caches (#1589)
pyq623 Aug 12, 2026
60cb375
feat(scheduler): honor reservation, exclusive and user env overrides …
Le8r0nJames Aug 12, 2026
97f0632
feat(engine): support fixed warmup steps (#1597)
daihaowz Aug 12, 2026
1f966b1
chore: change codeowners (#1599)
sitabulaixizawaluduo Aug 12, 2026
c0594a1
docs(algorithms): describe metadata-driven group normalization (#1602)
EazyReal Aug 13, 2026
55068e3
fix(models): support FP32 operands with chunked LM head (#1594)
yulangz Aug 13, 2026
2ea7703
feat(scheduler): support grouped colocation in the Ray scheduler (#1575)
Le8r0nJames Aug 13, 2026
d67fee0
fix(models): configure bridge provider for deterministic builds (#1603)
sitabulaixizawaluduo Aug 14, 2026
1bd2cb3
fix(infra): preserve LD_PRELOAD in local launchers (#1578)
YAO-001 Aug 14, 2026
9371ab9
docs(api): correct obsolete no_save_optim guidance (#1609)
koladefaj Aug 17, 2026
195a2a3
feat(engine): enable model-owned THD for Qwen3-VL (#1608)
Adiactive Aug 17, 2026
83d304a
feat(engine): support Qwen3-VL with native AWEX colocate (#1605)
sitabulaixizawaluduo Aug 19, 2026
b231b7a
docs: update NPU installation guide for ascend-v1.0.5 (#1617)
Adiactive Aug 20, 2026
f2d7d1c
fix(infra): pause proxy workers during weight updates (#1618)
Adiactive Aug 20, 2026
74c6334
feat(trainer): add flexible GAE lambda strategies (#1600)
RanranranQAQ Aug 20, 2026
3a0b372
feat: support qwen35 awex colocate weight update (#1620)
sitabulaixizawaluduo Aug 21, 2026
94f31fd
chore(deps): bump awex to 0.8.1 (#1621)
sitabulaixizawaluduo Aug 21, 2026
d3fbff4
fix: preserve vllm lora aliases and local model paths (#1601)
gursimar Aug 21, 2026
31106b1
Merge branch 'main' of areal-project/AReaL into vmax/mask-incomplete-…
EazyReal Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@

# Core package
/areal/api/ @garrett4wade @rchardx @sitabulaixizawaluduo
/areal/engine/ @rchardx @nuzant @garrett4wade @geshi001
/areal/v2/inference_service/ @nuzant @guozhihao-224 @TaoZex
/areal/v2/agent_service/ @CormickKneey @nuzant
/areal/v2/training_service/ @sitabulaixizawaluduo @garrett4wade
/areal/engine/ @rchardx @nuzant @garrett4wade @geshi001 @sitabulaixizawaluduo
/areal/v2/inference_service/ @nuzant @guozhihao-224 @TaoZex @sitabulaixizawaluduo
/areal/v2/agent_service/ @CormickKneey @nuzant @sitabulaixizawaluduo
/areal/v2/training_service/ @sitabulaixizawaluduo @garrett4wade @sitabulaixizawaluduo
/areal/v2/weight_update/ @TaoZex @garrett4wade @sitabulaixizawaluduo
/areal/infra/ @HwVanICI @garrett4wade @guozhihao-224
/areal/models/ @rchardx @nuzant @geshi001 @PrometheusComing
/areal/trainer/ @garrett4wade @rchardx @fishcrap
/areal/infra/ @HwVanICI @garrett4wade @guozhihao-224 @sitabulaixizawaluduo
/areal/models/ @rchardx @nuzant @geshi001 @PrometheusComing @sitabulaixizawaluduo
/areal/trainer/ @garrett4wade @rchardx @fishcrap @sitabulaixizawaluduo

# Tests & Examples
/tests/ @garrett4wade @sitabulaixizawaluduo
/examples/ @zhenanf @HwVanICI @CormickKneey @PrometheusComing
/examples/ @HwVanICI @CormickKneey @PrometheusComing @sitabulaixizawaluduo

# Documentation
/docs/ @garrett4wade @nuzant
/docs/ @garrett4wade @nuzant @sitabulaixizawaluduo

# CI/CD & infrastructure
/.github/ @garrett4wade @nuzant @sitabulaixizawaluduo
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ __pycache__/
*$py.class
trace_result/
profile_result/
profile_artifacts/
profile_data/
profile_inputs/
traces-r*.jsonl
traces-r*.chrome.json
chrome_trace.png

slurm_outs
_data
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -247,14 +247,15 @@ COPY --from=builder /opt/.venv /opt/.venv

# Install Node.js via fnm and Claude Code
ENV FNM_DIR=/root/.fnm
ENV NODE_VERSION=24.13.0
ENV NODE_VERSION=24.15.0
ENV NPM_VERSION=12.0.2
ENV PATH="$FNM_DIR/aliases/default/bin:/root/.local/bin:$PATH"
RUN set -ex \
&& curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$FNM_DIR" --skip-shell \
&& eval "$($FNM_DIR/fnm env --shell bash)" \
&& $FNM_DIR/fnm install $NODE_VERSION \
&& $FNM_DIR/fnm default $NODE_VERSION \
&& npm install -g npm@latest \
&& npm install -g "npm@$NPM_VERSION" \
&& npm install -g @openai/codex @google/gemini-cli openclaw@latest \
&& curl -fsSL https://claude.ai/install.sh | bash \
&& curl -fsSL https://opencode.ai/install | bash \
Expand Down
16 changes: 15 additions & 1 deletion areal/api/alloc_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,8 @@ def gen_instance_size(self) -> int:

inf_para: modern_inf_para
modern_inf_para: INFER_BACKEND ("[" NAME "]")? ":" inf_dim+
train_para: train_backend_with_name | train_backend_hybrid | train_backend_only | train_name_only | train_dims_only | hybrid_moe_syntax
train_para: train_backend_name_hybrid | train_backend_with_name | train_backend_hybrid | train_backend_only | train_name_only | train_dims_only | hybrid_moe_syntax
train_backend_name_hybrid: TRAIN_BACKEND "[" NAME "]" ":" hybrid_moe_syntax
train_backend_with_name: TRAIN_BACKEND "[" NAME "]" ":" common_dim+
train_backend_hybrid: TRAIN_BACKEND ":" hybrid_moe_syntax
train_backend_only: TRAIN_BACKEND ":" common_dim+
Expand Down Expand Up @@ -853,6 +854,19 @@ def train_backend_with_name(self, items):
SchedulingStrategy(type=SchedulingStrategyType.separation, target=None),
)

def train_backend_name_hybrid(self, items):
"""Handle: TRAIN_BACKEND [ NAME ] : hybrid_moe_syntax"""
backend = str(items[0])
name = str(items[1])
strategy = items[2] # ParallelStrategy from hybrid_moe_syntax

return self._build_model_allocation(
backend,
name,
strategy,
SchedulingStrategy(type=SchedulingStrategyType.separation, target=None),
)

def train_backend_hybrid(self, items):
"""Handle: TRAIN_BACKEND : hybrid_moe_syntax"""
backend = str(items[0])
Expand Down
Loading
Loading