执行摘要
提取生成和评估过程中的未来推理引擎钩子,为异步场景做准备。
这个PR值得精读,因为它展示了如何通过提取钩子来解耦核心逻辑,为未来架构演进做准备。设计决策(如将准备逻辑移到单独方法)可借鉴,但注意RDT回滚是临时的,后续PR会重新集成。风险较低,适合快速评审。
无显著讨论,PR被直接批准(guapisolo approve),没有提供具体评论内容。
这个PR值得精读,因为它展示了如何通过提取钩子来解耦核心逻辑,为未来架构演进做准备。设计决策(如将准备逻辑移到单独方法)可借鉴,但注意RDT回滚是临时的,后续PR会重新集成。风险较低,适合快速评审。
无显著讨论,PR被直接批准(guapisolo approve),没有提供具体评论内容。
miles/ray/rollout/rollout_manager.py 中新增 prepare_rollout 和 prepare_eval 方法,将健康监控、CI故障注入、仪表盘引擎注册等准备逻辑从 generate 和 eval 方法中移出,使生成和评估方法更专注于数据流。train_async.py 中,在调用 generate 和评估分发前,先调用 prepare_rollout.remote() 和 prepare_eval.remote(),确保准备逻辑同步执行,避免数据生成与准备逻辑耦合。miles/backends/training_utils/weight_update/protocols/rdt.py 和 miles/ray/rollout/sglang_server_actor.py 文件,并修改 miles/backends/sglang_utils/sglang_engine.py 以移除RDT分支逻辑,简化引擎初始化。tests/e2e/megatron/test_qwen3_30B_A3B_rdt.py 和 tests/fast/utils/test_arguments.py 中的 TestRdtValidation),并添加新钩子的测试(如 tests/fast/ray/rollout/real_ray/test_rollout_manager.py 中的 TestPrepareRollout),确保重构后的逻辑正确性。miles/ray/placement_group.py 和 miles/ray/train/actor_factory.py,移除RDT相关的GPU分配和并发控制逻辑,统一为标准配置。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
miles/ray/rollout/rollout_manager.py |
Rollout 管理器 | modified | 7.55 |
miles/backends/sglang_utils/sglang_engine.py |
SGLang 引擎 | modified | 7.96 |
miles/ray/rollout/sglang_server_actor.py |
SGLang 服务器 | removed | 7.96 |
miles/backends/training_utils/weight_update/protocols/rdt.py |
RDT 协议 | removed | 9.28 |
tests/e2e/megatron/test_qwen3_30B_A3B_rdt.py |
RDT 测试 | removed | 6.82 |
miles/ray/rollout/rollout_manager.py
core-logic
核心变更文件,新增 prepare_rollout 和 prepare_eval 钩子,将准备逻辑与生成 / 评估解耦,是重构的关键入口。
# RolloutManager 中新增的准备钩子,用于在数据生成和评估前执行健康监控、CI 故障注入等逻辑
# 这些钩子与生成 / 评估解耦,支持未来的异步推理引擎集成
def prepare_rollout(self, rollout_id):
self.rollout_id = rollout_id
self._health_monitoring_resume()
if self.args.ci_test and self._rollout_ft_enabled and rollout_id >= 2:
self._try_ci_fault_injection()
dashboard_hooks.register_engines(self.servers)
def prepare_eval(self):
self._health_monitoring_resume()
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
rdt.py 和 sglang_server_actor.py)可能影响未来重新集成RDT,但PR说明是临时回滚,为重构链条清理道路。rollout_manager.py 中调整了 init_http_client 和 start_session_server 的顺序(先启动服务器再初始化客户端),可能引入微妙的依赖问题,但测试覆盖了核心路径。miles/utils/arguments.py 中的验证逻辑,移除了RDT特定参数验证,可能影响现有配置,但与其他PR协调进行。
参与讨论