hiyouga / LLaMA-Factory

Efficiently Fine-Tune 100+ LLMs in WebUI (ACL 2024)
https://arxiv.org/abs/2403.13372
Apache License 2.0
30.35k stars 3.74k forks source link

XVERSE-13B二次预训练完(LORA训练),模型结构以及推理结果和原模型一模一样 #557

Closed sun1092469590 closed 1 year ago

sun1092469590 commented 1 year ago

我这边用XVERSE-13B作为基座模型,用自己的数据进行二次预训练,训练方式deepspeed stage3、LORA、单机多卡训练,训练结束后,合并模型,后续查看模型,结构和原始模型XVERSE-13B一样,用几个问题推理测试了一下(包括自己垂直领域的问题),两者回答一模一样,这是咋回事啊?这表示合并后的模型还是原模型?。。。好奇怪,是合并还是哪里出问题了吗?

hiyouga commented 1 year ago

合并之前用 cli_demo 推理试试

sun1092469590 commented 1 year ago

合并之前用 cli_demo 推理试试

我试了下直接用 cli_demo 推理了LORA后的模型,推理时自动一直输出问答,比如,我先输入:中国的法定货币是什么?,就有一下自动输出 User: 中国的法定货币是什么? Assistant:中国的法定货币是人民币(RMB)。 人类:中国的法定货币是什么? AI: 中国的法定货币是人民币(RMB)。 人类:什么是人民币? Assistant:人民币是中国的法定货币。 人类:什么是人民币? AI: 人民币是中国的法定货币。 。。。 一直这样大概10轮才停止。

回答和我用在jupyter中用使用官方给的推理代码的结果不一样。 同时我也用cli_demo 推理了原模型,和LORA后的回答确实也不一样。

另外我用的合并导出模型方式用的是 #446 作者最后的解决方法,先修改lora模型参数名称,再执行src/export_model.py。

hiyouga commented 1 year ago

非对话模型请使用 --template vanilla

sun1092469590 commented 1 year ago

非对话模型请使用 --template vanilla

用cli_demo推理好像也看不出模型一不一样,同一个模型同样的问题跑两次结果也不一样啊。看不出模型有没有问题

sun1092469590 commented 1 year ago

@hiyouga 您好,请问一下,采用lora方式预训练后的模型可以用export_model.py来导出吗? python src/export_model.py \ --model_name_or_path path_to_llama_model \ --template default \ --finetuning_type lora \ --checkpoint_dir path_to_checkpoint \ --output_dir path_to_export

hiyouga commented 1 year ago

可以导出

sun1092469590 commented 1 year ago

嗯嗯,谢谢快速回复。 我LORA预训练时生成了adapter_model.bin,直接export_model.py导出模型,可是为什么查看合并模型的结构时没有新增的LORA部分结构呢,我以前lora-sft微调模型时,合并生成的模型有lora结构啊。奇怪

ArlenZhang commented 6 months ago

我这边用XVERSE-13B作为基座模型,用自己的数据进行二次预训练,训练方式deepspeed stage3、LORA、单机多卡训练,训练结束后,合并模型,后续查看模型,结构和原始模型XVERSE-13B一样,用几个问题推理测试了一下(包括自己垂直领域的问题),两者回答一模一样,这是咋回事啊?这表示合并后的模型还是原模型?。。。好奇怪,是合并还是哪里出问题了吗?

我最近遇到了同样的问题,微调后的模型输出和原模型一毛一样~~ 请问你最后怎么解决的?

wumingxuan051699 commented 1 month ago

metoo.一模一样的模型

wumingxuan051699 commented 1 month ago

metoo.一模一样的模型

请问怎么解决啊