3.9 KiB
3.9 KiB
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 命名(避免未来训练类型扩展带来的限制)。
- 用户可提交任意 bash
- 支持
$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. WebUI(New 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.0:head 发布 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 后续版本推进)。