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

2.5 KiB
Raw Blame History

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 自动重连