股票
板块
用户
资讯
首页
天眼
自选
发现
开户
首页
天眼
自选
发现
我的

vime强化学习框架发布!昇腾首发适配,使能高效稳定的RL训练



vLLM社区横向支持多种LLM强化学习框架,包括verl、ROLL、AReaL等。社区于6月9号开源了vime强化学习框架,vime是vLLM生态系统中的一个强化学习框架,它将Slime的训练栈与vLLM的推理优势相结合,形成一个简单、稳定且高效的RL训练系统——从而实现稳定的训练-推理对齐、灵活的部署模式。昇腾深度参与了本次社区发布,并同步首发了昇腾适配版本,让用户可以在昇腾NPU上开箱即用地体验vime框架。


为什么是vime


vime基于Slime的训练栈和数据生成设计,将Megatron和vLLM连接成一个统一的强化学习(RL)流水线,从而使分布式训练和推理能够在统一的架构下可靠运行。


vime采用了Slime的三阶段解耦训练推理设计,主要区别在于其部署后端被vLLM取代:



训练(Megatron):主要训练循环,负责参数更新和将权重同步到rollout端。


展开(vLLM+路由器):推理采样,生成带有奖励或验证器信号的训练样本。


数据缓冲区:连接训练端和部署端,管理提示注入和自定义部署逻辑。



vime是一个基于Slime构建的、面向强化学习扩展的LLM后训练框架。它保留了Slime的训练栈与数据生成设计,同时使用vLLM(配合vllm-router)作为默认的rollout后端。vime提供四大核心能力:



易于使用:参数系统继承了Slime和Megatron的约定,vLLM端的参数通过--vllm-前缀传递。默认的rollout入口点是vime.rollout.vllm_rollout。


稳定的训练-推理一致性:在典型的密集训练和多目标训练场景下,train_rollout_logprob_abs_diff长时间运行后仍保持在可控范围内。对于多目标训练,R3(路由重放)进一步降低了训练-推理不匹配的情况。


算法和模型覆盖范围:GRPO和PPO等RL算法,以及Qwen3 Dense/MoE和GLM-4.5等模型,均提供端到端示例和CI验证路径。


多硬件支持:在框架层面,训练资源、部署资源和集群拓扑被统一抽象,随着vLLM生态系统的支持不断发展,更容易在不同的硬件后端之间重用相同的RL流水线。


昇腾支持vime框架适配与训练打通


昇腾团队在vime社区发布之际同步推进昇腾NPU的适配工作,目前已打通训推链路,适配的核心难点集中在权重传输、权重更新、resharding转换:


难点1:vLLM Ascend没有提供对外的权重更新功能


在vLLM Ascend中实现HCCLWeightTransferEngine和NPUIPCWeightTransferEngine两个用于共卡和非共卡场景的权重更新模块。


难点2:由于vLLM Ascend有自定义模块,导致权重更新会有fail告警


通过比对更新前后各模块权重数据,以及进行load_format=dummy的权重更新实验,排除了权重更新告警问题。


难点3:权重转换依赖megatron_bridge完成,npu上无法直接运行


基于mindspeed适配了megarton_bridge,并适配指定版本的megatron,从而打通整个训推链路。


基于昇腾的快速上手体验


环境准备


在体验之前,请确认您的Atlas A2/A3系列设备已正确安装固件/驱动,可运行如下命令确认:


npu-smi info


可以使用如下命令,拉起vime容器镜像:


# Update the vime imageexport IMAGE=quay.io/ascend/vime:vime-latestdocker run -d --name vime-npu -it --net=host --shm-size=1024g \    --privileged=true \    --cap-add=SYS_PTRACE \    --device=/dev/davinci_manager \    --device=/dev/hisi_hdc \    --device=/dev/devmm_svm \    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \    -v /usr/local/dcmi:/usr/local/dcmi \    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \    -v /usr/local/sbin:/usr/local/sbin \    -v /home:/home \    -v /mnt:/mnt \    -v /tmp:/tmp \    -v /data:/data \    -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \    $IMAGEdocker exec -it vime-npu bash


数据准备


可以从Hugging Face、ModelScope等平台下载所需的模型和数据集。以下是使用huggingface_hub下载示例资源的命令:


# 下载模型权重 (Qwen/Qwen3-4B)hf download Qwen/Qwen3-4B --local-dir /path/to/Qwen/Qwen3-4B# 下载训练数据集 (dapo-math-17k)hf download --repo-type dataset zhuzilin/dapo-math-17k \  --local-dir /path/to/dapo-math-17k


npu支持meagtron_bridge进行权重转换,因此不需要进行额外的离线权重过程。


代码仓下载


我们提供了可直接运行在NPU上的vime框架代码,可直接下载安装使用:


git clone https://github.com/vllm-project/vime.git -b npupip install -e .


开始训练


