From 905658073a46f740c2e532e156c398987b83d4ea Mon Sep 17 00:00:00 2001 From: carry Date: Mon, 21 Apr 2025 14:28:20 +0800 Subject: [PATCH] =?UTF-8?q?docs(README):=20=E6=9B=B4=E6=96=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加项目概述、核心功能、技术架构等详细信息 - 插入系统架构图和技术栈说明 - 细化功能模块描述,包括模型管理、推理、微调等 - 增加QLoRA原理和参数配置说明 - 补充快速开始指南和许可证信息 - 优化文档结构,增强可读性和完整性 --- README.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 84 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c4d4d12..f7dbb0f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,91 @@ # 基于文档驱动的自适应编码大模型微调框架 + ## 简介 -本人的毕业设计 + ### 项目概述 +本项目是一个基于文档驱动的自适应编码大模型微调框架,通过深度解析私有库的文档以及其他资源,生成指令型语料,据此对大语言模型进行针对私有库的微调。 -* 通过深度解析私有库的文档以及其他资源,生成指令型语料,据此对大语言模型进行针对私有库的微调。 +### 核心功能 +- 文档解析与语料生成 +- 大语言模型高效微调 +- 交互式训练与推理界面 +- 训练过程可视化监控 -### 项目技术 +## 技术架构 -* 使用unsloth框架在GPU上实现大语言模型的qlora微调 -* 使用langchain框架编写工作流实现批量生成微调语料 -* 使用tinydb和sqlite实现数据的持久化 -* 使用gradio框架实现前端展示 +### 系统架构 +``` +[前端界面] -> [模型微调] -> [数据存储] + ↑ ↑ ↑ + │ │ │ +[Gradio] [unsloth/QLoRA] [SQLite/TinyDB] +``` -**施工中......** +### 技术栈 +- **前端界面**: Gradio构建的交互式Web界面 +- **模型微调**: 基于unsloth框架的QLoRA高效微调 +- **数据存储**: SQLite(结构化数据) + TinyDB(非结构化数据) +- **工作流引擎**: LangChain实现文档解析与语料生成 +- **训练监控**: TensorBoard集成 + +## 功能模块 + +### 1. 模型管理 +- 支持多种格式的大语言模型加载 +- 模型信息查看与状态管理 +- 模型卸载与内存释放 + +### 2. 模型推理 +- 对话式交互界面 +- 流式响应输出 +- 历史对话管理 + +### 3. 模型微调 +- 训练参数配置(学习率、batch size等) +- LoRA参数配置(秩、alpha等) +- 训练过程实时监控 +- 训练中断与恢复 + +### 4. 数据集生成 +- 文档解析与清洗 +- 指令-响应对生成 +- 数据集质量评估 +- 数据集版本管理 + +## 微调技术 + +### QLoRA原理 +QLoRA(Quantized Low-Rank Adaptation)是一种高效的大模型微调技术,核心特点包括: +1. **4-bit量化**: 将预训练模型量化为4-bit表示,大幅减少显存占用 +2. **低秩适配**: 通过低秩矩阵分解(LoRA)实现参数高效更新 +3. **内存优化**: 使用梯度检查点等技术进一步降低显存需求 + +### 参数配置 +- **学习率**: 建议2e-5到2e-4 +- **LoRA秩**: 控制适配器复杂度(建议16-64) +- **LoRA Alpha**: 控制适配器更新幅度(通常设为秩的1-2倍) + +### 训练监控 +- **TensorBoard集成**: 实时查看损失曲线、学习率等指标 +- **日志记录**: 训练过程详细日志保存 +- **模型检查点**: 定期保存中间权重 + +## 快速开始 + +1. 安装依赖: +```bash +pip install -r requirements.txt +``` + +2. 启动应用: +```bash +python main.py +``` + +3. 访问Web界面: +``` +http://localhost:7860 +``` + +## 许可证 +MIT License