ymcui / Chinese-LLaMA-Alpaca-2

中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)
Apache License 2.0
7.04k stars 581 forks source link

训练完的模型跟alpaca模型,合并之后回答胡说八道,这是为什么? #398

Closed 459737087 closed 9 months ago

459737087 commented 10 months ago

提交前必须检查以下项目

问题类型

模型推理

基础模型

Chinese-Alpaca-2 (7B/13B)

操作系统

Linux

详细描述问题

image

依赖情况(代码类问题务必提供)

python scripts/inference/inference_hf.py  --base_model /output/chinese-alpaca-2-lora-7b/  --tokenizer_path /output/chinese-alpaca-2-lora-7b/   --with_prompt --interactive

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
459737087 commented 10 months ago

peft的模型在哪啊?

iMountTai commented 9 months ago

你推理脚本输入的--base_model本身就是不正确的,其次,建议跑推理代码前先用我们的模型跑通相关流程,再跑自己训练好的模型,也好确定是你本身训练的问题还是我们的脚本有问题。

440981 commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

ymcui commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

第三步错了,LoRA不是随便和哪个模型都能合并的,原则上只能和对应的基模型合并使用。 例如,你提到的Chinese-Alpaca-2-LoRA-13B只能和Llama-2-13B-hf搭配得到Chinese-Alpaca-2-13B

440981 commented 9 months ago

我也出现了这个问题请教您怎么解决的?我的流程是 1: 基于Chinese-LLaMA-2-13B进行预训练 2: 把Chinese-LLaMA-2-13B模型和预训练结果合并得到a 3: 再把a和Chinese-Alpaca-2-LoRA-13B进行合并得到b 4:运行b得到的回答和提问毫无关系

第三步错了,LoRA不是随便和哪个模型调色的,原则上只能和对应的基础模型调色使用。 例如,你提到的Chinese-Alpaca-2-LoRA-13B只能和Llama-2-13B-hf搭配得到Chinese-Alpaca-2-13B

原来如此 感谢解答

459737087 commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

对,我也做了你这些实验,最后,我是把LLama2和lora合并,然后进行训练,得到的结果再和llama合并就可以了 ,效果不错

440981 commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

对,我也做了你这些实验,最后,我是把LLama2和lora合并,然后进行训练,得到的结果再和llama合并就可以了 ,效果不错

这样不是和直接使用Chinese-Alpaca-2-13B进行预训练再合并一样了吗 我也这样操作过 但是效果不是很好

459737087 commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

对,我也做了你这些实验,最后,我是把LLama2和lora合并,然后进行训练,得到的结果再和llama合并就可以了 ,效果不错

这样不是和直接使用Chinese-Alpaca-2-13B进行预训练再合并一样了吗 我也这样操作过 但是效果不是很好

id是[ymcui]的朋友说的对,alpaca和llama不一样,lora不是和哪个模型都能用,lora的base是llama不是alpaca,所以你要和llama合并才可以

zollty commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

对,我也做了你这些实验,最后,我是把LLama2和lora合并,然后进行训练,得到的结果再和llama合并就可以了 ,效果不错

你是用的LLaMA-2吧,没有用中文Alpaca-2,后者我训练后也出现了胡说八道的情况。 官方提供了

  1. 中文LLaMA-2(基座模型,写作用途)
  2. 中文Alpaca-2(指令模型,聊天用途)

训练模式用途:+model_name

  1. 基于原版LLaMA-2训练中文LLaMA-2 LoRA:+原版HF格式的LLaMA-2
  2. 基于中文LLaMA-2,在新的LoRA上继续预训练:+HF格式的完整中文LLaMA-2
  3. 基于中文Alpaca-2,在新的LoRA上继续预训练:+HF格式的完整中文Alpaca-2

我用作聊天,所以选择的 “3. 基于中文Alpaca-2(hf),在新的LoRA上继续预训练”,+HF格式的完整中文Alpaca-2,+text文本训练数据。

得到新的Lora tokenizer.model权重,然后再与中文Alpaca-2合并(我也试过和原版LLaMA-2合并,更糟糕),都能用,但是合并后效果如下:

=======================================================================
Input:你好
Response:  你这猴子,怎么不打个问讯儿?我老孙是齐天大圣,你却怎么称呼?

Input:孙悟空和猪八戒哪个厉害?
Response:  那猴王乃是齐天大圣,万圣之神;这呆子乃是东土大唐的和尚,三界之内之神。

Input:请介绍一下猪八戒
Response:  猪八戒,本名悟能,是《西游记》中一个神通广大的和尚,他原是东土大唐差往西天取经的徒弟,因他贪酒色,不守戒行,被佛祖贬下凡来,与沙僧、孙行者保护唐僧去西天拜佛求经。他生得嘴脸丑恶,身躯粗壮,性情直爽,心地愚顽,好赌斗,喜吃酒,爱打人。\n
他那嘴上长着两颗獠牙,一双金睛,一身毛发,一双脚,两只手,四条腿,浑身上下都是肉,十分丑陋。他那性子最是急躁,见了人就嚷,见了事就闹,见了钱就抢,见了酒就醉,见了女色就淫。他 那行囊里常带着一把板斧,一柄钢叉,一条铁棒,一口宝剑,三件护身之物。\n
他那行囊里常有几瓶黄汤,几包熟面,几斤腌腊,几块腌肉,几碗醋酱,几碟菜蔬,几瓶白酒,几瓶米浆,几瓶茶水,几瓶油盐,几瓶香料,几瓶花果,几瓶果 品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶 果品,几瓶果品

