feat: 添加平台管理、计算模块适配器及前端页面更新
- 新增 platform API 端点和存储 - 新增 llama_factory 适配器 - 新增前端 compute、guide、system 等视图页面 - 新增 echarts 插件和 mock 数据 - 更新 Docker 配置、后端配置及文档 - 更新前端路由、API、侧边栏等组件 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
135
docs/first-version-development-plan.md
Normal file
135
docs/first-version-development-plan.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 第一版系统开发计划
|
||||
|
||||
> 说明:本计划虽然以“可演示闭环”为阶段目标,但实现内容按正式系统第一版开发,不在工程模块、配置项、接口标签、数据库对象中使用临时代码命名。初始化数据仅作为样例种子数据,后续可在此基础上继续扩展为生产能力。
|
||||
|
||||
## 1. 阶段目标
|
||||
|
||||
第一版系统需要在没有完整生产环境、没有真实 GPU 或没有 LLaMA-Factory 运行环境时,仍然可以跑通模型微调平台的主链路:
|
||||
|
||||
```text
|
||||
登录
|
||||
-> 模型管理
|
||||
-> 数据集管理
|
||||
-> 创建微调任务
|
||||
-> 调度算力节点与 GPU
|
||||
-> 模拟资源副本检查和同步
|
||||
-> 启动训练任务
|
||||
-> 查看任务状态、GPU 占用、训练日志、loss 曲线
|
||||
-> 训练完成后登记训练产物
|
||||
```
|
||||
|
||||
该阶段不是一次性展示代码,而是后续系统继续开发的基础版本。算力、训练框架、资源同步、任务状态机均按真实平台边界设计,当前仅以 `simulator` 模式补齐无 GPU 环境下的可运行能力。
|
||||
|
||||
## 2. 运行模式
|
||||
|
||||
| 模式 | 说明 | 当前状态 |
|
||||
| --- | --- | --- |
|
||||
| `simulator` | 模拟 GPU、训练进程、日志、指标、checkpoint 和训练产物 | 第一版默认实现 |
|
||||
| `real` | 预留真实 `nvidia-smi`、LLaMA-Factory 进程启动、真实日志解析和产物扫描 | 后续接入 |
|
||||
|
||||
第一版实现必须保留 `real` 模式边界,不允许把训练命令直接写死在应用平台后端。训练相关能力统一沉淀在 `compute/engines/` 适配层。
|
||||
|
||||
## 3. 第一批开发范围
|
||||
|
||||
### 3.1 应用平台后端
|
||||
|
||||
对应目录:
|
||||
|
||||
```text
|
||||
backend/app/
|
||||
api/v1/endpoints/platform.py
|
||||
db/platform_store.py
|
||||
db/session.py
|
||||
```
|
||||
|
||||
已覆盖能力:
|
||||
- 统一 API 响应结构 `{ code, message, data }`。
|
||||
- 初始化样例用户、模型、数据集、算力节点、GPU 和微调任务。
|
||||
- 登录、当前用户、用户列表与权限。
|
||||
- 模型管理、训练产物列表、权重合并任务占位。
|
||||
- 数据集管理、文件上传、预览、版本管理和下载。
|
||||
- 微调任务创建、启动、停止、删除、进度查询、checkpoint 查询。
|
||||
- 系统健康指标、系统信息、训练日志、系统日志。
|
||||
- 算力节点、GPU、队列、资源副本、资源同步任务接口。
|
||||
|
||||
开发约定:
|
||||
- 当前本地可运行存储使用 SQLite,配置项为 `LOCAL_DB_PATH`。
|
||||
- 生产数据库仍以 PostgreSQL 为目标,正式表结构以 `docs/postgres-schema.sql` 为准。
|
||||
- `backend/app/db/session.py` 已提供 SQLAlchemy session 入口,后续替换正式 ORM 时从此处收口。
|
||||
|
||||
### 3.2 算力平台服务
|
||||
|
||||
对应目录:
|
||||
|
||||
```text
|
||||
compute/
|
||||
api/main.py
|
||||
engines/llama_factory/adapter.py
|
||||
```
|
||||
|
||||
已覆盖能力:
|
||||
- `/health` 与 `/api/v1/compute/health` 节点健康检查。
|
||||
- `/compute/resources/gpus` GPU 状态模拟。
|
||||
- `/compute/jobs` 创建、查询、停止训练任务。
|
||||
- `/compute/jobs/{id}/logs` 拉取训练日志与解析指标。
|
||||
- `/compute/files/upload` 与 `/compute/files/{id}/download` 文件网关占位。
|
||||
- LLaMA-Factory 参数校验、命令生成、日志指标解析。
|
||||
|
||||
设计约定:
|
||||
- 多算力节点阶段,每台单机多 GPU 服务器都部署一套 Compute API、Agent、File Gateway 和训练框架。
|
||||
- 应用平台通过 `compute_nodes` 中维护的 `api_base_url`、`file_gateway_url` 主动轮询算力节点。
|
||||
- 算力节点之间默认不互访,资源副本和同步状态由应用平台统一编排。
|
||||
|
||||
### 3.3 前端页面
|
||||
|
||||
已接入页面:
|
||||
- `/login`:登录接口。
|
||||
- `/model-manage`:模型列表与模型来源。
|
||||
- `/dataset`、`/dataset/:id/preview`:数据集列表、预览和版本。
|
||||
- `/fine-tune`、`/fine-tune/create`:微调任务创建、启动、状态轮询。
|
||||
- `/training-log/:id`:训练日志和 loss 曲线。
|
||||
- `/hardware`:平台 GPU 与系统性能。
|
||||
- `/compute`:算力节点、GPU、队列、资源副本。
|
||||
|
||||
新增前端能力:
|
||||
- `frontend/src/api/modules/compute.ts`:算力节点 API 包装。
|
||||
- `frontend/src/views/compute/ComputeNodesView.vue`:节点、GPU、队列、资源副本四个视图。
|
||||
- 权限枚举增加 `compute`,菜单增加“算力节点”入口。
|
||||
|
||||
### 3.4 数据库
|
||||
|
||||
第一版运行时使用本地 SQLite 以降低开发环境门槛,但数据库模型仍按 PostgreSQL 正式设计推进。
|
||||
|
||||
核心表范围:
|
||||
- 用户、租户、项目、角色、权限。
|
||||
- 模型、训练产物、数据集、数据集文件、存储对象。
|
||||
- 微调任务、训练指标、checkpoint、审计日志。
|
||||
- 算力节点、GPU 设备、算力任务、GPU 分配。
|
||||
- 资源副本、资源同步任务。
|
||||
|
||||
优化方向:
|
||||
- 任务状态、租户/项目隔离字段、资源副本定位字段需要建立索引。
|
||||
- 审计日志、训练指标、日志归档后续建议按时间分区。
|
||||
- 大文件只落本地磁盘或对象存储,数据库保存元数据和版本关系。
|
||||
|
||||
## 4. 验收标准
|
||||
|
||||
第一版完成后应满足:
|
||||
- 前端不启用静态 Mock 时,可以通过 FastAPI 获取主要页面数据。
|
||||
- 登录后可以看到模型、数据集、微调任务和算力节点。
|
||||
- 创建微调任务后可以启动任务,任务状态自动流转。
|
||||
- GPU 状态会随任务进入 `syncing`、`queued`、`running` 发生变化。
|
||||
- 训练日志持续生成,日志详情页能解析 loss、grad norm、learning rate、epoch。
|
||||
- 任务完成后训练产物出现在模型管理的训练产物列表中。
|
||||
- 算力节点页面可展示节点地址、权重、标签、启用状态、队列和资源副本。
|
||||
- 工程命名、配置和接口分组均可作为后续正式开发基础。
|
||||
|
||||
## 5. 后续开发计划
|
||||
|
||||
| 阶段 | 重点 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| 第二阶段 | PostgreSQL ORM 与 Alembic | 将 `platform_store.py` 的能力迁移为正式 ORM、迁移脚本和 repository/service 分层 |
|
||||
| 第三阶段 | 真实 Compute Agent | 接入 `nvidia-smi`、GPU 锁定、进程管理、训练日志文件采集 |
|
||||
| 第四阶段 | LLaMA-Factory 真实训练 | 生成 YAML/命令、启动训练进程、停止任务、扫描 checkpoint 和 adapter |
|
||||
| 第五阶段 | 企业治理 | 多租户、项目/模型/数据集隔离、审批流、审计留存、配额和资源申请 |
|
||||
| 第六阶段 | 多节点调度 | 基于 `compute_nodes`、资源副本和节点标签实现自动/手动调度策略 |
|
||||
Reference in New Issue
Block a user