
在模型管理页面中新增保存模式选择功能,用户可以通过下拉菜单选择不同的保存模式(如默认、合并16位、合并4位等)。同时,将保存模型的逻辑抽离到独立的`save_model.py`文件中,以提高代码的可维护性和复用性。
基于文档驱动的自适应编码大模型微调框架
简介
项目概述
本项目是一个基于文档驱动的自适应编码大模型微调框架,通过深度解析私有库的文档以及其他资源,生成指令型语料,据此对大语言模型进行针对私有库的微调。
核心功能
- 文档解析与语料生成
- 大语言模型高效微调
- 交互式训练与推理界面
- 训练过程可视化监控
技术架构
系统架构
[前端界面] -> [模型微调] -> [数据存储]
↑ ↑ ↑
│ │ │
[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)是一种高效的大模型微调技术,核心特点包括:
- 4-bit量化: 将预训练模型量化为4-bit表示,大幅减少显存占用
- 低秩适配: 通过低秩矩阵分解(LoRA)实现参数高效更新
- 内存优化: 使用梯度检查点等技术进一步降低显存需求
参数配置
- 学习率: 建议2e-5到2e-4
- LoRA秩: 控制适配器复杂度(建议16-64)
- LoRA Alpha: 控制适配器更新幅度(通常设为秩的1-2倍)
训练监控
- TensorBoard集成: 实时查看损失曲线、学习率等指标
- 日志记录: 训练过程详细日志保存
- 模型检查点: 定期保存中间权重
快速开始
- 安装依赖:
pip install -r requirements.txt
- 启动应用:
python main.py
- 访问Web界面:
http://localhost:7860
许可证
MIT License
Languages
TeX
63.9%
Python
36.1%