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

如何微调提升特定领域知识 #20

Open
magicuter opened this issue Jun 5, 2023 · 6 comments
Open

如何微调提升特定领域知识 #20

magicuter opened this issue Jun 5, 2023 · 6 comments

Comments

@magicuter
Copy link

magicuter commented Jun 5, 2023

数据集https://huggingface.co/datasets/databricks/databricks-dolly-15k
训练精度:bf16
参数:
--lora_r 8
--lora_alpha 32
--lora_dropout 0.01 \

epoch-steps:1000
epoch-count:20

• 3B模型RWKV-4-Raven-3B-v12-Eng49%-Chn49%-Jpn1%-Other1%-20230527-ctx4096.pth
• lora模型整体并没有丧失基模型能力
• lora模型简单学习到了很少一部分databricks-dolly-15k数据集的知识,看起来不多

• 7B模型RWKV-4-Raven-7B-v12-Eng49%-Chn49%-Jpn1%-Other1%-20230530-ctx8192.pth
• lora模型有点丧失基模型能力
• lora模型整体变的混乱,无法有效回答atabricks-dolly-15k数据集的知识
• lora模型对于重复性问题回答比较跳跃

如上所示,指定databricks-dolly-15k数据集lora微调raven-3b和7b模型,发现结果并不理想,无法学习到新的数据集知识且可能对基模型能力产生不好的影响

如果需要对特定领域知识(可能是一个简单的问答客服)进行微调,是否lora是一种选择,还是说用prompt或langchain外挂语料的方式更好

@Blealtan

@magicuter
Copy link
Author

magicuter commented Jun 5, 2023

而且感觉好像多卡和单卡速度是一样的,既没有模型并行也没有数据并行,多卡并没有加速训练

Epoch 11: 0%| | 1/1000 [00:01<24:15, 1.46s/it, loss=0.0368, lr=1e-5, REAL it/s=0.683, Kt/s=0.350]
Epoch 11: 0%| | 1/1000 [00:01<24:15, 1.46s/it, loss=0.0144, lr=1e-5, REAL it/s=0.644, Kt/s=0.330]
Epoch 11: 0%| | 2/1000 [00:02<24:03, 1.45s/it, loss=0.0144, lr=1e-5, REAL it/s=0.644, Kt/s=0.330]
Epoch 11: 0%| | 2/1000 [00:02<24:03, 1.45s/it, loss=0.0278, lr=1e-5, REAL it/s=0.696, Kt/s=0.356]
如上是两张卡训练的日志,按理说多卡训练时不应该是数据迭代平分到多卡吗

整体看下来训练速度和其他LLM模型相比感觉很慢

@magicuter
Copy link
Author

magicuter commented Jun 6, 2023

迭代超过10次以上就出现了明显的过拟合,基模型能力基本丧失
而且要经常reset,不然就会答非所问,老是回答之前重复的问题

Q: 三克贾科虫的颜色
A: 车身颜色:宝石红、云母灰、雪域白、冰川银、珍珠黑五种颜色,高品质的材质和喷涂工艺,让车身发出无与伦比的光度,高级优雅的多种颜色

Q: 三克贾科虫的发布时间
A: 发布时间:2012年10月10日上市

Q: 三克贾科虫的四款车型及价格
A: 2012款宝石红、云母灰、冰川银、珍珠黑五种颜色,高品质的材质和喷涂工艺,让车身发出无与伦比的光度,高级优雅的多种颜色

Q: 三克贾科虫的四款车型及价格
A: 2012款宝石红、云母灰、冰川银、珍珠黑五种颜色,高品质的材质和喷涂工艺,让车身发出无与伦比的光度,高级优雅的多种颜色

Q: 三克贾科虫的四款车型及价格有哪些
A: 2012款宝石红、云母灰、冰川银、珍珠黑五种颜色,高品质的材质和喷涂工艺,让车身发出无与伦比的光度,高级优雅的多种颜色

Q: +reset
A: Chat reset.

Q: 三克贾科虫的四款车型及价格
A: 首款发布的车型-1.4L自动都市领先型-14.99万元
1.4L自动都市领先型-15.69万元
1.4L自动四驱全能旗舰型-17.69万元
1.4L自动四驱全能旗舰型-19.69万元

@reckzhou
Copy link

reckzhou commented Jun 7, 2023

是的,Lora过程的灾难性遗忘太厉害。我跑了一晚上,总计6万个样本。第二天查看时,只会我样本领域的知识,常规知识基本忘光了。

@Blealtan
Copy link
Owner

Blealtan commented Jun 9, 2023

多卡训练的时候每张卡上的microbatch size不变,总的batch扩大了。Gtoken/s会增加。
灾难性遗忘的问题一方面是不能让loss降太低,训到原始数据上的perplexity严重升高之前就该early stop了;另外可以混一些底座语料训练,这个更简单直接一点。这两个事情都可以从minipile再采一些样来用。

@reckzhou
Copy link

reckzhou commented Jun 9, 2023

Lora原论文:
Third, the amplification factor is rather huge: 21.5 6.91/0.32 for r = 4. See Section H.4 for why r = 64 has a smaller amplification factor. We also provide a visualization in Section H.3 for how the correlation changes as we include more top singular directions from Wq. This suggests that the low-rank adaptation matrix potentially amplifies the important features for specific downstream tasks that were learned but not emphasized in the general pre-training model.
大致意思是如果r=8时特征权重重要性会放大倍数更大。
如果微调时,r=64时,倍数减少,即便增加样本量,特征权重重要性降低,遗忘速度会不会不那么快?

@1SingleFeng
Copy link

请问这个问题解决了吗,我现在也遇到一些问题,lora微调后模型学到的知识效果也很差,经常产生幻觉,比如一些参数性信息,比如,一个物体的尺寸,经常开始瞎报,训练时可能是5.4厘米,推理时可能是其它尺寸。

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

4 participants