Prhub

#1932 save host menmroy

原始 PR 作者 lilei199908 合并时间 2026-05-21 16:13 文件变更 1 提交数 1 评论 0 代码增减 +3 / -3

执行摘要

调换配置项赋值顺序以节省主机内存

PPO 场景下 --use_criticoffload_train 被强制设为 True,但原有的 disable_grad_buffers_cpu_backup 赋值在设置 offload_train 之前,导致虽然 offload 未生效却仍禁用 CPU 备份,造成主机内存浪费。

建议融合,修复明确,改动极小。可作为配置逻辑正确性的教学案例。

讨论亮点

无 review 评论。

实现拆解

slime/utils/arguments.pyslime_validate_args 函数中,将 if args.offload_train: args.disable_grad_buffers_cpu_backup = True 代码块从 if args.use_critic: args.offload_train = True 之前,移动到该语句之后。

  1. 原顺序:先判断 offload_train 设置 disable_grad_buffers_cpu_backup,再处理 use_critic。但 use_critic 会强制将 offload_train 设为 True,此时 disable_grad_buffers_cpu_backup 已经错误地未设置。
  2. 新顺序:先执行 if args.use_critic: args.offload_train = True,确保 offload_train 最终值确定,再执行 if args.offload_train: args.disable_grad_buffers_cpu_backup = True,从而正确开启 CPU 备份禁用。
文件 模块 状态 重要度
slime/utils/arguments.py 参数配置 modified 4.95

关键符号

slime_validate_args

关键源码片段

slime/utils/arguments.py core-logic

配置文件,修改了 `slime_validate_args` 函数中两段赋值逻辑的顺序。

# slime/utils/arguments.py
# 调整前:disable_grad_buffers_cpu_backup 在 use_critic 强制 offload 之前设置
# 调整后:先强制设置 offload_train,再设置 disable_grad_buffers_cpu_backupif args.offload_rollout is None:
    args.offload_rollout = False# ( 原 ) if args.offload_train:
# ( 原 ) args.disable_grad_buffers_cpu_backup = True # 这里 offload_train 可能还没被 use_critic 覆盖if args.use_critic:
    args.offload_train = True # 强制开启 offloadif args.offload_train:
    args.disable_grad_buffers_cpu_backup = True # 现在确保 offload_train 为最终值

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:仅调整两段代码的先后顺序,逻辑简单。但需确认所有依赖 disable_grad_buffers_cpu_backup 的路径都能在正确的 offload 状态下生效。

修复 --use_critic 时主机内存异常占用过大的 bug,影响 PPO 训练场景。改进后主机内存使用量回归正常水平。

缺少测试覆盖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论