完成上述准备工作后,即可运行NPU训练脚本。


Qwen3-4B训练参考脚本--qwen3_4b_example.sh:


export SLIME_SCRIPT_TRAIN_BACKEND=megatronexport PYTHONPATH="/root/Megatron-Bridge/src:/root/Megatron-LM/:$PYTHONPATH"export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15export CUDA_DEVICE_MAX_CONNECTIONS=1export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1export HCCL_HOST_SOCKET_PORT_RANGE=60000-60050export HCCL_NPU_SOCKET_PORT_RANGE=61000-61050export HYDRA_FULL_ERROR=1export MASTER_PORT=$(shuf -i 20000-65000 -n 1)  # or any free portexport DISABLE_L2_CACHE=1export VLLM_ASCEND_ENABLE_NZ=0SCRIPT_DIR="/root/vime/scripts"source "${SCRIPT_DIR}/models/qwen3-4B.sh"LOG_FILE="/root/vime/train_qwen3_4b_vllm.log"python train.py \  --train-backend megatron \  --actor-num-nodes 1 \  --actor-num-gpus-per-node 4 \  --rollout-num-gpus 4 \  --rollout-num-gpus-per-engine 4 \  ${MODEL_ARGS[@]} \  \  --hf-checkpoint /path/to/Qwen/Qwen3-4B \  \  --prompt-data /path/to/dapo-math-17k/dapo-math-17k.jsonl \  --input-key prompt \  --label-key label \  --apply-chat-template \  --rollout-shuffle \  --rm-type math \  \  --rollout-backend vllm \  --vllm-weight-sync-mode native \  --vllm-gpu-memory-utilization 0.6 \  --vllm_enforce_eager \  --vllm-enable-sleep-mode \  --vllm-max-model-len 4096 \  \  --num-rollout 200 \  --rollout-batch-size 32 \  --n-samples-per-prompt 8 \  --rollout-max-response-len 2048 \  --rollout-temperature 1.0 \  --global-batch-size 256 \  --balance-data \  \  --advantage-estimator grpo \  --kl-loss-coef 0.0 \  --kl-loss-type low_var_kl \  --kl-coef 0.00 \  --entropy-coef 0.0 \  --eps-clip 0.2 \  --eps-clip-high 0.28 \  \  --optimizer adam \  --lr 1e-6 \  --lr-decay-style constant \  --weight-decay 0.1 \  --adam-beta1 0.9 \  --adam-beta2 0.98 \  \  --tensor-model-parallel-size 4 \  --pipeline-model-parallel-size 1 \  --context-parallel-size 1 \  --expert-model-parallel-size 1 \  --expert-tensor-parallel-size 1 \  --recompute-granularity full \  --recompute-method uniform \  --recompute-num-layers 1 \  --use-dynamic-batch-size \  --max-tokens-per-gpu 8192 \  --load /path/to/Qwen/Qwen3-4B  \  --megatron-to-hf-mode bridge  \  \  --attention-dropout 0.0 \  --hidden-dropout 0.0 \  --accumulate-allreduce-grads-in-fp32 \  --attention-softmax-in-fp32 \  --attention-backend flash \  --micro-batch-size 1 \  --use-flash-attn \  \  --train-memory-margin-bytes 2147483648 \  2>&1 | tee -a "$LOG_FILE"


参照qwen3_4b_example.sh,修改训练脚本中的对应参数,即可开始训练。主要修改参数包括:



--hf-checkpoint、--load:指定已下载的Hugging Face模型权重路径。


--prompt-data:指定训练数据集的路径。


运行训练脚本:


bash qwen3_4b_example.sh


训练效果


下图为Qwen3-4b模型的训练raw_reward曲线:其中红色曲线代表基于昇腾NPU的训练结果,蓝色曲线表示业界设备的训练结果。从reward曲线特征可见,收敛趋势跟参考曲线高度一致,数值也基本吻合,表明在昇腾NPU上的训练效果跟业界相持平。



未来规划


下一步,我们将与vLLM社区开发者共同完善vime,不断扩展主流模型的昇腾支持。我们诚挚邀请社区伙伴共同参与,携手塑造vime的未来发展方向。您可以通过已有的GitHub仓库和用户文档来了解更多的细节,与我们共同讨论Roadmap和新功能。


GitHub仓库:

https://github.com/vllm-project/vime


用户文档:

https://github.com/vllm-project/vime/tree/main/docs/zh


问题反馈:

https://github.com/vllm-project/vime/issues



◆往期推荐◆


             
           
             
           

全新开源ops-collections,现在NPU也可以使用哈希表来处理数据!


                                                                    

原文链接
多空观点 观点仅供交流,不构成投资建议
点赞
踩一踩
收藏
分享

评论 (0)

0/200
声明:社区内容仅代表用户个人观点,不构成任何投资建议。投资有风险,入市需谨慎。