mirror of
https://github.com/deepseek-ai/DeepSeek-MoE.git
synced 2026-11-05 00:57:43 +00:00
[GH-ISSUE #27] deepseek-moe模型在进行lora微调训练时loss值会突然变为0一直到最后,导致推理异常。 #25
Labels
No labels
pull-request
WIP
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepSeek-MoE#25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hangchen426926 on GitHub (Feb 29, 2024).
Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-MoE/issues/27
现象1:deepseek-moe模型在进行lora微调训练时loss值会突然变为0一直到最后,导致推理异常,输出结果为:!!!。

现象2:deepseek-moe模型在checkpoint模型基础上进一步lora微调训练,会报错。
需要将trainer.train(resume_from_checkpoint = resume_from_checkpoint_dir)改为:
trainer.train() 才会启动成功。但保存的checkpoint就会从头开始,而不是从原checkpoint模型开始。
期待回复,谢谢~
@zwd003 commented on GitHub (Mar 1, 2024):
请问报错结果是什么呢,resume需要加载lora的adapter
@hangchen426926 commented on GitHub (Mar 1, 2024):
从基础模型开始lora训练时不会报错,推理也不报错,就是loss值会在1个epoch后突然变为0,微调后模型推理返回结果是一堆感叹号。但如果lora微调想在resume上加载lora的adapter,使用trainer.train(resume_from_checkpoint = resume_from_checkpoint_dir)训练会报错额。

@zyzyyy123 commented on GitHub (Jul 24, 2024):
请问你这个问题解决了吗
@1571859588 commented on GitHub (May 8, 2025):
这个可能是auxiliary loss没有加入到loss计算中导致梯度消失问题,我在复现的时候发现了同样的问题,能够通过刚刚讲的这个方式解决,而官网的代码却忽略了这一点。
另外, 官网的finetune.py在保存模型的时候也存在一些问题,比如kwargs['tokenizer']这个并不存在、使用lora微调后保存的adapter也有问题,有些是空的,导致无法合并等问题
然后是github 上推荐的推理代码也有问题,无法直接使用该推理代码,本人使用其他方式部署该deepseek moe 16b chat模型之后,在推理的时候存在输出概率nan的现象,非nan的概率时出现很多乱码和重复回答的情况,怀疑是超出最大上下文长度的问题,调整了8192\18000\36000\65535等都无法进行正常推理,且随着最大上下文长度的递增,出现nan的现象更加明显,同时检查了模型的config.json等非权重文件都没有发现指明上下文长度的极限值。同时,为了检验是否是下载时候权重文件下载错误的问题,又重新下载了3次,无一例外都是一样的结果。
综上,本人对论文的实验结果保持怀疑态度。