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

infer的时候,如果问训练集问题,模型响应异常 #27

Open
pollymars opened this issue Mar 28, 2023 · 3 comments
Open

infer的时候,如果问训练集问题,模型响应异常 #27

pollymars opened this issue Mar 28, 2023 · 3 comments

Comments

@pollymars
Copy link

使用最新代码微调之后,infer的时候遇到了以下bug,不知道是不是lora调整的层加载在cpu?还是别的原因

97dd52f2d91358f6775ffdda7540740

@pollymars pollymars changed the title RuntimeError: Expected all tensors to be on the same device , but found at least two devices , cuda:0 and cpu! ( when checking argument for argument mat2 in method wrapper_mm ) infer的时候,如果问训练集问题,模型响应异常 Mar 29, 2023
@pollymars
Copy link
Author

pollymars commented Mar 29, 2023

修改了torch/nn/modules/linear.py的114行,把self.weight(即attention的linear权重)所在device设为合适的cuda:
return F.linear(input, self.weight.to(input.device), self.bias)
然后就可以跑通infer了。这个bug应该是因为模型微调时,设置LoraConfig的target_modules=['query_key_value','dense','dense_h_to_4h','dense_4h_to_h'],然后infer的时候,有些Lora调整过的dense层的权重被加载在cpu了(不清楚是不是可以在Lora加载的时候指定一下)。
但是,后续又遇到另一个问题,用微调后模型做问答的时候,问一些常规问题时可以正常回答、响应也挺快,然而,问一些训练集问题的时候,就会卡好一会、反复打印输入参数直到报OutOfMemoryError。给我感觉是,模型会根据问题文本,走不同的参数路径,当遇到训练集问题的时候,就走到Lora层,然后就死循环了?。
不知道大家伙有没有遇到类似问题的。。现在打算修改LoraConfig的target_modules试验看看。

@GaoPengGit
Copy link

我自己也用自己的数据训练了,也是这样,不知道为啥?但是alpaca_chinese_dataset训出来的模型没问题,是数据问题吗?

@pollymars
Copy link
Author

pollymars commented Mar 29, 2023

但是,后续又遇到另一个问题,用微调后模型做问答的时候,问一些常规问题时可以正常回答、响应也挺快,然而,问一些训练集问题的时候,就会卡好一会、反复打印输入参数直到报OutOfMemoryError。给我感觉是,模型会根据问题文本,走不同的参数路径,当遇到训练集问题的时候,就走到Lora层,然后就死循环了?。 不知道大家伙有没有遇到类似问题的。。现在打算修改LoraConfig的target_modules试验看看。

而且,反复打印的输入参数显示,输入文本越来越长;使用训练epoch更久的模型,基本都会响应异常(这点也对应了我先前没提到的另一个奇怪现象,训练过了4个epoch之后,train_loss和eval_loss都开始变很大)。

我自己也用自己的数据训练了,也是这样,不知道为啥?但是alpaca_chinese_dataset训出来的模型没问题,是数据问题吗?

我也是用自己数据训练,和LoraConfig的target_modules设置有关系吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants