兄弟们,最近在微调一个7B模型做垂直领域任务,折腾了两周,终于把loss压下来了。今天不扯虚的,直接上硬货。🛠️
**1. 数据质量 > 数据量**
别信“多堆数据就行”,垃圾进垃圾出。我一开始灌了50万条粗筛数据,loss直接放飞。后来切到5000条高质量标注,收敛速度肉眼可见。清洗、去重、对齐标签,永远优先级最高。
**2. 学习率不是玄学**
很多人上来就1e-4,结果梯度爆炸。我试了warmup+cosine调度,从1e-5起步,batch_size调小到8,显存压力也小了。建议用AdamW,weight decay设0.01,稳妥。
**3. 冻结层数有讲究**
不是全参数微调才牛逼。我试了冻结前6层,只训后6层+LM head,效果差不多,但显存省了一半。尤其低资源场景,务必试试LoRA或者P-tuning。
**4. 警惕灾难性遗忘**
微调后跑通用任务,指标从85掉到30?我用了经验回放,每轮混10%原始预训练数据,保住了泛化能力。也可以考虑EWC正则化。
**5. 评估要闭环**
别只看loss,跑个真实推理用例。我遇到loss降低但输出全是乱码,原来是因为tokenizer没对齐。加个自动化测试流水线,每天跑一遍。
最后问一句:你们微调时最头疼的是数据质量还是超参调优?来评论区聊聊。🔥 |