兄弟们,最近折腾了一周的模型微调,LoRA、QLoRA、全参数微调全试了一遍,给你们分享点硬核干货。🤖
先说结论:别一上来就全参数微调,除非你显存64G起步。我拿7B模型试过,单卡A100跑全参,batch size设1都差点爆显存,果断换LoRA。
关键点来了:
- 学习率:别瞎抄默认值。LoRA建议3e-4起步,但要看数据量。我试过5e-4直接loss飞起,降到2e-4才稳定。全参微调建议1e-5,别超过5e-5。
- rank值:不是越大越好。新手先设8,跑一轮看loss曲线再调。我试过设64,过拟合到飞起,回复全是“好的”“明白了”。
- 数据集清洗:最容易被忽略!先跑个5%数据验证,如果loss波动大,八成是数据有噪声。我上次把中文标点混进英文,模型直接学废了。
部署坑:微调完记得改`load_in_8bit`,否则推理时显存直接翻倍。我踩过这个雷,差点骂娘。
最后问:你们微调时,一般用多少比例的数据做验证集?我试了10%和20%,感觉10%更靠谱,但总怕欠拟合。来聊聊?🚀 |