feat: 添加平台管理、计算模块适配器及前端页面更新

- 新增 platform API 端点和存储
- 新增 llama_factory 适配器
- 新增前端 compute、guide、system 等视图页面
- 新增 echarts 插件和 mock 数据
- 更新 Docker 配置、后端配置及文档
- 更新前端路由、API、侧边栏等组件

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wuyongtao
2026-07-21 09:23:43 +08:00
parent 2c1e08a271
commit a67ca2c19c
43 changed files with 3632 additions and 814 deletions

View File

@@ -1,12 +1,14 @@
# YG_FT 模型微调平台
YG_FT 是一个面向企业治理场景的完整模型微调平台,覆盖用户中心、多租户、项目隔离、数据集管理、模型管理、训练任务、评测、推理、审批流、审计留存、算力调度和训练引擎适配。当前前端已存在基础页面,后端与算力平台已按多人协作开发方式建立工程骨架。
YG_FT 是一个面向企业治理场景的模型微调平台,覆盖用户中心、多租户、项目隔离、数据集管理、模型管理、训练任务、评测、推理、审批流、审计留存、算力调度和训练引擎适配。
当前前端已有基础页面,后端与算力平台已按多人协作开发方式建立工程骨架,并开始实现第一版可演示闭环能力。第一版实现不是临时代码,工程模块、配置项、接口标签和数据库对象均按后续正式开发可延续的方式命名。
## 总体架构
```text
YG_FT/
frontend/ # 前端应用,承载训练平台控制台页面
frontend/ # 前端控制台
backend/ # FastAPI 应用平台后端
app/
api/v1/ # 对前端暴露的 REST API
@@ -23,7 +25,7 @@ YG_FT/
engines/llama_factory/ # LLaMA-Factory 适配器
file_gateway/ # 本地文件上传、下载、导入、产物管理
docs/ # 需求、接口、数据库、开发计划和部署文档
docker/ # Nginx 等容器化配置
docker/ # 容器化配置
```
## 平台分层
@@ -32,20 +34,19 @@ YG_FT/
| --- | --- | --- |
| 前端控制台 | 用户操作入口、任务看板、项目/模型/数据集/训练/审批/审计页面 | `frontend/` |
| 应用平台后端 | 用户中心、多租户、RBAC/ABAC、项目隔离、元数据、审批流、审计、API 编排 | `backend/` |
| 算力平台 | GPU 发现、资源锁定、训练进程管理、日志采集、产物归档、任务状态回传 | `compute/` |
| 算力平台 | GPU 发现、资源锁定、训练进程管理、日志采集、产物归档、任务状态同步 | `compute/` |
| 训练引擎 | 当前固定接入 LLaMA-Factory预留其他训练平台适配标准 | `compute/engines/` |
| 数据层 | PostgreSQL、Redis、本地文件存储、日志归档 | `docs/postgres-schema.sql` |
## 关键能力
## 第一版能力
- 多租户:租户级数据隔离、租户配置、租户成员和角色
- 权限控制:支持项目、模型、数据集级隔离,后续可扩展到字段级和操作级策略
- 审批流:覆盖数据集发布、模型发布、训练资源申请、推理服务上线等企业流程
- 审计留存:操作审计、安全审计、审批审计、任务审计,支持留存周期策略
- 训练任务:训练参数管理、单机多 GPU 调度、任务状态同步、训练日志、产物管理
- 引擎适配:默认 LLaMA-Factory预留统一 Engine Adapter 接口接入其他微调框架
- 文件存储:当前使用本地磁盘,按租户/项目/数据集/任务分区
- 日志采集:后端 JSON Lines 日志,主日志和错误日志拆分,便于 ELK/日志平台采集。
- 使用 FastAPI 提供统一 API 响应结构 `{ code, message, data }`
- 本地运行阶段使用 SQLite 初始化样例用户、模型、数据集、算力节点、GPU 和微调任务
- 支持登录、模型管理、数据集管理、微调任务创建/启动/停止/进度轮询
- 支持训练日志、loss 指标、checkpoint 和训练产物的模拟生成
- 支持多算力节点、GPU、任务队列、资源副本和资源同步状态接口
- 前端新增 `/compute` 算力节点页面展示节点地址、权重、标签、启用状态、GPU、队列和资源副本
- `compute/engines/llama_factory/adapter.py` 提供 LLaMA-Factory 参数校验、命令生成和日志解析基础能力
## 后端启动
@@ -54,15 +55,45 @@ cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
uvicorn app.main:app --reload --port 17861
```
默认健康检查
默认 API 前缀为 `/api`,例如
```text
GET /api/v1/health
GET /api/health
POST /api/login
GET /api/model-manage
GET /api/dataset-manage
GET /api/fine-tune
GET /api/compute/nodes
```
本地运行时默认数据库路径:
```text
LOCAL_DB_PATH=./runtime/platform.db
```
## 前端启动
```bash
cd frontend
npm install
npm run dev
```
前端开发服务默认运行在 `http://localhost:16801`,并通过 Vite proxy 将 `/api` 转发到 `http://localhost:17861`
## 算力服务启动
```bash
cd compute
uvicorn api.main:app --reload --port 19100
```
第一版默认 `COMPUTE_MODE=simulator`。后续真实 GPU 接入时,在算力服务器上部署 Compute API、Agent、File Gateway 和 LLaMA-Factory应用平台通过 `compute_nodes.api_base_url``compute_nodes.file_gateway_url` 主动轮询。
## 日志
后端日志模块位于 `backend/app/core/logging.py`,说明文档见:
@@ -84,22 +115,11 @@ logs/error-YYYY-MM-DD.log
- `docs/backend-api-design.md`FastAPI 接口分组、参数定义、权限说明。
- `docs/postgres-schema.sql`PostgreSQL 数据库脚本,包含权限、用户中心、多租户、审批、审计等模型。
- `docs/system-development-plan.md`多人协作开发计划按前端、后端、DB、部署拆分。
- `docs/first-version-development-plan.md`第一版可演示闭环开发计划覆盖前端、后端、DB、Compute Simulator、GPU 和 LLaMA-Factory 适配。
- `docs/backend-logging.md`:后端日志模块使用说明。
- `docs/deployment-plan.md`:后期部署方案,覆盖单机算力服务器部署与应用/算力分离部署。
- `docs/demo-development-plan.md`:可演示 Demo 开发计划覆盖前端、后端、DB、Compute Simulator、GPU 和 LLaMA-Factory 适配。
- `docker/README.md`Docker 部署入口,包含应用服务器和算力服务器两套 Compose 使用方式。
## 部署模式
平台支持两种主要部署模式:
1. 所有服务部署在算力服务器:适合 PoC、内网试点、小团队单机多 GPU 使用。
2. 应用服务和算力/训练服务独立部署:适合企业生产环境,应用平台部署在业务服务区,算力平台和 LLaMA-Factory 部署在 GPU 服务器。
生产环境建议采用第二种模式。算力平台与训练框架应部署在 GPU 算力服务器上,应用平台不直接控制 GPU 进程,而是通过内部 Compute API 调度训练任务。
详细方案见 `docs/deployment-plan.md`
## Docker 部署入口
应用服务器:
@@ -107,8 +127,7 @@ logs/error-YYYY-MM-DD.log
```bash
cd docker/app
cp .env.example .env
docker compose --profile build run --rm frontend-builder
docker compose up -d --build
docker compose up -d
```
算力服务器:
@@ -116,19 +135,10 @@ docker compose up -d --build
```bash
cd docker/compute
cp .env.example .env
docker compose up -d --build
docker compose up -d
```
两套 Compose 均采用代码外挂方式运行,镜像只包含运行时环境和第三方依赖。详细说明见 `docker/README.md`
项目根目录不再保留 `Dockerfile``docker-compose.yml`,部署时统一进入 `docker/app``docker/compute` 目录执行。
当前 Docker 约定:
- PostgreSQL/Redis 开发阶段使用项目自带 Compose 服务,生产阶段保留切换企业统一基础设施的配置入口。
- 算力服务器上的 LLaMA-Factory 使用宿主机目录挂载,默认 `/opt/LLaMA-Factory`
- 应用平台通过定时轮询 Compute API 同步训练状态,默认不要求算力服务器回调应用服务器。
- 多算力节点阶段,每台单机多 GPU 服务器都独立部署 `docker/compute`、Compute API、Agent、File Gateway 和 LLaMA-Factory节点之间默认不互访由应用平台通过 `compute_nodes``resource_replicas``resource_sync_jobs` 统一调度与同步。
两套 Compose 均采用代码外挂方式运行,镜像只包含运行时环境和第三方依赖。项目根目录不再保留 `Dockerfile``docker-compose.yml`,部署时统一进入 `docker/app``docker/compute` 目录执行
## 后续开发原则