一个简单易用的大语言模型微调框架,支持 Qwen、Llama 等主流模型,提供完整的微调、推理和部署解决方案。
# 1. 克隆项目
git clone <your-repo-url>
cd FineTuneX
# 2. 创建虚拟环境 (推荐)
python -m venv venv
venv\Scripts\activate # Windows
# 或
source venv/bin/activate # Linux/Mac
# 3. 安装依赖
pip install -r requirements.txt
python scripts/check_env.py
python examples/qwen3.5_0.8b_finetune.py
这个脚本会:
准备数据文件 data.json:
[
{
"instruction": "请解释什么是机器学习",
"input": "",
"output": "机器学习是人工智能的一个分支..."
},
{
"instruction": "将以下中文翻译成英文",
"input": "今天天气很好",
"output": "The weather is very nice today."
}
]
修改示例脚本中的数据集路径,然后运行即可。
python scripts/preprocess_data.py --input data.json --output data_processed.json
# 单次推理
python scripts/inference.py --model_path ./outputs/model --prompt "你好"
# 交互模式
python scripts/inference.py --model_path ./outputs/model --base_model ./outputs/model --interactive
python scripts/evaluate.py --model_path ./outputs/model --test_data test.json
python scripts/start_api.py --port 8000
访问 http://localhost:8000/docs 查看 API 文档。
from finetunex.models import QwenConfig, load_qwen_model
from finetunex.data import load_dataset, InstructionDataset
from finetunex.trainer import FineTuneTrainer
# 配置模型
config = QwenConfig(
model_name="Qwen/Qwen3.5-0.5B",
lora_r=16,
lora_alpha=32,
num_train_epochs=3,
)
# 加载数据
dataset = load_dataset("data.json")
# 加载模型
model, tokenizer, _ = load_qwen_model(config)
# 创建训练数据集
train_dataset = InstructionDataset(dataset, tokenizer)
# 创建训练器
trainer = FineTuneTrainer(model, tokenizer, config, train_dataset)
trainer.setup_training(output_dir="./outputs")
# 开始训练
trainer.train()
# 保存模型
trainer.save_model()
QwenConfig(
# 模型配置
model_name="Qwen/Qwen3.5-0.5B",
# LoRA 配置
lora_r=16, # LoRA 秩
lora_alpha=32, # LoRA alpha
lora_dropout=0.05, # Dropout
target_modules=[...], # 目标模块
# 训练配置
per_device_train_batch_size=1,
gradient_accumulation_steps=4,
learning_rate=2e-4,
num_train_epochs=3,
max_seq_length=512,
# 量化配置
use_4bit=True, # 4bit 量化
)
FineTuneX/
├── src/finetunex/ # 核心代码
│ ├── models/ # 模型配置和加载
│ ├── data/ # 数据处理
│ ├── trainer/ # 训练器
│ ├── utils/ # 工具函数
│ └── api/ # API 服务
├── examples/ # 示例脚本
├── scripts/ # 工具脚本
├── tests/ # 测试
├── configs/ # 配置文件
├── data/ # 数据目录
├── docs/ # 文档
└── outputs/ # 输出目录
# 环境检查
python scripts/check_env.py
# 项目初始化
python scripts/init_project.py
# 数据预处理
python scripts/preprocess_data.py --input data.json --template alpaca
# 模型推理
python scripts/inference.py --model_path ./outputs/model --interactive
# 模型评估
python scripts/evaluate.py --model_path ./outputs/model --test_data test.json
# 启动 API
python scripts/start_api.py --port 8000
# 运行测试
python tests/test_all.py
| 模型 | 量化 | 批次大小 | 显存需求 |
|---|---|---|---|
| Qwen-0.5B | 4bit | 1 | ~2GB |
| Qwen-0.5B | 16bit | 1 | ~4GB |
| Qwen-7B | 4bit | 1 | ~8GB |
| Qwen-7B | 16bit | 1 | ~16GB |
显存优化技巧:
use_4bit=True)per_device_train_batch_size=1)gradient_accumulation_steps=8)max_seq_length=256)# 运行所有测试
python tests/test_all.py
# 运行特定测试
python -m unittest tests.test_all.TestDataLoading
欢迎贡献代码、文档和建议!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)MIT License - 详见 LICENSE 文件
注意: 当前环境使用 Python 3.5.4,需要升级到 Python 3.9+ 才能运行。详见 INSTALL.md
状态: ✅ 项目已完成并可用
版本: 0.1.0
创建日期: 2026-03-27