argus-cluster/specs/mvp/v3.5/v3.5_changes.md

3.9 KiB
Raw Blame History

MVP v3.5 功能变更总结(相对 v3.0

v3.5 本轮按已确认的精简 scope只聚焦 Advanced TaskSpec + Custom Reward方式 A用户在 command 里写 overrides。Serving/IB/断点续训/多版本 verl 等能力本轮仍不做。

1. TaskSpec / 任务语义

1.1 新增 Advanced TaskSpec自定义 command

  • 新增 kind: advanced 的 TaskSpec 类型:
    • 用户可提交任意 bash command,不再局限于平台内置 PPO/GRPO/SFT 模板。
    • workload 不再要求用户填写,也不做 infer平台内部统一按 "advanced" 做任务分类与 task_id 命名(避免未来训练类型扩展带来的限制)。
  • 支持 $HOME 宏替换(服务端提交前展开):
    • $HOME/private/users/<user_id>
    • $HOME/common/datasets/private/datasets
    • $HOME/common/hf/private/hf
  • command 校验best-effort面向内部可信用户
    • 要求包含 python3 -m verl.(允许 verl.trainer.* / verl.model_merger 等)。
    • 不做强沙箱;主要防止明显误用导致的不可预期行为。

1.2 Custom Reward方式 A

  • 平台不新增 reward 专用字段、不扩展 TaskSpec schema。
  • 用户通过在 command 里写 VERL 原生 overrides 来注入 reward
    • custom_reward_function.path=...
    • custom_reward_function.name=...
    • custom_reward_function.reward_kwargs=...(如需)
  • 平台侧仅做:
    • 基础路径/宏展开($HOME
    • best-effort 的字符串校验(不做深度 AST 解析)

2. WebUINew Task 体验增强,仍兼容 YAML

  • New Task 页面新增 YAML 模式 / 表单模式切换:
    • 表单模式只覆盖 5 个模板PPO / GRPO / SFT / Advanced / Model Merge。
    • 表单模式实时生成 YAML 预览Submit 时提交生成 YAML可一键切回 YAML 模式继续手工编辑。
  • Advanced example
    • 示例命令改为多行、可读性更好。
    • 补齐 PPO 常见 fail-fast 所需的关键 overrides例如 actor micro batch避免用户“照抄即失败”。
  • 新增 Model merge exampleAdvanced command 形式):
    • 使用 python3 -m verl.model_merger merge ...
    • 支持用 $HOME/jobs/<RAY_SUBMISSION_ID>/... 访问训练产物目录。

3. SFTPGo / common 目录可读性(配合 v3.5 的 $HOME/common 语义)

这些变更主要用于保证 v3.5 所定义的 $HOME/common/{datasets,hf} 语义在 SFTPGo WebClient/客户端下可用。

  • /common/datasets/common/hf 作为 SFTPGo virtual folders 暴露为只读共享目录:
    • 允许 list + download用于浏览与下载/查看内容;仍不允许 upload/rename/delete
    • 权限规则覆盖到子路径(避免“能进目录但文件不可读”的情况)。
  • API 调用 SFTPGo admin API 的连通性增强:
    • dev 环境下避免依赖容器内 DNS部分 head 容器环境存在临时解析失败),改为通过 docker bridge 网关 + 映射端口访问 admin API。
  • API 启动脚本确保注入 SFTPGO_ADMIN_PASSWORD(与 compose 默认值保持一致),避免 Reset Password 走到 401。

4. 兼容性与行为变化

  • 完全兼容 v3.0 的 PPO/GRPO/SFT TaskSpec YAML(原有字段与提交方式不变)。
  • 新增能力不会影响 ray/node management仍按 v3.0head 发布 discovery、worker watchdog join/self-heal
  • Advanced 任务不会进入 PPO/GRPO/SFT 的语义约束;平台仅负责:
    • 资源字段(nnodes / n_gpus_per_node)用于队列调度与提交 gate
    • command 作为 Ray job entrypoint 执行

5. 已知限制v3.5 不做)

  • 不提供“可视化” reward 配置面板(仅方式 A用户自己写 command
  • 不支持 per-job 自定义 verl 代码快照/多版本共存(本轮不做 code_path 选择)。
  • 不支持断点续训一键 resubmit / IB(RDMA) / model serving按 roadmap 后续版本推进)。