Skip to content

quweijun/fine_tuning_comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

高级微调方法对比实验

📋 项目概述

本项目系统性地对比了四种主流的大语言模型微调方法:

  1. 基础LoRA微调 - 低秩适配
  2. QLoRA 4bit微调 - 量化低秩适配
  3. DoRA微调 - 权重分解低秩适配
  4. 全参数微调 - 传统完整微调

🎯 实验目标

  • 比较不同微调方法的训练效率
  • 分析内存使用和计算资源消耗
  • 评估模型性能和质量
  • 提供实践指导和建议

🏗️ 项目结构

fine_tuning_comparison/ ├── configs/ # 配置文件 │ ├── lora.yaml # 基础LoRA配置 │ ├── qlora.yaml # QLoRA 4bit配置 │ ├── dora.yaml # DoRA配置 │ └── full_finetune.yaml # 全参数微调配置 ├── scripts/ # 执行脚本 │ ├── run_all_experiments.py # 运行所有实验 │ ├── run_single_experiment.py # 运行单个实验 │ └── visualize_results.py # 结果可视化 ├── utils/ # 工具模块 │ ├── trainer.py # 高级训练器 │ ├── evaluator.py # 模型评估 │ └── data_processor.py # 数据处理 ├── data/ # 训练数据 ├── results/ # 实验结果 ├── tests/ # 单元测试 ├── logs/ # 训练日志 ├── README.md ├── requirements.txt ├── setup.py └── .gitignore

🚀 快速开始

环境要求

  • Python 3.8+
  • GPU with CUDA support (推荐)
  • 至少16GB RAM

1. 安装依赖

pip install -r requirements.txt

2. 准备数据
bash
# 自动创建示例数据
python -c "from utils.data_processor import DataProcessor; DataProcessor.create_sample_data()"
3. 运行所有实验
bash
python scripts/run_all_experiments.py
4. 运行单个实验
bash
# 基础LoRA
python scripts/run_single_experiment.py configs/lora.yaml "基础LoRA微调"

# QLoRA 4bit
python scripts/run_single_experiment.py configs/qlora.yaml "QLoRA 4bit微调"

# DoRA
python scripts/run_single_experiment.py configs/dora.yaml "DoRA微调"

# 全参数微调
python scripts/run_single_experiment.py configs/full_finetune.yaml "全参数微调"
5. 可视化结果
bash
python scripts/visualize_results.py
📊 评估指标
指标	说明	测量方法
推理速度	Token生成速度	tokens/秒
内存使用	GPU内存占用	GB
生成质量	内容相关性	关键词匹配评分
训练时间	完整训练时长	分钟
参数效率	可训练参数比例	%
🔧 配置说明
基础LoRA配置
yaml
lora_config:
  r: 16                    #
  lora_alpha: 32           # Alpha参数
  target_modules: [...]    # 目标模块
QLoRA配置
yaml
quantization_config:
  load_in_4bit: true       # 4bit量化
  bnb_4bit_quant_type: "nf4"
DoRA配置
yaml
lora_config:
  use_dora: true          # 启用DoRA
📈 结果分析
运行完成后查看:

results/comparison_results_*.json - 详细对比数据

results/comparison_charts.png - 可视化图表

各方法对应的模型文件和训练日志

预期结果对比
方法	训练速度	内存使用	生成质量	适用场景
LoRA	⭐⭐⭐⭐	⭐⭐⭐⭐	⭐⭐⭐	资源受限
QLoRA	⭐⭐⭐	⭐⭐⭐⭐⭐	⭐⭐⭐	极低资源
DoRA	⭐⭐⭐	⭐⭐⭐⭐	⭐⭐⭐⭐	高质量要求
全参数	⭐⭐	⭐⭐	⭐⭐⭐⭐⭐	充足资源
🛠️ 开发指南
添加新的微调方法
在 configs/ 创建新的配置文件

在 utils/trainer.py 中添加对应的处理逻辑

更新实验脚本

运行测试
bash
python -m pytest tests/ -v
代码结构
python
# 核心类说明
AdvancedFineTuner    # 高级训练器
ModelEvaluator       # 模型评估器
DataProcessor        # 数据处理器
🔍 技术细节
资源监控
实时监控CPU/GPU使用率

训练过程内存跟踪

损失曲线记录

模型选择
默认使用 Qwen2.5-1.5B,可修改配置使用其他模型:

yaml
model_name: "Qwen/Qwen2.5-1.5B"  # 可替换为其他模型
🤝 贡献指南
Fork 本项目

创建特性分支

提交更改

推送到分支

创建Pull Request

📄 许可证
MIT License

🙏 致谢
Hugging Face Transformers

PEFT Library

Qwen Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages