Răsfoiți Sursa

增加readme和依赖文件

lxylxy123321 2 săptămâni în urmă
părinte
comite
3a0e4555d6
4 a modificat fișierele cu 130 adăugiri și 1 ștergeri
  1. 109 0
      README.md
  2. 1 1
      backend/app/config.py
  3. 0 0
      backend/main.py
  4. 20 0
      backend/requirements.txt

+ 109 - 0
README.md

@@ -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`

+ 1 - 1
backend/app/config.py

@@ -8,7 +8,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
 
 class Settings(BaseSettings):
     model_config = SettingsConfigDict(
-        env_file=str(Path(__file__).resolve().parents[1] / ".env"),
+        env_file=str(Path(__file__).resolve().parents[2] / ".env"),
         env_file_encoding="utf-8",
         case_sensitive=False,
         extra="ignore",

+ 0 - 0
backend/app/main.py → backend/main.py


+ 20 - 0
backend/requirements.txt

@@ -0,0 +1,20 @@
+fastapi>=0.115.0
+uvicorn[standard]>=0.30.0
+pydantic>=2.0
+pydantic-settings>=2.0
+python-dotenv>=1.0
+sqlalchemy[asyncio]>=2.0
+aiosqlite>=0.20.0
+alembic>=1.13.0
+python-multipart>=0.0.9
+websockets>=12.0
+torch>=2.4.0
+transformers>=4.45.0
+peft>=0.13.0
+trl>=0.12.0
+datasets>=3.0.0
+accelerate>=1.0.0
+bitsandbytes>=0.44.0
+scipy>=1.14.0
+scikit-learn>=1.5.0
+pillow>=10.4.0