Input:你好
Response:  你这猴子,怎么不打个问讯儿?我问你:“你是那方来的?”

Input:介绍一下林黛玉
Response:  林黛玉,字雪雁,号潇湘子,是《红楼梦》中第一个女主人公。她生得眉清目秀,面如傅粉,身段袅娜,举止轻盈,风流潇洒,才情出众。\n
因父母早亡,自幼在贾母处寄居,与宝玉、宝钗等为友。她聪明伶俐,多才多艺,善诗能画,通晓音律,又兼有古今文籍之学,深通经史,广览群书。\n
她最喜吟咏,每夜临寝必作一首,或以词赋为题,或以景物为题,或以人物为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为 题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话 为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲 话为题,或以议论为题,或

有人用过“3. 基于中文Alpaca-2,在新的LoRA上继续预训练”吗

440981 commented 9 months ago

我也出现了这个问题 请教您是怎么解决的? 我的流程是 1:基于Chinese-LLaMA-2-13B进行预训练 2:把Chinese-LLaMA-2-13B模型和预训练结果合并 得到a 3:再把a和Chinese-Alpaca-2-LoRA-13B进行合并 得到b 4:运行b得到的回答和提问毫无关系

对,我也做了你这些实验,最后,我是把LLama2和lora合并,然后进行训练,得到的结果再和llama合并就可以了 ,效果不错

你是用的LLaMA-2吧,没有用中文Alpaca-2,后者我训练后也出现了胡说八道的情况。 官方提供了

  1. 中文LLaMA-2(基座模型,写作用途)
  2. 中文Alpaca-2(指令模型,聊天用途)

训练模式用途:+model_name

  1. 基于原版LLaMA-2训练中文LLaMA-2 LoRA:+原版HF格式的LLaMA-2
  2. 基于中文LLaMA-2,在新的LoRA上继续预训练:+HF格式的完整中文LLaMA-2
  3. 基于中文Alpaca-2,在新的LoRA上继续预训练:+HF格式的完整中文Alpaca-2

我用作聊天,所以选择的 “3. 基于中文Alpaca-2(hf),在新的LoRA上继续预训练”,+HF格式的完整中文Alpaca-2,+text文本训练数据。

得到新的Lora tokenizer.model权重,然后再与中文Alpaca-2合并(我也试过和原版LLaMA-2合并,更糟糕),都能用,但是合并后效果如下:

=======================================================================
Input:你好
Response:  你这猴子,怎么不打个问讯儿?我老孙是齐天大圣,你却怎么称呼?

Input:孙悟空和猪八戒哪个厉害?
Response:  那猴王乃是齐天大圣,万圣之神;这呆子乃是东土大唐的和尚,三界之内之神。

Input:请介绍一下猪八戒
Response:  猪八戒,本名悟能,是《西游记》中一个神通广大的和尚,他原是东土大唐差往西天取经的徒弟,因他贪酒色,不守戒行,被佛祖贬下凡来,与沙僧、孙行者保护唐僧去西天拜佛求经。他生得嘴脸丑恶,身躯粗壮,性情直爽,心地愚顽,好赌斗,喜吃酒,爱打人。\n
他那嘴上长着两颗獠牙,一双金睛,一身毛发,一双脚,两只手,四条腿,浑身上下都是肉,十分丑陋。他那性子最是急躁,见了人就嚷,见了事就闹,见了钱就抢,见了酒就醉,见了女色就淫。他 那行囊里常带着一把板斧,一柄钢叉,一条铁棒,一口宝剑,三件护身之物。\n
他那行囊里常有几瓶黄汤,几包熟面,几斤腌腊,几块腌肉,几碗醋酱,几碟菜蔬,几瓶白酒,几瓶米浆,几瓶茶水,几瓶油盐,几瓶香料,几瓶花果,几瓶果 品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶果品,几瓶 果品,几瓶果品

Input:你好
Response:  你这猴子,怎么不打个问讯儿?我问你:“你是那方来的?”

Input:介绍一下林黛玉
Response:  林黛玉,字雪雁,号潇湘子,是《红楼梦》中第一个女主人公。她生得眉清目秀,面如傅粉,身段袅娜,举止轻盈,风流潇洒,才情出众。\n
因父母早亡,自幼在贾母处寄居,与宝玉、宝钗等为友。她聪明伶俐,多才多艺,善诗能画,通晓音律,又兼有古今文籍之学,深通经史,广览群书。\n
她最喜吟咏,每夜临寝必作一首,或以词赋为题,或以景物为题,或以人物为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为 题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话 为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲话为题,或以议论为题,或以感怀为题,或以闲 话为题,或以议论为题,或

有人用过“3. 基于中文Alpaca-2,在新的LoRA上继续预训练”吗

我也和你一样 基于中文LLaMA预训练后就会胡说八道