yangjianxin1 / Firefly

Firefly: 大模型训练工具,支持训练Yi1.5、Phi-3、Llama3、Gemma、MiniCPM、Yi、Deepseek、Orion、Xverse、Mixtral-8x7B、Zephyr、Mistral、Baichuan2、Llma2、Llama、Qwen、Baichuan、ChatGLM2、InternLM、Ziya2、Vicuna、Bloom等大模型

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

qlora微调后的模型性能

ZHANGJINKUI opened this issue · comments

qlora微调模型输出正确结果后仍然会输出一些不相干的内容,例如:
image
我使用的断句功能,但是他在断完句子后仍然会输出一些无关紧要的内容,我一开始以为是训练集的大小太小,于是我将训练集的大小从2k换到了2w,epoch从30换到了 1,但是模型的效果还是这样,会在输出正确内容后,继续输出一些无关紧要的乱码内容,有时候是符号有时候是句子,还有时候会输出外语,这是什么原因呢?是我模型有问题了吗,还是说我使用的有问题呢,希望各位大佬们能指点一下,谢谢谢谢谢!

在FAQ中描述了你提到的这个问题,本质是模型无法正常生成<|im_end|>这个token,导致模型无法正常结束。

  1. 如果训练时model_name_or_path=Qwen/Qwen-7B-Chat,template_name=qwen,训练完后模型可以正常结束。
  2. 如果训练时model_name_or_path=Qwen/Qwen-7B,template_name=qwen,训练完后模型可以无法结束,会出现你展示的问题。

当model_name_or_path=Qwen/Qwen-7B时,template_name=default可解决无法生成停止问题。

需要先确认一下训练时你的model_name_or_path是chat模型还是base模型

需要先确认一下训练时你的model_name_or_path是chat模型还是base模型

您好,我使用的是model_name_or_path=Qwen/Qwen-7B-Chat的模型,且template_name=qwen但是仍然会出现这样的问题,会在生成正确答案后输出一些乱码的信息,我也不能很清楚的知道是为什么,您能再给出一点建议吗,谢谢!

Qwen1.5刚出来,可以尝试一下model_name_or_path=Qwen/Qwen1.5-7B-Chat,看是否会有问题

一般 qlora loss 到达多少可以收敛好了?loss 可以降到很低。模型在sft的时候可以引入acc作为判断标准吗?也就是在配置文件里面加一个eval_file.
@yangjianxin1 感谢

{'loss': 3.2572, 'learning_rate': 0.0002, 'epoch': 0.09}
{'loss': 2.003, 'learning_rate': 0.0002, 'epoch': 0.18}
{'loss': 1.7128, 'learning_rate': 0.0002, 'epoch': 0.28}
{'loss': 1.5041, 'learning_rate': 0.0002, 'epoch': 0.37}
{'loss': 1.4552, 'learning_rate': 0.0002, 'epoch': 0.46}
{'loss': 1.3101, 'learning_rate': 0.0002, 'epoch': 0.55}
21%|███████████████████████████████▉ | 699/3258 [1:24:27<5:09:49, 21%|██████████████████████████████ | 700/3258 [1:24:34<5:05:45, 7.17s/it]{'loss': 1.2576, 'learning_rate': 0.0002, 'epoch': 0.64}
24%|██████████████████████████████████▏ | 796/3258 [1:36:44<4:50:1 24%|███████████████████████████████ | 797/3258 [1:36:52<4:51:10, 7.10s/it]{'loss': 1.1868, 'learning_rate': 0.0002, 'epoch': 0.74}
{'loss': 1.1151, 'learning_rate': 0.0002, 'epoch': 0.83}
{'loss': 1.1083, 'learning_rate': 0.0002, 'epoch': 0.92}
{'loss': 1.0145, 'learning_rate': 0.0002, 'epoch': 1.01}
{'loss': 0.854, 'learning_rate': 0.0002, 'epoch': 1.1}
{'loss': 0.8483, 'learning_rate': 0.0002, 'epoch': 1.2}
{'loss': 0.8138, 'learning_rate': 0.0002, 'epoch': 1.29}
{'loss': 0.8054, 'learning_rate': 0.0002, 'epoch': 1.38}
{'loss': 0.7645, 'learning_rate': 0.0002, 'epoch': 1.47}
51%|██████████████████████████████████████████████████████████████████████████████▎ | 1657/3258 [3:22:56<3: 51%|█████████████████████████████████████████████████████████████████████▋ | 1658/3258 [3:23:04<3:20:01, 7.50s/it] 51%|███████████████████████████████████ 51%|████████████████████████████████████████████████████████████████████████████████▋ 51%|█████████████████████████████████████████████████{'loss': 0.729, 'learning_rate': 0.0002, 'epoch': 1.56}
{'loss': 0.7243, 'learning_rate': 0.0002, 'epoch': 1.66}
{'loss': 0.7277, 'learning_rate': 0.0002, 'epoch': 1.75}
{'loss': 0.71, 'learning_rate': 0.0002, 'epoch': 1.84}
61%|█████████████████████████████████████████████████████████████████████████████████████████████████▊ | 2003/3258 [4:07:59<3:32:09, 10. 62%|█████████████████████████████████████████████████████████████████████████████████████████████▍ | 2004/3258 [4:08:06<3:12:39, 9.22s/it] 62%|██████████████████████████████████████████████████████████████████████████████████████████████▍ 62%|██████████████████████████████████████████████████████████████████████████████▎ | 2024/3258 [4:10:27<2:23:56, 7.00s/it] 63% 64%{'loss': 0.6947, 'learning_rate': 0.0002, 'epoch': 1.93}
{'loss': 0.632, 'learning_rate': 0.0002, 'epoch': 2.02}
70%|████████████████████████████████████████████████████████████████████████████████████████████████████ | 2265/3258 [4:41:45<1:56:09, 7.0 70%|███████████████████████████████████████████████████████████████████████████████████████████████▉ | 2266/3258 [4:41:52<1:55:12, 6.97s/it]{'loss': 0.4938, 'learning_rate': 0.0002, 'epoch': 2.12}
{'loss': 0.5083, 'learning_rate': 0.0002, 'epoch': 2.21}
{'loss': 0.5106, 'learning_rate': 0.0002, 'epoch': 2.3}
{'loss': 0.4914, 'learning_rate': 0.0002, 'epoch': 2.39}
{'loss': 0.4937, 'learning_rate': 0.0002, 'epoch': 2.49}
{'loss': 0.4826, 'learning_rate': 0.0002, 'epoch': 2.58}
{'loss': 0.5047, 'learning_rate': 0.0002, 'epoch': 2.67}
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 2936/3258 [6:05:12<38:26, 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 2937/3258 [6:05:20<39:36, 7.40s/it]{'loss': 0.4728, 'learning_rate': 0.0002, 'epoch': 2.76}
{'loss': 0.4871, 'learning_rate': 0.0002, 'epoch': 2.85}
{'loss': 0.4915, 'learning_rate': 0.0002, 'epoch': 2.95}
{'train_runtime': 24477.3073, 'train_samples_per_second': 2.131, 'train_steps_per_second': 0.133, 'train_loss': 0.934481665281667, 'epoch': 3.0}
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3258/3258 [6:47:57<00:00, 7.51s/it]
***** train metrics *****
epoch = 3.0
train_loss = 0.9345
train_runtime = 6:47:57.30
train_samples_per_second = 2.131
train_steps_per_second = 0.133