RLVR 流水线
目录
✨️概述
此流水线提供以下核心优势:
-
多样化任务支持:内置支持各种任务类型,包括数学推理、代码生成、LLM作为评判器评估和指令遵循,每种类型都配备了专门的奖励评估机制和灵活的扩展接口,以适应新任务类型。
-
多任务联合训练:能够同时优化模型在数学、编程和通用推理等多个领域的能力,灵活控制每个领域的数据采样比例和奖励权重配置。
-
算法友好的强化学习框架:提供丰富的强化学习策略选项(超过20种),包括但不限于奖励归一化、奖励裁剪、各种优势估计方法等。不限于单一算法实现,支持多种强化学习算法,如PPO、GRPO、Reinforce++、TOPR和RAFT++。
-
全面的性能监控:细粒度的指标跟踪系统,同时监控组级别和批次级别的性能指标,为模型训练过程提供全面的可视化和分析能力。
-
高效的分布式计算:利用Ray框架在大规模GPU集群上实现高效的分布式训练,显著提高训练速度和资源利用率。
-
高效训练优化:支持 Sequence Packing(将多条短样本拼接成连续序列,减少 padding)与 Dynamic Batching(根据样本长度动态组 batch,按 batch 内最大长度统一 padding,最小化无效计算)。配置方法和实现原理详见
sequence packing和dynamic batching对应文档。
✨️核心组件
主模块 (RLVRPipeline)
RLVRPipeline(位于roll/pipeline/rlvr/rlvr_pipeline.py)是整个强化学习过程的主要协调器。它管理完整的训练工作流,包括:
- 初始化和管理分布式工作器(actor、critic、reference和各种奖励工作器)。
- 协调数据收集和处理。
- 执行模型训练步骤(例如,actor和critic的PPO更新)。
- 处理模型同步和检查点保存。
- 验证集评估。
- 记录指标和实验跟踪。
源代码:roll/pipeline/rlvr/rlvr_pipeline.py
配置文件 (RLVRConfig)
RLVRConfig(定义于roll/pipeline/rlvr/rlvr_config.py)是一个基于Pydantic/dataclass的配置对象,用于指定运行rlvr流水线的所有参数。此配置系统设计灵活,支持通过YAML文件进行配置,并使用Hydra框架进行管理。