argus-cluster/specs/mvp/v2.5/v2.5_acceptance.md

68 lines
2.5 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 v2.5 开发/部署/验收标准
本文件定义 v2.5 的“可验证闭环”,确保每个里程碑可验收。
---
## 1. 开发交付物Deliverables
### 1.1 代码交付(建议)
- API Server 增强user management + task 关联 user_id + 鉴权隔离
- SQLite schema 迁移:新增 users/tokenstasks 增加 user_id
- Ray Head service discoveryhead.json 写入与心跳刷新
- Worker bootstrap + watchdog
- dev以脚本方式提供docker compose 场景)
- prod以容器 command/entrypoint 方式可注入
### 1.2 文档交付
- 目录结构与 GPFS 路径约定
- API 文档(含用户与多租户隔离)
- 运维 SOPhead 重启、worker 自愈、如何排障 head.json
---
## 2. 部署流程Dev 环境可验证)
### 2.1 启动顺序(推荐)
1) 启动 head包含 API server + Ray head
2) head 写入 `/private/ray/discovery/<cluster_name>/head.json`
3) 启动若干 worker无须指定 head 地址)
4) worker 自动读取 head.json 并加入集群
5) 通过 API 创建用户并获取 token
6) 使用 user token 提交 PPO/GRPO/SFT
---
## 3. 验收标准Acceptance Criteria
### 3.1 Stateless Ray Node Pool
- A1在 worker 启动时不传 head 地址worker 能在 `T<=60s` 内加入集群ray status 可见)
- A2head 容器重启IP 变化或 Ray 重启)后:
- head.json 更新
- worker watchdog 在 `T<=60s` 内自动重连
- A3head 设置 `--num-gpus=0 --num-cpus=0`,训练 driver 不会跑到 head可通过 Ray dashboard/日志验证)
### 3.2 User Management
- U1admin 可创建用户并签发 tokentoken 仅返回一次)
- U2用户 A 提交的 task用户 B 无法查询/取消/获取日志API 返回 404 或 403按设计约定
- U3仅隔离 jobs 输出:任务输出落在 `/private/users/<user_id>/jobs/<ray_submission_id>/...`,不同用户互不覆盖
- U4训练输入verl 代码、HF cache、datasets统一使用 `/private/common/...`v2.5 不做输入隔离)
### 3.3 Task Flow继承 v2.0
- T1PPO/GRPO/SFT 三种 workload 都能成功提交并跑通dev 规模可用 epoch=1/steps=10
- T2资源不足时任务不会“直接失败不可恢复”而是进入 `PENDING_RESOURCES` 并按间隔重试(与 v2.0 同逻辑)
---
## 4. 回归用例(最小集合)
1) 创建用户 alice/bob分别提交 sft验证隔离与输出目录
2) 启动 head + 2 workers提交 ppo/grpo验证 driver 落 worker
3) 重启 head或修改 head.json 指向新 IP验证 worker watchdog 自动重连