|
@@ -0,0 +1,109 @@
|
|
|
|
|
+# 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://192.168.91.253: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://192.168.91.253:8000/api/v1` |
|
|
|
|
|
+| VITE_WS_BASE_URL | WebSocket 地址 | `ws://192.168.91.253:8000/ws` |
|
|
|
|
|
+
|
|
|
|
|
+## API 文档
|
|
|
|
|
+
|
|
|
|
|
+启动后端后访问:`http://192.168.91.253:8000/docs`
|