feat: 平台治理与权限体系完善,存储进度/GPU预留/审批中心与日志整合

- 平台治理: 租户用户权限层次、资源ACL、审批中心与审批模板、访问申请
- 存储: MinIO 存储进度迁移、对象存储安全加固与测试
- 计算: GPU 资源预留、compute 轮询与同步增强
- 权限: permission v2 迁移、权限安全验收测试
- 日志: 后端运行日志中文说明、操作日志整合
- 数据处理/评测: 数据转换与模型评测优化

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wuyongtao
2026-08-21 09:49:48 +08:00
parent 080ef6ab00
commit 6f0e82f351
94 changed files with 9547 additions and 1045 deletions

View File

@@ -1,6 +1,6 @@
# 当前项目开发进度
> 评估基线2026-08-19 当前工作区代码、数据库初始化脚本、Docker 部署文件、前端页面和现有设计文档
> 评估基线2026-08-20 当前工作区代码、数据库初始化脚本、增量迁移脚本、Docker 部署文件、前端页面和 WSL 容器验证结果
>
> 本文以代码实际情况为准。设计文档中已经提出但代码没有形成完整闭环的内容,统一标记为“部分完成”或“未完成”。
@@ -24,14 +24,16 @@ FastAPI Backend API
| 范围 | 当前状态 | 结论 |
|---|---|---|
| 平台基础架构 | 基本完成 | 前端、数据库、Redis、MinIO、Compute Agent 和 Docker 部署均已具备 |
| 核心业务闭环 | 基本可用 | 数据集、数据处理、数据转换、训练、模型、推理、评测均有页面和接口 |
| 平台基础架构 | 已完成开发基线 | 前端、Backend、PostgreSQL、Redis、MinIO、Compute Agent 和离线 Docker 编排均已具备 |
| 核心业务闭环 | 基本可用 | 数据集、数据处理、数据转换、训练、模型、推理、评测主要流程已闭环 |
| 多算力节点 | 部分完成 | 节点选择、GPU 分配和缓存准备已经接入,跨节点一致性和失败恢复仍需加强 |
| 权限治理 | 部分完成 | 登录、角色、权限码、ACL、审批、审计已实现,但完整的租户/项目隔离尚未闭环 |
| MinIO 统一存储 | 部分完成 | 大文件模型已接入,仍存在兼容性的本地路径和部分数据双写/回退路径 |
| 生产可靠性 | 完成 | 缓存容量治理、对象清理、流式上传、归档重试、备份和高可用尚未完成 |
| 权限治理 | 功能闭环基本完成 | 登录、角色、权限码、ACL、审批、资源申请、GPU 申请和审计已实现,历史数据迁移与全量回归待完成 |
| MinIO 统一存储 | 基本完成 | 大文件模型、产物、报告和节点缓存已接入;小型内容保留数据库属于明确的性能策略 |
| 生产可靠性 | 部分完成 | 重试、补偿、缓存治理和故障快速失败已实现,生命周期运维、高可用、备份和大规模压力测试未完成 |
| 前端体验 | 基本可用,需优化 | 构建问题已持续修复,但页面响应等待、首屏体积和部分错误提示仍需优化 |
当前结论:项目已经进入“核心功能闭环后的专项验证和上线前加固阶段”,不再是单纯的功能骨架开发。尚不能宣称生产可上线,主要风险集中在历史数据迁移、跨节点多 GPU 并发、评测指标质量、MinIO 运维和全量回归测试。
## 二、已完成的功能
### 2.1 平台基础与部署
@@ -55,6 +57,7 @@ FastAPI Backend API
- 已建立资源 ACL 管理页面和相关接口,可对用户或角色授予资源级权限。
- 已建立审批模板、审批实例和审批步骤的基本数据模型与页面。
- 已建立运行日志、审计日志查询页面及审计记录写入机制。
- “运行日志”已按分层模型实现:普通用户只查看本人操作日志,管理员查看系统日志、训练日志、审计记录和全量操作诊断。
- 已加入软删除相关字段和部分删除逻辑,避免直接物理删除业务资源。
### 2.3 算力节点与 GPU 资源
@@ -141,72 +144,61 @@ FastAPI Backend API
- Compute Agent 仍有本地文件上传、导入本地模型和扫描本地模型目录的旧接口。
- 部分历史数据仍使用数据库中的 `content``output_content` 字段,这是当前已确认的小文件性能策略,不是错误,但必须统一记录来源、大小、校验值和版本。
- 大文件在部分代码路径中仍通过 `read()``put_bytes()` 一次性读入内存,未完成流式或分片上传
- Compute Agent 节点侧的大文件上传已改为流式读取Backend 端部分历史上传/下载路径仍未完成统一的分片传输
- MinIO 对象和业务资源之间采用多态 `resource_type/resource_id` 关联,数据库没有直接外键,删除和数据一致性需要应用层保证。
- 删除业务资源后,对应 MinIO 对象的延迟清理、失败重试和孤儿对象扫描尚未形成完整闭环。
### 3.2 MinIO 预签名接口的权限边界需要加强
### 3.2 MinIO 预签名接口的权限边界
当前预签名接口已经存在,但 PUT 上传场景仍需要重点补强:
- 需要根据资源类型和资源 ID 校验当前用户的写权限,而不应只校验读取权限。
- 需要服务端生成并校验对象 Key避免客户端任意写入其他用户或其他资源的对象路径。
- 需要增加上传完成确认接口,校验对象实际存在、大小和校验值后再写入业务表。
- 需要限制允许的 Bucket、Content-Type、大小和有效期。
- 需要记录预签名创建、上传完成、失败和过期事件,便于审计。
资源写权限、服务端对象 Key、上传完成确认和对象大小校验已经完成仍需补充 Content-Type 白名单、对象过期回收和完整审计事件。
### 3.3 激活版本和跨节点资源版本仍需加强
数据集已经有 `active_version_id` 和版本表,但以下场景仍需补充:
- 训练、推理和评测必须只使用资源当前激活版本,并在任务创建时固化版本 ID。
- 训练、评测、模型对比和权重合并已在任务创建时固化资源版本 ID;推理服务启动和导出任务仍需统一补齐
- 同一文件名的不同版本不能只依靠文件名同步,应使用资源 ID、版本 ID 和对象 Key 组成唯一定位。
- 已创建任务在后续切换激活版本后,不能被意外切换到新版本。
- 需要为每个准备到算力节点的资源保存版本、对象 ETag/校验值和本地路径清单
- 已为资源副本保存版本、对象 ID 和本地路径;对象 ETag/校验值及多文件 manifest 仍需补齐
- 历史版本的数据库内容回退和 MinIO 对象回退逻辑还需要补全并增加测试。
### 3.4 权限 2.0 尚未完全落地
### 3.4 权限 2.0 已基本闭环,仍需历史迁移和全量回归
已有用户、角色、权限码、ACL、审批和审计基础,但仍存在以下差距:
已有用户、角色、权限码、ACL、审批、资源申请、GPU 申请、审计和普通用户自助日志能力,仍存在以下差距:
- 租户、用户、资源、算力节点、模型、数据集之间的隔离规则没有全部在 SQL 查询层统一执行
- 项目空间设计已经讨论过取消,但数据库中仍保留 `projects``project_members` 等历史结构,需要明确兼容策略和最终迁移方式
- 训练创建的模型、数据集和训练任务之间的联合权限约束还没有完全统一
- 评测、推理、模型合并、导出、缓存准备等动作需要逐一校验资源读权限和操作权限
- 前端按钮权限已经有基础实现,但不能替代后端鉴权;仍需要对所有关键动作进行后端默认拒绝校验
- 审批拦截范围、管理员豁免规则和跨租户资源访问规则需要形成可执行矩阵。
- 历史数据中的 NULL 租户归属仍需盘点和迁移,之后再增加更严格的数据库约束
- 项目空间已从前端和新业务流程移除,但 `projects``project_members` 等历史表仍需兼容迁移和下线方案
- 训练、推理、评测、模型合并、导出、缓存准备和下载接口仍需执行全量跨用户/跨租户回归
- 资源动作鉴权已经分散接入,仍需继续统一授权函数和后端默认拒绝策略
- 审批策略、配额、GPU 预留和资源 ACL 的组合规则需要继续用自动化矩阵验证
### 3.5 模型合并、导出和评测报告闭环不足
### 3.5 模型合并、导出和评测报告已基本闭环
- 权重合并前自动准备 Base Model 和 Adapter 的主要路径已建立,但失败时的清理、重试和幂等性仍需加强
- 合并结果归档到 MinIO 的逻辑主要依赖任务完成轮询,服务重启或轮询中断时可能需要补偿扫描
- 模型导出任务目前有查询模型和表结构,但完整的创建、执行、进度、失败重试和下载闭环尚未完成
- 评测结果和报告字段已经存在,但报告对象归档、报告下载、报告版本和报告与任务的稳定关联仍需验证
- 评测指标配置和执行器返回指标之间仍需要强类型映射,避免前端显示为通用的 `custom`
- 权重合并前自动准备 Base Model 和 Adapter、失败清理、重试和 MinIO 归档路径已经接入,仍需进行更多幂等和长任务测试
- 模型导出已经具备创建、节点准备、CPU 执行、制品血缘、归档轮询、权限和前端入口,真实大模型多格式压力测试待完成
- 评测报告接口已支持 MinIO 流式返回和历史数据库兼容结果,但报告为空、报告版本和下载流程仍需回归
- 评测指标配置和执行器返回指标之间仍需强类型映射,避免前端显示为通用的 `custom`
### 3.6 GPU 资源分配需要统一到所有任务类型
### 3.6 GPU 资源分配已统一接入,待多节点多卡验证
- 训练已经有较完整的节点/GPU 选择和预检流程。
- 推理和评测已经出现节点选择、缓存准备和 GPU 选择的接入代码,但还需要确认从页面选择到 Compute Agent 启动参数、进程环境变量和释放逻辑的全链路生效
- 需要防止同一张 GPU 被多个任务绕过调度锁重复占用
- 需要处理服务异常退出、Backend 重启、Compute Agent 重启后的分配回收和状态对账
- 训练详情中的显存使用量、GPU 使用率等指标依赖 Compute Agent 上报,仍需要校验采样时间、单位、空值和任务对应关系。
- 训练、推理和评测已经接入节点/GPU 选择、原子预留和释放流程。
- 单节点同卡冲突已经验证;多节点、多 GPU 并行和长时间压力仍需真实环境验证
- 需要继续处理服务异常退出、Backend 重启、Compute Agent 重启后的分配回收和状态对账
- 训练详情中的显存使用量、GPU 使用率等指标需要继续校验采样时间、单位、空值和任务对应关系
## 四、尚未完成的功能
## 四、待完成或待专项验证的功能
以下功能在当前代码中没有形成可验收的完整闭环,或仍处于设计/基础代码阶段
以下内容已经有代码基础或单节点验证,但尚未达到上线验收条件
1. **完整的租户隔离和资源继承模型**:所有列表、详情、下载、缓存、训练、推理、评测和导出接口都需要统一的租户范围过滤
2. **项目取消后的正式数据迁移方案**:需要决定历史项目数据如何归属到用户或租户,并提供一次性迁移脚本和回滚方案
3. **预签名上传完成确认和对象校验**:包括 Key 白名单、ACL、大小限制、哈希/ETag 和状态回写
4. **MinIO 对象生命周期管理**:软删除后的延迟删除、失败重试、孤儿对象扫描、对象引用检查和管理员清理入口
5. **Compute Agent 缓存治理**容量上限、LRU/TTL、运行任务保护、磁盘占用监控、缓存清单和版本校验
6. **统一的资源归档编排器**:训练、合并、评测和推理相关产物需要支持断点恢复、幂等重试和服务重启补偿
7. **模型导出完整流程**:导出任务创建、格式/量化参数、进度、失败重试、MinIO 归档和下载权限
8. **流式和分片文件传输**:避免大文件上传、下载和对象复制时将完整内容读入 Backend 或 Compute Agent 内存
9. **生产级 MinIO 安全和高可用**默认密钥替换、TLS、网络访问控制、管理员 Console 隔离、容量监控、备份和恢复
10. **完整的端到端测试和持续集成**:至少覆盖单节点、多节点、多 GPU、跨用户、跨租户、版本切换、MinIO 不可用和服务重启恢复。
11. **统一数据库迁移体系**:当前初始化 SQL 适合新库初始化,但尚未替代正式的版本化迁移工具;已有数据库更新仍需要明确迁移脚本和执行记录。
1. **历史租户和项目数据迁移**:新数据已补齐租户/ACL 基础校验,历史 NULL 租户和项目兼容表仍需迁移、校验和下线方案
2. **MinIO 生命周期运维**:预签名安全、软删除、失败记录、重试、孤儿扫描和管理员清理接口已存在,自动定时清理和运行监控仍需接入
3. **Compute Agent 缓存生产治理**容量上限、LRU、TTL、保护窗口、版本/校验清单已实现,运行中任务动态保护、磁盘告警和大规模缓存压力待验证
4. **多节点、多 GPU 并行**:节点/GPU 选择、原子预留、冲突拒绝和释放已实现,真实多节点、多卡并发尚未执行
5. **模型导出和评测报告质量**:创建、执行、归档、权限和下载接口已建立,真实大模型多格式导出、报告版本和指标质量仍需专项验证
6. **超大文件传输**:单文件流式下载和 Compute Agent 流式上传已完成,多文件 ZIP、分片上传和断点续传未完成
7. **生产级 MinIO 安全和高可用**开发环境接入和故障快速失败已完成TLS、密钥管理、Console 隔离、容量监控、备份恢复需在生产阶段实施
8. **全量端到端测试和持续集成**已有前端构建、Backend 编译和存储安全 CI 基线,权限全矩阵、跨节点并行和故障注入仍需扩展
9. **正式数据库迁移体系**:已形成 `005``012` 幂等增量迁移和运行时兼容执行,仍需增加版本记录、迁移前检查和离线升级演练
## 五、需要优化的功能
@@ -265,6 +257,8 @@ FastAPI Backend API
- `data_convert_tasks.storage_backend`
- `eval_tasks.report_storage_object_id`
当前增量迁移脚本为 `005_storage_progress_migration.sql``012_tenant_user_hierarchy.sql`已覆盖存储进度、GPU 预留、平台补全、权限 2.0、配额/成员关系、权限生命周期和租户/用户层级等结构。
离线包中的 `docker/offline/src/backend/app/db/sql/000_full_init.sql` 应与主工程初始化脚本保持同步。需要注意:
- 初始化 SQL 主要用于新数据库或新数据卷;已有数据库不能仅靠重启容器自动获得全部新字段。
@@ -274,6 +268,18 @@ FastAPI Backend API
## 七、当前验证结果
### 7.1 2026-08-19 本轮按计划落地内容
- P0 MinIO 预签名上传已增加资源存在性、资源写权限、管理员基座模型写权限、资源版本和对象 Key 前缀校验;新增上传完成确认接口,会校验 MinIO 对象存在、大小和状态后再标记为可用。
- 训练、评测、模型对比和权重合并任务会保存创建时的租户信息与资源版本快照,后续切换数据集激活版本不会改变已创建任务的输入版本。
- 数据集、评测任务、训练任务和模型对比列表增加租户范围过滤;用户表、模型/数据集创建入口补齐租户归属;数据转换资源补充所有者权限映射。
- Compute Agent 准备缓存后会回写资源副本的版本、MinIO 对象和本地路径;缓存支持可选容量上限、按访问时间淘汰非临时文件,并提供当前占用量和上限状态。
- 训练产物、权重合并结果和评测报告增加 MinIO 归档、失败状态记录以及 Backend 重启后的补偿轮询;离线部署源码已同步对应逻辑。
- Compute Agent 大文件上传已改为流式读取,避免将整个文件一次性读入内存;离线 Compute Agent 同步完成。
- 增加 `005_storage_progress_migration.sql` 增量迁移脚本,并修复 `000_full_init.sql` 中旧数据库执行时索引早于字段补齐的问题;主工程和离线初始化脚本已同步。
- 增加 `MINIO_PRESIGN_MAX_BYTES` 配置和上传 Content-Type 白名单;首次数据库 schema 检查移出 Compute Poller 的 Uvicorn 事件循环,避免远程 PostgreSQL 慢连接拖垮健康检查;轮询相同失败改为 300 秒限频记录,并跳过已标记 offline 节点。
- 前端 `npm run build` 已通过;容器内 MinIO Key 越权校验专项测试为 `5 passed`Backend 和 Compute Agent 重启后均为 healthy。
已完成的静态和局部验证:
- Backend 和离线 Backend 源码 `compileall` 检查通过。
@@ -281,45 +287,80 @@ FastAPI Backend API
- 主工程和离线包初始化 SQL 已做同步检查,内容一致。
- 前端此前已完成 `npm run build` 类型错误修复,构建剩余问题主要是非阻断的资源/分包警告。
- 已对训练日志、数据集 JSON/JSONL 统计、MinIO 资源准备等重点链路进行过问题修复。
- 当前 WSL 运行验证中 Backend、Compute Agent、MinIO 均为 healthy`gpu-node-02``172.25.179.69:19100`连接、GPU 0 分配和任务执行均正常。`gpu-node-01` 的历史地址不可达,已通过健康检查标记为 offline轮询器不再重复轮询其历史任务。
### 7.2 2026-08-19 gpu-node-02 真实流程验证
- 训练:使用 `qwen3.5-0.8B` + `test_data_0817`,任务 `ft_172a2da65140` 完成GPU 0 使用期间可看到显存、利用率、温度和进程,结束后恢复 idle24 个训练产物已归档 MinIO。
- 资源快照:任务 `ft_d93b0fdae1c9` 创建时已保存数据集 `ds_8f6b8c5714c7` 的活动版本 `file_d550c2128722_v1`
- 训练曲线:任务 `ft_d93b0fdae1c9` 通过 `logging_steps=1` 生成 3 个 loss/epoch/learning-rate/grad-norm 数据点,并生成 `training_loss.png`;后端解析器已兼容带引号数字格式。
- 权重合并:任务 `merge_1dc15a290810` 完成基座模型路径、合并路径已回写8 个合并模型文件归档 MinIO。
- 推理:任务 `cmp_abdf0762869d` 在 GPU 0 加载 `qwen3.5-0.8B` 成功,对话接口返回正常;卸载后 GPU 恢复 idle。
- 评测:任务 `eval_3c3f84263e23` 完成 2 条样本评测报告、样本明细和基础指标已落库GPU 恢复 idle。评审模型 HTTP 400 导致评审分数为 0属于评审模型接口配置问题算力评测链路本身已跑通。
### 7.3 多 GPU、MinIO 故障和跨用户权限专项验证
- 多 GPU 调度开发:新增 `gpu_reservations` 表,评测和推理在远程提交/加载前与训练统一纳入数据库原子预留;失败、停止、删除、节点不可达和卸载路径自动释放预留。当前 `gpu-node-02` 只有 GPU 0已通过同卡“推理预留后评测抢占”测试评测被明确拒绝释放后 GPU 恢复 idle。多节点、多卡的真实并行测试待增加第二个可达节点和多卡节点后执行。
- 调度锁优化:调度锁改为事务内持有并在提交前释放,避免一次调度成功后后续请求等待 30 秒 TTLschema 初始化增加 PostgreSQL advisory lock避免轮询器与首个请求并发初始化造成死锁。
- MinIO 故障注入:停止 `yg-ft-minio` 后,`GET /modelTF/health` 返回 HTTP 200 且 `storage.status=unavailable`;恢复容器后返回 `storage.status=ready`。MinIO 客户端关闭默认重试链,故障健康探测耗时从约 6 秒降至约 0.3 秒。
- 跨用户权限:创建临时用户 `qa_user_0819`,未授权访问管理员数据集返回 403授予资源 `read/download` ACL 后列表和详情可访问;撤销 ACL 后再次返回 403非管理员创建用户返回 403。测试用户已删除未遗留测试 ACL 或 GPU 预留。
- 用户管理接口已补齐管理员依赖,创建、列表、修改、删除和重置密码不再允许普通用户调用。
当前不能据此宣称“全量功能测试通过”:
- 现有部分自动化测试仍保留旧的本地文件或旧 MinIO 行为假设,需要按当前分层存储策略更新。
- WSL Docker 运行时验证受当前环境的 `E_ACCESSDENIED` 影响,不能在本次文档生成时完成全部容器健康、数据库字段和跨节点测试
- 多节点、多 GPU、MinIO 临时不可用、服务重启恢复和跨用户权限测试仍需要在可用运行环境中执行。
- 本轮已完成当前 WSL Docker 容器健康检查、`gpu-node-02` 单节点真实流程、单卡冲突、MinIO 故障恢复和跨用户 ACL 专项验证;多节点、多卡的真实并行测试仍需要第二个可达节点和多卡节点
- 本轮专项安全测试为 `5 passed`;全量 pytest 仍未执行完毕,需要按测试类别拆分并设置超时。
### 7.4 本轮 11 项未验证能力的补齐结果
- 租户管理接口已统一要求管理员身份;模型制品、模型血缘、导出任务、评测报告和 MinIO 资源清单均增加资源级访问校验。
- 新增 `POST /modelTF/model-manage/export`导出沿用节点选择、MinIO 缓存准备、GPU/调度约束和归档轮询;导出结果记录到 `model_export_jobs`,并建立导出制品与模型血缘。
- 新增 `GET /modelTF/model-eval/{task_id}/report`,优先流式返回 MinIO 报告,历史任务无归档对象时返回数据库报告兼容结果。
- 新增 `GET /modelTF/storage/resources/{resource_type}/{resource_id}/manifest`、管理员对象清理和孤儿扫描接口;预签名上传增加过期时间和真实 SHA-256 内容校验。
- Compute Agent 增加缓存 TTL、缓存保护窗口和元数据清单超过 TTL 的非保护缓存会在状态检查时清理,容量淘汰会跳过保护中的资源。
- 数据集单文件下载改为 MinIO 流式传输,避免 Backend 一次性载入完整大文件;训练、合并、导出、评测仍由统一轮询器负责重启后的归档补偿。
- 新增 `007_platform_completion.sql`,并已加入运行时兼容迁移;主工程和 `docker/offline/src` 的源码及初始化 SQL 已同步。
- 以上为代码闭环和单节点验证;生产级 MinIO TLS/HA、第二节点/多卡并行压力测试、全量 CI 和历史项目数据正式迁移仍属于上线前专项工作。
### 7.5 2026-08-20 普通用户运行日志验证
- 已修复普通用户进入“运行日志”调用管理员专属 `/log-files` 接口导致 403 的问题。
- 普通用户现在查看本人操作日志,后端按当前用户 ID 强制过滤,忽略普通用户传入的跨用户 `user_id` 条件。
- 管理员仍可查看系统日志、训练日志、审计记录和全量操作诊断。
- 临时普通用户创建数据转换任务后验证:操作日志查询和统计均返回 200返回记录全部属于该用户测试用户和测试资源已清理。
- 前端 `npm run build` 再次通过,离线前端静态资源和源码已同步,离线 Frontend/Backend 容器健康。
## 八、下一阶段开发计划
### P0安全与数据正确性
### P0权限与租户隔离安全闭环
1. 完善 MinIO 预签名 PUT 的资源写权限、对象 Key 白名单、大小/类型限制和上传完成确认
2. 统一任务创建时的资源版本固化,训练、推理、评测只使用已授权的激活版本快照
3. 逐一补齐评测、推理、模型合并、模型导出、缓存准备的后端权限校验和审计记录
4. 完成租户隔离查询范围,清理或兼容历史项目字段,补充数据迁移脚本
1. 对现有数据库执行结构差异检查,盘点所有 `tenant_id`、创建者、ACL、资源版本和历史 NULL 数据
2. 编写历史租户归属迁移和项目兼容数据迁移脚本,迁移前生成结构/数据快照,迁移后增加一致性检查
3. 建立接口权限矩阵,覆盖数据集下载、模型使用、推理、评测、权重合并、导出、缓存准备、审批和运行日志
4. 补齐跨用户、跨租户、已撤销 ACL、软删除资源和审批未通过场景的自动化测试
### P1跨节点可靠性
### P1资源申请、审批和联合权限
1. 建立资源清单/manifest记录 MinIO 对象版本、校验值、目标节点路径和缓存状态
2. 完善训练、合并、评测和推理的准备、执行、归档、失败重试和服务重启补偿
3. 完善 GPU 原子分配、异常回收、节点重连对账和任务释放
4. 增加缓存容量、TTL/LRU、运行任务保护和磁盘占用监控
5. 增加 MinIO 对象引用清理、孤儿对象扫描和软删除回收任务。
1. 对资源申请、审批通过后的 ACL 写入、配额扣减和 GPU 预留执行事务一致性回归,重点验证重复审批和撤回
2. 验证租户管理员、普通成员、只读成员和平台管理员在跨租户资源、模型、数据集和算力上的差异
3. 验证训练创建的基座模型、数据集、GPU、训练产物之间的联合授权和血缘快照
4. 统一审批策略、资源 ACL、租户配额和 GPU 预留的错误提示,避免只返回 403/500
### P2性能与用户体验
### P2前端权限体验与审计完善
1. 优化页面列表接口和高频轮询,采用批量查询、短期缓存和动态退避
2. 将大文件上传/下载/复制改为流式或分片传输
3. 统一前端任务状态组件、loading、超时、重试和错误诊断信息
4. 处理前端离线资源警告,继续拆分首屏 chunk。
5. 统一 GPU 状态展示及训练指标采样时间、单位和空值处理。
1. 完善页面级权限与资源动作权限的统一组件,重点覆盖下载、导出、执行、删除、授权和审批按钮
2. 运行日志保持普通用户只看本人、管理员看全量的分层模型,并补充权限拒绝和下载/导出审计字段
3. 优化模型推理、模型评测、训练详情、数据集和运行日志页面的首屏 loading、超时、重试和空状态
4. 减少列表接口重复查询,继续拆分首屏 chunk,移除离线环境不需要的外部资源请求
### P3工程化和上线准备
### P3可靠性、测试和上线准备
1. 建立正式数据库版本迁移机制和离线升级脚本
2. 增加 CI前端类型检查/构建、Backend 单元测试、Compute Agent 测试、SQL 新库初始化测试
3. 增加多节点端到端测试和 MinIO 故障注入测试
4. 完善 MinIO TLS、密钥管理、网络隔离、监控、备份和恢复方案
5. 建立生产运行手册,包括首次部署、升级、回滚、数据库迁移、对象清理和故障处理。
1. 准备第二个可达节点或多卡节点,执行训练、推理、评测并发、节点不可达和服务重启测试
2. 接入 MinIO 对象生命周期定时清理、容量监控、TLS、密钥管理、备份恢复和故障演练
3. 建立正式数据库迁移版本记录、迁移前结构检查、离线升级和回滚演练
4. 将前端构建、Backend 编译、权限安全、存储安全和端到端流程测试分层纳入 CI
## 九、阶段验收标准