# PEFT Fine-Tuning Platform 基于 PEFT 的前后端分离微调平台,支持文本、视觉、多模态三类模型,完整 MLOps 流水线。 ## 技术栈 | 层 | 技术 | |---|------| | 后端 | FastAPI + SQLAlchemy(async) + SQLite | | 前端 | React + TypeScript + Zustand + Axios | | ML | PyTorch + Transformers + PEFT + TRL | | 通信 | REST API + WebSocket 实时推送 | ## 支持的 PEFT 方法 LoRA / QLoRA / IA3 / AdaLoRA / Prefix Tuning ## 支持的模型类型 - **文本**:LLaMA、Qwen 等 - **视觉**:ViT、CLIP 等 - **多模态**:LLaVA、Qwen-VL 等 ## 快速开始 ### 后端 ```bash cd backend pip install -r requirements.txt cp .env.example .env # 编辑 .env 填入 HF_TOKEN 等配置 uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` ### 前端 ```bash cd frontend npm install cp .env.example .env npm run dev ``` ## 项目结构 ``` ├── .env # 全局共享配置(HF Token、GPU) ├── .env.example ├── backend/ │ ├── main.py # 后端入口 │ ├── requirements.txt │ ├── .env # 后端配置(HOST、数据库、训练参数) │ ├── .env.example │ ├── app/ │ │ ├── config.py # pydantic-settings 加载 .env │ │ ├── api/ # REST 路由 │ │ ├── core/ # db / job_queue / websocket / logging │ │ ├── engines/ # text / vision / multimodal 引擎 │ │ ├── peft/ # PEFT 配置工厂 │ │ ├── preprocessors/ # 数据预处理 │ │ ├── services/ # 业务逻辑层 │ │ └── schemas/ # Pydantic 请求/响应模型 │ └── data/ # 运行时数据(gitignore) ├── frontend/ │ ├── src/ │ │ ├── api/ # Axios 实例 + WebSocket │ │ ├── stores/ # Zustand 状态管理 │ │ ├── pages/ # 页面组件 │ │ └── components/ # 可复用组件 │ └── .env # 前端配置(API 地址、WS 地址) └── docs/ ``` ## 环境变量 ### 全局 `.env` | 变量 | 说明 | 默认值 | |------|------|--------| | HF_TOKEN | HuggingFace Token | 空 | | HF_ENDPOINT | HF 镜像地址 | `https://huggingface.co` | | USE_MODELSCOPE | 使用 ModelScope | `false` | | CUDA_VISIBLE_DEVICES | GPU 索引 | `0` | | USE_UNSLOTH | 启用 Unsloth 加速 | `false` | ### 后端 `backend/.env` | 变量 | 说明 | 默认值 | |------|------|--------| | BACKEND_HOST | 服务地址 | `0.0.0.0` | | BACKEND_PORT | 服务端口 | `8000` | | BACKEND_CORS_ORIGINS | 允许的跨域来源 | `http://183.220.37.46:5173` | | DATA_DIR | 数据根目录 | `/root/Fine-tuning/backend/data` | | DATABASE_URL | 数据库连接串 | `sqlite+aiosqlite:///root/Fine-tuning/backend/data/finetuning.db` | | DEFAULT_PEFT_METHOD | 默认微调方法 | `lora` | | LORA_R / LORA_ALPHA | LoRA 参数 | `16` / `32` | | MAX_UPLOAD_SIZE_MB | 最大上传文件大小 | `500` | ### 前端 `frontend/.env` | 变量 | 说明 | 默认值 | |------|------|--------| | VITE_API_BASE_URL | 后端 API 地址 | `http://183.220.37.46:8000/api/v1` | | VITE_WS_BASE_URL | WebSocket 地址 | `ws://183.220.37.46:8000/ws` | ## API 文档 启动后端后访问:`http://183.220.37.46:8000/docs`