- 新增 platform API 端点和存储 - 新增 llama_factory 适配器 - 新增前端 compute、guide、system 等视图页面 - 新增 echarts 插件和 mock 数据 - 更新 Docker 配置、后端配置及文档 - 更新前端路由、API、侧边栏等组件 Co-Authored-By: Claude <noreply@anthropic.com>
6.1 KiB
6.1 KiB
YG_FT 模型微调平台
YG_FT 是一个面向企业治理场景的模型微调平台,覆盖用户中心、多租户、项目隔离、数据集管理、模型管理、训练任务、评测、推理、审批流、审计留存、算力调度和训练引擎适配。
当前前端已有基础页面,后端与算力平台已按多人协作开发方式建立工程骨架,并开始实现第一版可演示闭环能力。第一版实现不是临时代码,工程模块、配置项、接口标签和数据库对象均按后续正式开发可延续的方式命名。
总体架构
YG_FT/
frontend/ # 前端控制台
backend/ # FastAPI 应用平台后端
app/
api/v1/ # 对前端暴露的 REST API
core/ # 配置、日志、中间件、权限等基础能力
db/ # 数据库连接、迁移、事务工具
modules/ # 业务模块目录
schemas/ # Pydantic 入参/出参模型
services/ # 跨模块应用服务
workers/ # 后台任务入口
requirements.txt # 后端 Python 第三方依赖
compute/ # 算力平台与训练框架适配层
api/ # 内部 Compute API
agent/ # 单机多 GPU 调度与进程管理
engines/llama_factory/ # LLaMA-Factory 适配器
file_gateway/ # 本地文件上传、下载、导入、产物管理
docs/ # 需求、接口、数据库、开发计划和部署文档
docker/ # 容器化配置
平台分层
| 层级 | 职责 | 主要目录 |
|---|---|---|
| 前端控制台 | 用户操作入口、任务看板、项目/模型/数据集/训练/审批/审计页面 | frontend/ |
| 应用平台后端 | 用户中心、多租户、RBAC/ABAC、项目隔离、元数据、审批流、审计、API 编排 | backend/ |
| 算力平台 | GPU 发现、资源锁定、训练进程管理、日志采集、产物归档、任务状态同步 | compute/ |
| 训练引擎 | 当前固定接入 LLaMA-Factory,预留其他训练平台适配标准 | compute/engines/ |
| 数据层 | PostgreSQL、Redis、本地文件存储、日志归档 | docs/postgres-schema.sql |
第一版能力
- 使用 FastAPI 提供统一 API 响应结构
{ code, message, data }。 - 本地运行阶段使用 SQLite 初始化样例用户、模型、数据集、算力节点、GPU 和微调任务。
- 支持登录、模型管理、数据集管理、微调任务创建/启动/停止/进度轮询。
- 支持训练日志、loss 指标、checkpoint 和训练产物的模拟生成。
- 支持多算力节点、GPU、任务队列、资源副本和资源同步状态接口。
- 前端新增
/compute算力节点页面,展示节点地址、权重、标签、启用状态、GPU、队列和资源副本。 compute/engines/llama_factory/adapter.py提供 LLaMA-Factory 参数校验、命令生成和日志解析基础能力。
后端启动
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 17861
默认 API 前缀为 /api,例如:
GET /api/health
POST /api/login
GET /api/model-manage
GET /api/dataset-manage
GET /api/fine-tune
GET /api/compute/nodes
本地运行时默认数据库路径:
LOCAL_DB_PATH=./runtime/platform.db
前端启动
cd frontend
npm install
npm run dev
前端开发服务默认运行在 http://localhost:16801,并通过 Vite proxy 将 /api 转发到 http://localhost:17861。
算力服务启动
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,说明文档见:
docs/backend-logging.md
默认输出:
logs/backend-YYYY-MM-DD.log
logs/error-YYYY-MM-DD.log
日志格式为 JSON Lines,单个文件不超过 20MB,只保留最近 10 天。
主要文档
docs/platform-architecture-requirements.md:平台需求、功能模块、页面补全建议。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:后期部署方案,覆盖单机算力服务器部署与应用/算力分离部署。docker/README.md:Docker 部署入口,包含应用服务器和算力服务器两套 Compose 使用方式。
Docker 部署入口
应用服务器:
cd docker/app
cp .env.example .env
docker compose up -d
算力服务器:
cd docker/compute
cp .env.example .env
docker compose up -d
两套 Compose 均采用代码外挂方式运行,镜像只包含运行时环境和第三方依赖。项目根目录不再保留 Dockerfile 和 docker-compose.yml,部署时统一进入 docker/app 或 docker/compute 目录执行。
后续开发原则
- 接口实现优先遵循
docs/backend-api-design.md。 - 数据库实现优先遵循
docs/postgres-schema.sql,后续通过 Alembic 迁移管理变更。 - 前端页面与后端接口、数据库表之间的映射以文档中的“对应页面/功能模块”为准。
- 训练引擎适配必须通过
compute/engines/下的标准接口,不在应用平台后端直接拼接训练命令。 - 敏感信息不得写入日志,生产环境密钥通过环境变量或密钥管理系统注入。