Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Baichuan2合并lora后推理报错:RuntimeError: probability tensor contains either inf, nan or element < 0 #1618

Closed
1 task done
liwenju0 opened this issue Nov 24, 2023 · 6 comments
Labels
wontfix This will not be worked on

Comments

@liwenju0
Copy link

liwenju0 commented Nov 24, 2023

Reminder

  • I have read the README and searched the existing issues.

Reproduction

最新发现

使用 api-for-llm来部署,同样会报一样的错误。看来不是这个框架的原因。

模型基座是:Baichuan2-13B-Chat, 进行lora微调并合并,使用cli_demo.py 加载合并后的模型时,推理报错。报错信息如下。

image
使用的是最新的代码。

一个奇怪的现象, 同样的导出合并后的模型,在A800上可以正常推理。报错的信息是在3090上。
于是测试了在3090的机器上进行lora合并,使用合并的模型推理,还是报同样的错误。

查找到如下相关的4个issues,都没能解决问题。

/home/deepctrl/anaconda3/envs/llama_factory_deepspeed/lib/python3.10/site-packages/transformers/generation/utils.py
在该文件上添加了两行打印语句。
直接加载Baichuan2-13B-Chat 版本,不使用合并后的lora模型,问题照旧。3090会报错,A800不会报错。
image
在3090上和A800上, probs经过softmax后。3090就会出现很多nan,如图所示:
image

A800上就不会:
image

两台机器上的torch版本相同,都是2.1.0

Expected behavior

代码可以正常推理

System Info

torch 2.1.0
xformers 0.0.22.post7
transformers 4.34.1
system ubuntu18.04

测试了将 transformers 替换成 4.31.0。还是会报同样的错误

Others

No response

@hiyouga hiyouga added the pending This problem is yet to be addressed label Nov 24, 2023
@Aitejiu
Copy link

Aitejiu commented Nov 24, 2023

问一个类似的问题:将lora微调过后的模型,合并后得到新模型。模型load的时候进行自动设备映射选择。导致模型分成了两部分。两张卡各一半。运行推理后也报他同样的错误。

@liwenju0
Copy link
Author

问一个类似的问题:将lora微调过后的模型,合并后得到新模型。模型load的时候进行自动设备映射选择。导致模型分成了两部分。两张卡各一半。运行推理后也报他同样的错误。

我测试了在一张卡上进行int8量化加载,还是报同样的错误。

@liwenju0
Copy link
Author

liwenju0 commented Nov 25, 2023

重新根据这个项目构建了一个conda环境,发现加载qwen-14b-chat也是报同样的错误。有点怀疑是不是我的机器的cuda环境有问题。

@Aitejiu
Copy link

Aitejiu commented Nov 26, 2023

问一个类似的问题:将lora微调过后的模型,合并后得到新模型。模型load的时候进行自动设备映射选择。导致模型分成了两部分。两张卡各一半。运行推理后也报他同样的错误。

我测试了在一张卡上进行int8量化加载,还是报同样的错误。

我放到一张卡上跑了之后就正常了

@liwenju0
Copy link
Author

在百川上也提了一个issue
baichuan-inc/Baichuan2#292

@hiyouga hiyouga added wontfix This will not be worked on and removed pending This problem is yet to be addressed labels Dec 1, 2023
@hiyouga hiyouga closed this as not planned Won't fix, can't repro, duplicate, stale Dec 1, 2023
@xianrenge
Copy link

问一个类似的问题:将lora微调过后的模型,合并后得到新模型。模型load的时候进行自动设备映射选择。导致模型分成了两部分。两张卡各一半。运行推理后也报他同样的错误。

我测试了在一张卡上进行int8量化加载,还是报同样的错误。

我放到一张卡上跑了之后就正常了

我也出现这个问题,请问你解决了吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

4 participants