执行摘要
支持完整权重磁盘同步模式
提供一种无需 NCCL 广播的权重同步方式,适用于共享文件系统环境,降低网络开销并提高可靠性。PR 标题明确支持通过磁盘更新权重。
值得精读,尤其关注 UpdateWeightFromDisk 的同步流程和参数兼容性设计。配套测试可作为集成测试参考。
该 PR 无 review 评论,可能由作者直接合并。关键设计决策(如磁盘同步与 NCCL 的对比、废弃参数兼容)已在代码注释中体现。
提供一种无需 NCCL 广播的权重同步方式,适用于共享文件系统环境,降低网络开销并提高可靠性。PR 标题明确支持通过磁盘更新权重。
值得精读,尤其关注 UpdateWeightFromDisk 的同步流程和参数兼容性设计。配套测试可作为集成测试参考。
该 PR 无 review 评论,可能由作者直接合并。关键设计决策(如磁盘同步与 NCCL 的对比、废弃参数兼容)已在代码注释中体现。
新增 UpdateWeightFromDisk 类(slime/backends/megatron_utils/update_weight/update_weight_from_disk.py),实现 connect_rollout_engines、disconnect_rollout_engines、pop_metrics 和 update_weights 方法。update_weights 在 rank 0 暂停引擎、刷新缓存,然后调用 save_hf_model_to_path 将模型保存到版本化目录,最后通知引擎从磁盘加载。
重构 hf_checkpoint_saver.py:将原 save_hf_model_direct 函数拆分为通用函数 save_hf_model_to_path 和 save_hf_model_direct_to_path,前者根据 megatron_to_hf_mode 选择桥接或直接转换,后者实现具体保存逻辑,支持任意输出路径和自定义进度描述。
参数扩展:在 arguments.py 中新增 --update-weight-disk-dir 和 --update-weight-disk-keep-files,将 --update-weight-delta-dir 标记为废弃别名,并通过 _resolve_update_weight_disk_dir 函数统一处理冲突和回填。
删除旧 save_hf_model 函数(model.py),将入口统一到新的 save_hf_model_to_path。
测试配套:test_megatron_argument_validation.py 新增参数验证测试,test_full_disk_weight_update.py 新增端到端 CI 测试,验证完整磁盘同步流程。test_hf_checkpoint_saver.py 增加对输出路径冲突的测试。
| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
slime/backends/megatron_utils/update_weight/update_weight_from_disk.py |
权重同步 | added | 8.82 |
slime/backends/megatron_utils/hf_checkpoint_saver.py |
HF 检查点保存 | modified | 8.56 |
slime/utils/arguments.py |
参数解析 | modified | 7.91 |
slime/backends/megatron_utils/model.py |
模型管理层 | modified | 7.56 |
tests/test_megatron_argument_validation.py |
参数验证测试 | modified | 7.45 |
tests/test_full_disk_weight_update.py |
磁盘同步测试 | added | 7.22 |
分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
新增磁盘 I/O 路径可能成为性能瓶颈,尤其在高频同步时;共享文件系统的延迟和容错性影响可靠性;废弃参数 --update-weight-delta-dir 可能导致用户困惑,但通过警告和回填缓解;需要确保引擎有权读写磁盘目录。
用户获得替代 NCCL 的同步选项,适合文件系统环境;系统增加磁盘写入和读取负载;团队需维护两套传输模式;测试覆盖了主要路径,但边缘情况(权限、磁盘满)未覆盖。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论