3.2 KiB
3.2 KiB
部署指南 —— Qwen2.5-1.5B 材料科学问答模型(bf16 全量微调)
本项目基于 Qwen/Qwen2.5-1.5B-Instruct,在 样本收集.csv(材料科学问答对)上做因果语言模型微调,单卡 16GB 显存可训练。
一、环境与依赖
# Python 3.10+
pip install torch torchvision torchaudio
pip install transformers>=4.44.0 accelerate
pip install pandas tqdm
验证 CUDA:
python -c "import torch; print('CUDA:', torch.cuda.is_available(), torch.cuda.get_device_name(0))"
国内加速下载:在脚本顶部已设置
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com",无需额外操作。 若想更快可安装hf_transfer并设HF_HUB_ENABLE_HF_TRANSFER=1。
二、文件结构
gpt-chemistry/
├── 样本收集.csv # 训练数据(列:问题、回答)
├── main.py # 训练脚本(bf16 全量微调)
├── test.py # 推理回测脚本
├── download.py # 模型预热下载脚本
├── deploy.md # 本指南
└── output/ # 训练产物(自动生成)
├── model.pth # state_dict
└── best_model/ # 完整模型 + tokenizer(可直接 from_pretrained)
三、方案说明
| 项目 | 配置 |
|---|---|
| 基座模型 | Qwen/Qwen2.5-1.5B-Instruct |
| 精度 | bfloat16 |
| 微调方式 | 全量参数微调 |
| 梯度检查点 | 开启 |
| 显存占用 | 约 8~10GB(单卡 16GB 富余) |
| 训练参数量 | 1.5B 全部 |
1.5B 用 bf16 全量微调约需 8~10GB 显存,16GB 卡无需量化即可跑通。相比 QLoRA 全量微调收敛更稳、效果更好。
四、下载模型(可选预热)
python download.py
download.py 会带进度条把模型拉到本地缓存,之后 main.py / test.py 自动命中缓存,不再重复下载。
五、训练流程
-
确认
样本收集.csv与main.py同目录,列名为问题、回答。 -
启动训练:
python main.py -
训练产物保存在
./output/best_model/,可直接from_pretrained加载。 -
终端
tqdm实时显示loss、avg_loss、lr,每个 epoch 结束保存当前最优。
六、推理 / 测试
python test.py
test.py 自动从 csv 取前 10 条问题回测,对比「标准答案」与「模型回答」。
交互式问答:
from test import chat
print(chat("MOF 是什么材料?"))
七、常见问题
- OOM(显存不足):降低
batch_size为 2 或 1 → 减小max_length至 384 → 换 Qwen2.5-0.5B。 - 下载慢:确认已换源(脚本内已设 hf-mirror),或安装
hf_transfer加速。 - 中文乱码:确认
样本收集.csv为 UTF-8 编码。 - 生成重复:推理时提高
repetition_penalty(1.1~1.3) 或降低temperature。 - 训练不收敛:全量微调学习率建议
1e-5 ~ 3e-5,默认2e-5。 - 想用 LoRA:1.5B 全量微调显存足够,一般无需 LoRA;若要省显存可参考 PEFT 文档注入 LoRA。