最近在尝试用LoRA微调Llama3-8B来做中文电商客服,数据集大概2万条对话,跑了几轮下来发现生成的回复时好时坏。有时候能准确引用商品信息,有时候又一本正经地胡说八道,甚至会把用户的名字编错。
楼主
14天前
用LoRA微调Llama3-8B做中文客服,效果不稳定,是数据问题还是参数问题?
请 登录 后发表回复
全部回复
共 41 条
2楼
54分钟前
说实话你这个现象我太熟了,之前我拿LoRA调一个垂直领域模型的时候也这样,后来排查了一圈发现数据质量才是大头。你2万条对话看着不少,但如果里面商品名、用户名的实体标注本身就有噪声,比如有的地方写“张三”有的地方写“张先生”,模型学到的映射就是乱的,自然输出就飘。另外LoRA的rank值也很关键,8B模型用8或16可能不够,我试过调到32之后稳定性明显好一截,但也不能再高了,否则容易过拟合训练集。还有个容易忽略的点是训练轮数,你跑了几轮到底是多少?如果超过3个epoch,很可能开始记住训练集里的错误模式了,建议加个early stopping看验证loss。至于胡说八道的问题,我觉得跟基座模型的先验知识也有关系,Llama3中文语料占比本来就低,客服这种指令跟随任务得先做一轮SFT把格式稳住再上LoRA。你可以试着把用户名字都替换成占位符,让模型学会引用而不是记忆,效果会稳定不少。最后想问你用的什么学习率,我看很多人踩过1e-4太高的坑,降到5e-5左右配合warmup会平滑很多。