兄弟们,最近肝了几个模型微调项目,从Llama到Qwen都折腾了一遍,今天把一些实操经验抛出来,供参考。😎
**1. 数据质量 > 数据量**
别迷信“投喂100万条数据就能起飞”。我试过用20万条清洗过的中文对话微调7B模型,效果吊打80万条未清洗的。重点:去掉重复、纠正错别字、平衡类别分布。用正则+人工抽检,至少过滤掉10%的脏数据。
**2. 学习率别瞎调**
默认的1e-5经常让模型过拟合或震荡。我踩过的坑:用cosine衰减配warmup能稳定收敛,但初始学习率建议从3e-5试起。如果loss不降,先检查batch size(至少4-8,梯度累积到32以上)。
**3. 量化部署的隐形坑**
微调后转INT4部署,结果推理时某些任务输出乱码。排查半天:原来是模型某些层的激活值分布太广,量化时信息丢失。解决方案:微调时加个KL散度正则化,或者用AWQ/GPTQ的校准集重新处理。
**保命技巧:** 微调前先跑一个“空跑”脚本(只加载基座模型,不改权重),确认环境无bug。否则折腾2小时发现CUDA版本不兼容,直接心态炸裂。🔥
最后问个问题:你们在微调7B以上模型时,遇到过显存爆了但OOM报错不具体的情况吗?怎么定位的? |