兄弟们,最近群里一堆人问微调踩坑的事,我用LoRA微调了十几个模型,直接上干货。
先说数据清洗,别直接拿原始数据喂。去重、筛掉乱码、检查标签一致性是基本操作。我见过有人用带“<br>”标签的文本当训练集,生成内容全是HTML乱码。推荐用datasets库+正则表达式批量清洗,效率翻倍。
参数调优这块,别迷信大模型默认值。比如学习率,我用1e-4起步,配合余弦退火调度,收敛速度比固定学习率快30%。batch size根据显存来,8卡A100跑7B模型,设4比较稳。梯度累积步数别超过8,否则梯度爆炸概率飙升。
部署时有个坑:微调后的LoRA权重合并进基座模型后,推理速度可能下降。我是用vLLM加载合并后的模型,配合FP16+Flash Attention,延迟压到50ms以内。另外,记得检查tokenizer是否适配微调后的词汇表,否则输出会跑偏。
最后抛个问题:你们在微调时,遇到最离谱的数据问题是什么?来评论区唠唠。 |