兄弟们,聊点干的。最近在微调一个7B模型做垂直领域问答,先说说经验:
1️⃣ 数据清洗是关键
别以为喂进去就行。我第一版直接上原始数据,结果模型学会了输出脏数据。必须做去重、去噪、格式统一,尤其注意标点符号不一致导致的loss波动。
2️⃣ LoRA参数调优
rank值不是越大越好。试过rank=64,显存炸了不说,收敛还慢。推荐从8开始,观察验证集loss,慢慢往上加。alpha值我习惯设成rank的两倍,比较稳。
3️⃣ 学习率策略
别用固定学习率。我试过cosine衰减,但发现在数据量不足时容易过拟合。改用线性warmup + 余弦退火,1500步warmup,效果提升明显。
4️⃣ 环境配置注意
用bitsandbytes 0.41.0版本,千万别升到最新版,有兼容性问题。推荐torch 2.0.1 + CUDA 11.8,稳如老狗。
最后留个问题:你们在微调时,有没有遇到过模型「忘掉」预训练知识的诡异情况?怎么解决的?评论区聊聊。 |