执行摘要
调换配置项赋值顺序以节省主机内存
PPO 场景下 --use_critic 时 offload_train 被强制设为 True,但原有的 disable_grad_buffers_cpu_backup 赋值在设置 offload_train 之前,导致虽然 offload 未生效却仍禁用 CPU 备份,造成主机内存浪费。
建议融合,修复明确,改动极小。可作为配置逻辑正确性的教学案例。
无 review 评论。
PPO 场景下 --use_critic 时 offload_train 被强制设为 True,但原有的 disable_grad_buffers_cpu_backup 赋值在设置 offload_train 之前,导致虽然 offload 未生效却仍禁用 CPU 备份,造成主机内存浪费。
建议融合,修复明确,改动极小。可作为配置逻辑正确性的教学案例。
无 review 评论。
在 slime/utils/arguments.py 的 slime_validate_args 函数中,将 if args.offload_train: args.disable_grad_buffers_cpu_backup = True 代码块从 if args.use_critic: args.offload_train = True 之前,移动到该语句之后。
offload_train 设置 disable_grad_buffers_cpu_backup,再处理 use_critic。但 use_critic 会强制将 offload_train 设为 True,此时 disable_grad_buffers_cpu_backup 已经错误地未设置。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/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_backup
if 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 # 强制开启 offload
if args.offload_train:
args.disable_grad_buffers_cpu_backup = True # 现在确保 offload_train 为最终值
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低:仅调整两段代码的先后顺序,逻辑简单。但需确认所有依赖 disable_grad_buffers_cpu_backup 的路径都能在正确的 offload 状态下生效。
修复 --use_critic 时主机内存异常占用过大的 bug,影响 PPO 训练场景。改进后主机内存使用量回归正常水平。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论