# YG_FT 模型微调平台 YG_FT 是一个面向企业治理场景的完整模型微调平台,覆盖用户中心、多租户、项目隔离、数据集管理、模型管理、训练任务、评测、推理、审批流、审计留存、算力调度和训练引擎适配。当前前端已存在基础页面,后端与算力平台已按多人协作开发方式建立工程骨架。 ## 总体架构 ```text 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/ # Nginx 等容器化配置 ``` ## 平台分层 | 层级 | 职责 | 主要目录 | | --- | --- | --- | | 前端控制台 | 用户操作入口、任务看板、项目/模型/数据集/训练/审批/审计页面 | `frontend/` | | 应用平台后端 | 用户中心、多租户、RBAC/ABAC、项目隔离、元数据、审批流、审计、API 编排 | `backend/` | | 算力平台 | GPU 发现、资源锁定、训练进程管理、日志采集、产物归档、任务状态回传 | `compute/` | | 训练引擎 | 当前固定接入 LLaMA-Factory,预留其他训练平台适配标准 | `compute/engines/` | | 数据层 | PostgreSQL、Redis、本地文件存储、日志归档 | `docs/postgres-schema.sql` | ## 关键能力 - 多租户:租户级数据隔离、租户配置、租户成员和角色。 - 权限控制:支持项目、模型、数据集级隔离,后续可扩展到字段级和操作级策略。 - 审批流:覆盖数据集发布、模型发布、训练资源申请、推理服务上线等企业流程。 - 审计留存:操作审计、安全审计、审批审计、任务审计,支持留存周期策略。 - 训练任务:训练参数管理、单机多 GPU 调度、任务状态同步、训练日志、产物管理。 - 引擎适配:默认 LLaMA-Factory,预留统一 Engine Adapter 接口接入其他微调框架。 - 文件存储:当前使用本地磁盘,按租户/项目/数据集/任务分区。 - 日志采集:后端 JSON Lines 日志,主日志和错误日志拆分,便于 ELK/日志平台采集。 ## 后端启动 ```bash cd backend python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt uvicorn app.main:app --reload ``` 默认健康检查: ```text GET /api/v1/health ``` ## 日志 后端日志模块位于 `backend/app/core/logging.py`,说明文档见: - `docs/backend-logging.md` 默认输出: ```text 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/backend-logging.md`:后端日志模块使用说明。 - `docs/deployment-plan.md`:后期部署方案,覆盖单机算力服务器部署与应用/算力分离部署。 ## 部署模式 平台支持两种主要部署模式: 1. 所有服务部署在算力服务器:适合 PoC、内网试点、小团队单机多 GPU 使用。 2. 应用服务和算力/训练服务独立部署:适合企业生产环境,应用平台部署在业务服务区,算力平台和 LLaMA-Factory 部署在 GPU 服务器。 生产环境建议采用第二种模式。算力平台与训练框架应部署在 GPU 算力服务器上,应用平台不直接控制 GPU 进程,而是通过内部 Compute API 调度训练任务。 详细方案见 `docs/deployment-plan.md`。 ## 后续开发原则 - 接口实现优先遵循 `docs/backend-api-design.md`。 - 数据库实现优先遵循 `docs/postgres-schema.sql`,后续通过 Alembic 迁移管理变更。 - 前端页面与后端接口、数据库表之间的映射以文档中的“对应页面/功能模块”为准。 - 训练引擎适配必须通过 `compute/engines/` 下的标准接口,不在应用平台后端直接拼接训练命令。 - 敏感信息不得写入日志,生产环境密钥通过环境变量或密钥管理系统注入。