在 AIStudio 训练任务中使用 verl
verl 用于大语言模型的强化学习后训练,可以把生成回答、计算奖励和更新模型组织成同一条训练链路。本页帮助您选择 AIStudio 的运行方式和入门教程;模型、数据、资源和命令以对应教程为准。
判断 verl 是否适合当前任务
如果任务需要让模型生成回答、根据规则或奖励模型评分,再使用 GRPO、PPO 等算法更新模型,可以使用 verl。若只需要使用已有样本做监督微调,可以改用使用 LLaMA Factory 进行微调。
开始训练前,请先明确模型、数据集、奖励计算方式和预期训练规模。入门教程中的少量 step 用于确认运行链路和持久化输出,不能代替完整训练和效果评测。
选择单机或 Ray
根据 Worker 数量选择 分布式框架:
- 一个 Worker:选择 单机。verl 可以在这个 Worker 内启动本地 Ray,并使用分配给该 Worker 的 GPU。
- 多个 Worker:选择 Ray。AIStudio 创建 Ray Head 和 Worker,并在 Head 中执行作为 Driver 的启动命令。通过 RuntimeEnv 为所有节点传递工作目录和环境变量。
GPU 数量不会单独决定框架选项:一个 Worker 即使使用多张 GPU,仍属于单机任务;需要让 verl 跨两个或更多 Worker 运行时,再选择 AIStudio 的 Ray 分布式框架。是否启用 RDMA 取决于所选资源和教程的通信要求,不是所有 verl 任务的通用前提。多 Worker 任务的配置方式见提交 Ray Driver 入口命令。
准备模型、数据和输出位置
创建训练任务前,请准备以下内容:
- 选择教程验证过的容器镜像和 verl 版本,不要在 GPU 任务启动时联网安装依赖或切换源码版本;
- 把固定版本的 verl 代码、模型和处理后的数据放在共享高性能存储中;
- 让每个 Worker 使用相同的容器内挂载路径读取这些输入;
- 为每次运行设置新的输出目录,把日志、rollout、TensorBoard 事件和 checkpoint 写入共享存储。
共享存储中的代码、数据和输出目录准备方法见准备代码、数据与输出目录。启动命令应让训练异常以非零状态退出,并在结束前检查预期 step 和 checkpoint;详见编写可靠启动命令。
选择一个入门教程
两篇教程使用同一组固定版本的 verl、DeepSeek-R1-Distill-Qwen-1.5B 和 GSM8K 输入,便于先验证单 GPU 链路,再验证多 Worker Ray 调度。模型权重可以在同一共享存储中复用,无需为不同教程分别复制。
使用一个 Worker 和一张 GPU
在 AIStudio 训练任务中使用 verl 运行 DeepSeek-R1-Distill-Qwen-1.5B 单 GPU GRPO使用 单机,完成两步 SGLang 生成、规则奖励和 FSDP2 全参数更新。先用这篇教程确认镜像、模型、数据、GPU 运行时和持久化输出可以正常工作。
使用两个 Worker 和四张 GPU
在 AIStudio Ray 训练任务中使用 verl 运行双 Worker GRPO使用两个 Worker、每个 Worker 两张 GPU,并选择 Ray。这篇教程用于确认两个 Ray 节点、跨 Worker 训练和 rank 0–3 的 checkpoint 分片,不要求 8 卡 Worker 或 RDMA。
查看训练状态和恢复方式
运行时在 任务详情 页查看 任务日志,并使用TensorBoard查看当前任务的指标。多 Worker Ray 任务还可以打开 查看 Ray Dashboard,检查 Ray 节点和任务状态。两篇入门教程使用新的 RUN_ID 运行,不演示从 checkpoint 恢复。需要增加训练 step 或从 checkpoint 续训时,应先调整启动脚本和 verl 的恢复配置,再根据配置训练任务容错设置自动重启策略。