新闻详情

新闻详情

首页 / 资讯中心 / 详情

verl 大规模 RL 训练排障实战指南:OOM、训练发散与多节点问题的系统性排查方案

发布时间:2026/11/10 18:14:08来源:尧图网络
verl 大规模 RL 训练排障实战指南:OOM、训练发散与多节点问题的系统性排查方案
AI 技能人工智能大模型深度学习【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs点击查看免费下载verlVolcano Engine Reinforcement Learning是字节跳动 Seed 团队开源的 RL 训练库基于 HybridFlow 框架EuroSys 2025实现支持 PPO、GRPO、DAPO、RLOO、REINFORCE 等多种算法并可在 FSDP/FSDP2/Megatron-LM 训练后端与 vLLM/SGLang 推理引擎之间灵活切换。本文以 troubleshooting.md 为骨架系统梳理从单卡 OOM 到多节点 NCCL 超时、从训练发散到权重同步卡死的高频故障现象、根因与可复制的修复配置并结合 api-reference.md 与 SKILL.md 中的配置模式给出参数取值参考帮助你快速定位问题并把训练稳定跑起来。前置认知理解 verl 的分层配置结构verl 的排障动作几乎全部落在 YAML 配置上因此先明确其三层配置骨架对应 api-reference.md 中的verl/trainer/config/ppo_trainer.yaml结构data数据文件路径与序列长度约束train_files、max_prompt_length、max_response_length等algorithm算法级超参adv_estimator、gamma、lam、entropy_coef、kl_ctrlactor_rollout_ref角色最复杂的一层又细分为model模型路径与后端、actor策略优化参数、rollout生成阶段参数三个子块critic仅在 PPO/GAE 场景出现trainer训练器级控制total_epochs、n_gpus_per_node、save_freq、async_weight_update等。从源码结构看verl 的核心运行单元包括RayPPOTrainer训练循环的中央控制器、ResourcePoolManager基于 Ray PlacementGroups 做 GPU 资源分配、ActorRolloutRefWorker同时承载策略训练、生成与参考模型计算并管理混合引擎模式切换以及RolloutReplicavLLM/SGLang/TensorRT-LLM/HF 等推理后端的统一接口。大部分排障配置最终影响的正是这些模块之间的资源分配与通信行为。OOM显存不足问题OOM 是 verl 训练中最常见的故障但生成阶段rollout与训练阶段backward的显存压力来源完全不同需要分别处理。生成阶段 OOMCUDA out of memory during generation生成阶段显存被三部分占用vLLM/SGLang 推理引擎的 KV Cache、log prob 计算的前向激活、参考模型的推理开销。对应修复手段1. 调低 log prob 微批大小rollout 阶段需要对生成的样本回传计算对数概率该过程按微批进行。过大的微批会让激活值瞬间撑爆显存actor_rollout_ref: rollout: log_prob_micro_batch_size: 4 # 默认参考值为 8OOM 时降至 4该参数与 api-reference 中log_prob_micro_batch_size: 8的默认参考值对应可视显存余量继续下调到 2。2. 开启梯度检查点以少量重计算开销换取激活值显存的大幅下降actor_rollout_ref: actor: gradient_checkpointing: true3. 使用 FSDP2 并开启 CPU offloadFSDP2 在 resharding 效率上优于旧版 FSDP配合 CPU offload 可把参数/优化器状态搬到主存actor_rollout_ref: actor: strategy: fsdp2 fsdp_config: offload_policy: true注意 api-reference.md 中 FSDP2 的典型配置还包含reshard_after_forward: true即前向后立即释放分片进一步压缩常驻显存。4. 降低 vLLM 的显存利用率vLLM 默认按gpu_memory_utilization预留推理显存给训练侧留下的空间不足时必然冲突actor_rollout_ref: rollout: gpu_memory_utilization: 0.7 # 默认参考值为 0.9调低为训练留出余量训练阶段 OOMCUDA OOM in backward pass1. 缩小 PPO 小批次ppo_mini_batch_size决定单次参数更新吃掉的样本量直接影响反向传播激活峰值actor_rollout_ref: actor: ppo_mini_batch_size: 32 # 默认参考值为 64OOM 时减半2. 开启梯度累积减小批次后若担心样本利用率下降可用累积补偿有效批大小actor_rollout_ref: actor: gradient_accumulation_steps: 43. 开启混合精度bf16 可将激活与梯度显存近似减半actor_rollout_ref: actor: fsdp_config: mixed_precision: bf16该写法在 api-reference 的 FSDP 配置中对应strategy: fsdp下的mixed_precision: bf16与sharding_strategy: FULL_SHARD此处作用域为 FSDP2 的混合精度策略。训练稳定性问题训练发散 / Loss 尖峰Loss Spikes、Reward Collapse发散通常意味着策略更新步长过大或约束过松优先级从高到低的四步处理1. 降低学习率actor_rollout_ref: actor: lr: 5e-7 # 默认参考值 1e-6发散时降一个量级以内2. 提高 KL 惩罚系数KL 约束把新策略钉在参考策略附近防止单步更新跑飞actor_rollout_ref: actor: kl_loss_coef: 0.01 # 默认参考值 0.001发散时可提高 10 倍3. 开启梯度裁剪actor_rollout_ref: actor: max_grad_norm: 1.0注意与同仓库 grpo-rl-training 模板 中的max_grad_norm0.1相比verl 场景常用 1.0 作为起始值可继续下调。4. 缩小 PPO 裁剪范围clip_ratio限制新旧策略比值的更新幅度收紧它等于给每一步更新上保险actor_rollout_ref: actor: clip_ratio: 0.1 # 默认参考值 0.2收敛不稳时减半策略坍缩Policy Collapse熵趋于 0模型输出退化为确定性文本多样性消失。处理思路是提高探索、降低约束1. 提高 rollout 采样温度actor_rollout_ref: rollout: temperature: 0.9 # 默认参考值 0.7探索不足时上调2. 增加熵奖励在目标函数中显式鼓励高熵分布algorithm: entropy_coef: 0.013. 降低 KL 惩罚KL 约束过强会强行把分布拉回参考策略间接抑制熵actor_rollout_ref: actor: kl_loss_coef: 0.0001 # 比默认 0.001 再低一个量级权重同步问题verl 采用rollout → reward → train → sync的循环rollout 结束后要把 actor 权重从训练侧同步到 vLLM/SGLang 推理侧权重同步快慢直接决定整轮循环的吞吐。同步缓慢rollout 与训练阶段之间长时间停顿1. 换用 FSDP2 加速 reshardingFSDP2 相比 FSDP1 在权重分片重组reshard路径上更快actor_rollout_ref: actor: strategy: fsdp22. 开启异步权重更新让训练与 rollout 重叠执行消除同步停顿trainer: async_weight_update: true3. 降低同步频率不必每步都同步间隔若干步再同步一次trainer: weight_sync_interval: 2 # 每 2 步同步一次权重同步超时Ray actor 超时1. 调大 Ray 初始化超时import ray ray.init(num_gpus8, timeout3600) # 1 小时超时应对慢速网络下的权重搬运2. 使用 colocate 模式显存允许时让 actor 与 rollout 共用同一批 GPU权重无需跨机器搬运trainer: colocate_actor_ref: truevLLM 版本问题vLLM 是 verl 最常用的 rollout 后端SKILL 中pip install verl[vllm]版本不匹配会表现为导入错误、生成挂起或输出异常。1. 锁定兼容版本区间pip install vllm0.8.2,0.12.0 # 规避已知 bug 较多的 vLLM 0.7.x 版本注意 SKILL.md 的依赖声明为vllm0.8.2其Common Issues一节给出的区间为0.8.5,0.12.0两者均以 0.8.x 为下限、0.12.x 为上限安装时以实际验证过的版本为准。2. vLLM 0.8.x 出问题时禁用 CUDA graphactor_rollout_ref: rollout: enforce_eager: true # 关闭 CUDA graphs牺牲少量吞吐换稳定api-reference 中该字段默认参考值为false仅在排查阶段开启。3. 核对 CUDA 版本nvidia-smi # 确认驱动与 CUDA 版本vLLM 0.11 需要 CUDA 12.1Ray 问题Ray 是 verl 的分布式底座ray2.41.0RayPPOTrainer、ResourcePoolManager都依赖 Ray 的 PlacementGroups 与 actor 机制。Ray 集群连接失败1. 检查集群状态ray status2. 重启 Ray 集群ray stop ray start --head --port6379 --num-gpus83. 验证网络连通性ping head_node_ipRay actor 因 OOM 被杀1. 扩大 Ray object store 内存ray start --head --object-store-memory10000000000 # 10GB2. 开启磁盘 spill把放不下的 object 落盘避免直接被 killexport RAY_object_spilling_config{type:filesystem,params:{directory_path:/tmp/ray_spill}}多节点问题NCCL 超时多机训练如 SKILL 中trainer.nnodes4的场景最常见的故障是 NCCL 集合通信超时根因通常是网卡选择错误或 InfiniBand 未启用。1. 设置 NCCL 环境变量export NCCL_DEBUGINFO export NCCL_SOCKET_IFNAMEeth0 export NCCL_IB_DISABLE0 # 有 InfiniBand 时启用NCCL_SOCKET_IFNAME必须与实际承载训练的网卡一致同仓库 openrlhf/multi-node-training.md 中也有NCCL_SOCKET_IFNAMEib0的同类实践NCCL_DEBUGINFO用于打印详细的通信日志辅助定位。2. 增大 NCCL 超时export NCCL_TIMEOUT1800 # 30 分钟规避慢速网络下的误超时3. 确认网卡接口ifconfig # 确认正确接口后回填到 NCCL_SOCKET_IFNAMEDeepSpeed GPU index out of rangeRay 会自行管理CUDA_VISIBLE_DEVICES与 DeepSpeed 的 GPU 索引推断逻辑冲突export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES1该环境变量同样出现在同仓库 openrlhf/hybrid-engine.md 中说明这是 RayDeepSpeed 混合场景下的通用修复手段。数据问题空批次Empty Batches1. 校验 parquet 数据格式verl 要求数据集至少包含prompt与reward_model两列SKILL 中数据集格式为{prompt: [...], reward_model: {...}}import pandas as pd df pd.read_parquet(train.parquet) print(df.columns) # 应包含 prompt、reward_model2. 使用绝对路径data: train_files: /absolute/path/to/train.parquet # 相对路径易在 Ray worker 间解析失败Tokenization 错误 / 序列长度不匹配1. 设置 padding token部分分词器的 pad_token 为空需要显式指定tokenizer.pad_token tokenizer.eos_token这与 grpo-rl-training 模板 中的tokenizer.pad_token tokenizer.eos_token是同一实践可直接复用。2. 核对序列长度配置data: max_prompt_length: 512 max_response_length: 2048 # 两者之和不应超过模型最大上下文长度Megatron 特定问题Megatron-LM 后端backend: megatron用于 70B 超大模型与专家并行EP场景排障重点在 checkpoint 格式转换与硬件兼容性。Megatron Checkpoint 加载失败1. 开启 mbridge 格式转换actor_rollout_ref: actor: megatron: use_mbridge: trueapi-reference 明确指出use_mbridge: true是格式转换的必选项Required for format conversion。2. 用官方脚本转换 HuggingFace → Megatronpython tools/convert_hf_to_megatron.py \ --hf_model_path /path/to/hf/model \ --save_path /path/to/megatron/checkpointMegatron 在 AMD GPU 上不可用这是当前版本的已知限制原文档明确标注 Current LimitationMegatron-LM 后端不支持 AMD GPU应退回 FSDP 后端actor_rollout_ref: model: backend: fsdp调试技巧与工具链开启详细日志trainer: logging_level: DEBUGexport VERL_DEBUG1 export RAY_DEDUP_LOGS0 # 关闭 Ray 日志去重保留每个 worker 的完整输出实时监控 GPU 利用率watch -n 1 nvidia-smi配合 SKILL 的监控建议关注 WandB/TensorBoard 的 loss 曲线、reward 是否随 step 上升可快速区分显存瓶颈与利用率不足两类问题。训练过程性能剖析用 PyTorch Profiler 导出 Chrome trace定位前向/反向/通信各阶段耗时# 在训练循环中加剖析 import torch.profiler with torch.profiler.profile( activities[torch.profiler.ProfilerActivity.CPU, torch.profiler.ProfilerActivity.CUDA], record_shapesTrue, ) as prof: trainer.fit() prof.export_chrome_trace(trace.json)排障速查清单症状首选排查项核心配置/命令生成阶段 OOM推理显存占用gpu_memory_utilization: 0.7训练阶段 OOM反向激活峰值ppo_mini_batch_size: 32Loss 尖峰/发散步长过大lr: 5e-7、kl_loss_coef: 0.01策略坍缩熵0探索不足temperature: 0.9、entropy_coef: 0.01权重同步慢通信开销strategy: fsdp2、async_weight_update: trueRay actor 超时资源与网络ray.init(timeout3600)、colocate_actor_ref: truevLLM 生成异常版本兼容pip install vllm0.8.2,0.12.0NCCL 超时网卡/IB 配置NCCL_SOCKET_IFNAME、NCCL_TIMEOUT1800空批次数据格式校验prompt/reward_model列、绝对路径Megatron checkpoint 失败格式转换use_mbridge: true延伸阅读完整的配置结构、奖励函数签名与后端专属参数见 verl API Referenceverl 的整体架构、算法选择与 GRPO/PPO/Megatron 三种工作流见 verl SKILL同主题的 GRPO 奖励函数库与可运行训练模板见 reward_functions_library.py 与 basic_grpo_training.py多节点场景下 RayNCCL 的更多实践可对照 openrlhf/multi-node-training.md。赞分享AI 技能人工智能大模型深度学习【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs点击查看免费下载相关推荐AReaL 大规模 RL 训练 OOM 排查与显存优化实战指南AReaL 大规模 RL 训练 OOM 排查与显存优化实战指南 本文面向在 AReaLThe RL Bridge for LLM based Agent Ap人工智能大模型强化学习分布式训练AI AgentAReaL 大规模 RL 训练 OOM 排查与优化实战指南生成、训练、权重更新全阶段内存治理AReaL 大规模 RL 训练 OOM 排查与优化实战指南生成、训练、权重更新全阶段内存治理 OOMOut of Memory是大规模 RL 训练中最常见人工智能大模型强化学习分布式训练AI AgentLTX-2 训练故障排查全指南从 OOM、NaN Loss 到断点续训的实战速查手册LTX 2 训练故障排查全指南从 OOM、NaN Loss 到断点续训的实战速查手册 导读 本文是 LTX 2LTX 2.3 / LTX 2.5训练工作流人工智能大模型媒体生成视频音频微调模型量化上一篇CloudBase Framework 安装和配置指南下一篇PyBBS一个实用的Java开发社区论坛创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/10 19:42:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/11 9:31:44

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/11 5:36:08

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/11 15:37:39

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/10 17:14:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