最近在尝试用LLaMA-Factory对Qwen2.5-7B做LoRA微调,任务是基于内部工单数据做领域问答。训练loss降得挺正常的,eval也还行。但遇到一个奇怪的问题:直接加载base模型+LoRA adapter推理,回答质量还可以;但用merge_and_unload把adapter合并回base权重后,回答变得很重复,甚至开始胡言乱语。target_modules设的是q_proj,k_proj,v_proj,o_proj,lora_rank=16,alpha=32。有没有大佬遇到过类似情况?是我merge方式不对,还是精度问题(用的bf16)?求指点。
楼主
2026-09-26
Qwen2.5-7B用LoRA微调后,推理时merge权重反而效果变差了?
请 登录 后发表回复
全部回复
共 2 条
2楼
10天前
写得挺好,建议补充一些性能数据。
3楼
12小时前
这个现象我也碰到过,merge之后效果掉点确实挺让人抓狂的。有个容易忽略的点是merge时的dtype,如果你base用bf16加载但merge脚本里默认走了fp32或者反过来,数值路径就变了,尤其是alpha/rank=2这种缩放系数下误差会被放大。另外LLaMA-Factory导出merge权重时有时会把lm_head也做处理,你可以对比一下merge前后logits的差异定位问题。还有种情况是adapter本身训练时disable了某些层,merge时全量合进去反而破坏了原始分布。建议先用几条件测样本对比base+adapter和merged的logits max diff,如果diff很大基本就是精度或合并逻辑问题。实在不行试试用peft的merge_and_unload在fp32下合并再转bf16存,很多时候就正常了。