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

68 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 example`Advanced 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 后续版本推进)。