Sign inSign up

openeuler/areno

Sponsored OSS

By openeuler

•Updated about 22 hours ago

Image
0

87

openeuler/areno repository overview

⁠Quick reference

⁠AReno | openEuler

Current AReno docker images are built on the openEuler⁠. This repository is free to use and exempted from per-user rate limits.

AReno⁠ is an easy-to-use and fast toolkit from inclusionAI to scale up RL post-training (RLVR and agentic RL) on a single node. Since v0.9.0 it ships a native Ascend NPU backend that compiles an Ascend C acceleration extension (areno.accel._areno_accel_npu) during installation, and both areno train and areno serve accept --backend npu.

This image ships AReno with torch_npu⁠ so that RL post-training runs seamlessly on the Ascend NPU. The software stack is validated on a single Ascend 910B4 card with CANN 9.1.0, torch==2.10.0 and torch_npu==2.10.0.post6 on Python 3.12, following the Ascend quick start guard⁠.

Read more about Ascend at hiascend.com⁠ and explore the AReno documentation at asystem-ai.io/docs/areno⁠.

The tag of each AReno docker image consists of the AReno version and the version of the software stack. The details are as follows

TagsCurrentlyArchitectures
0.10.0-torch_npu2.10.0-cann9.1.0-python3.12-oe2403sp4⁠AReno 0.10.0 (torch_npu 2.10.0.post6, CANN 9.1.0) on openEuler 24.03-LTS-SP4amd64, arm64

⁠Usage

⁠Quick start 1: supported devices

  • Atlas A2 Training series (Atlas 800T A2, Atlas 900 A2 PoD, Atlas 200T A2 Box16, Atlas 300T A2)

  • Atlas 800I A2 Inference series (Atlas 800I A2)

⁠Quick start 2: setup environment using container

# Update DEVICE according to your device (/dev/davinci[0-7])
export DEVICE=/dev/davinci0
# Update the areno image
export IMAGE=openeuler/areno:0.10.0-torch_npu2.10.0-cann9.1.0-python3.12-oe2403sp4
docker run --rm \
--name my-areno \
--device $DEVICE \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
-it $IMAGE bash

⁠Quick start 3: RLVR training and serving on Ascend NPU

Validate the environment inside the container:

python3 -c "import torch, torch_npu; print('torch=', torch.__version__); print('torch_npu=', torch_npu.__version__); print('is_available:', torch.npu.is_available()); print('count:', torch.npu.device_count())"
python3 -c "import importlib.util as u; specs = {m: u.find_spec(m) for m in ['areno', 'areno.accel', 'areno.accel._areno_accel_npu']}; [print(m, 'ok' if s is not None else 'MISSING') for m, s in specs.items()]"
areno train --help && areno serve --help

Run the tiny GSPO RLVR training smoke test on GSM8K with Qwen/Qwen3-0.6B (weights from the Hugging Face Hub, use the HF mirror in China):

cd /opt/AReno
source /usr/local/Ascend/ascend-toolkit/set_env.sh
export HF_ENDPOINT=https://hf-mirror.com
ASCEND_RT_VISIBLE_DEVICES=0 areno train \
  --ckpt Qwen/Qwen3-0.6B \
  --dataset-path openai/gsm8k:main \
  --model-hub hf \
  --dataset-loader-fn examples/math/dataset_loader.py \
  --reward-fn-path examples/math/math_verify_reward.py \
  --algo gspo \
  --backend npu \
  --attn-backend native \
  --tp-size 1 \
  --world-size 1 \
  --batch-size 1 \
  --max-steps 1 \
  --max-new-tokens 256 \
  --save-path outputs/qwen3-gspo \
  --save-interval 1

The log contains stage=rollout_end, metric=reward_mean, train_stats=, stage=save_checkpoint_end and stage=max_steps_reached, and the checkpoint lands in outputs/qwen3-gspo/step_000001. Serve the trained checkpoint through the OpenAI-compatible API:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
ASCEND_RT_VISIBLE_DEVICES=0 areno serve \
  --model-path outputs/qwen3-gspo/step_000001 \
  --backend npu \
  --attn-backend native \
  --max-running-prompts 2 \
  --tp-size 1 \
  --world-size 1 \
  --port 8000
curl -fsS http://127.0.0.1:8000/v1/models

⁠Question and answering

If you have any questions or want to use some special features, please submit an issue or a pull request on openeuler-docker-images⁠.

Tag summary

Content type

Image

Digest

sha256:5c7fe2d3c…

Size

5 GB

Last updated

about 22 hours ago

docker pull openeuler/areno