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-2的lora权重到基于chinese-llama-2预训练的基模型上 #444

Closed lry0223 closed 9 months ago

lry0223 commented 9 months ago

提交前必须检查以下项目

问题类型

模型训练与精调

基础模型

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

操作系统

Linux

详细描述问题

您好,我先通过预训练Chinese-LLAMA-2得到一个自己的预训练基模型。现在我想最快的得到基于它的一个通用的对话模型。我可不可以直接把Chinese-Alpaca-2的lora权重合并到这个基模型上?另外如果我还有自己的一些指令精调数据,我是应该从头训练一个精调lora权重合并到我的基模型上,还是可以用我的数据精调Chinese-Alpaca-2后合并到基模型,感谢回答

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

# 请在此处粘贴依赖情况(请粘贴在本代码块里)

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
ymcui commented 9 months ago
  1. lora与其基模型是绑定关系。理论上,你提到的用法(chinese-alpaca-2-lora + chinese-llama-2)是错误的。chinese-alpaca-2-lora只能与原版llama-2合并得到chinese-alpaca-2。
  2. 你有指令精调数据就直接在chinese-alpaca-2上做SFT就行了。
lry0223 commented 9 months ago
  1. lora与其基模型是绑定关系。理论上,你提到的用法(chinese-alpaca-2-lora + chinese-llama-2)是错误的。chinese-alpaca-2-lora只能与原版llama-2合并得到chinese-alpaca-2。
  2. 你有指令精调数据就直接在chinese-alpaca-2上做SFT就行了。

崔老师您好,我还是不太理解,对于1,我看介绍里chinese-alpaca-2是基于chinese-llama-2训练得到的,为什么需要合并的是原版llama2呢。对于2,这样做后是否还是合并到原版llama2而不能合入自己预训练的基模型。如果是这样的话,我该怎么对自己预训练的基模型精调呢?

ymcui commented 9 months ago
  1. Chinese-Alpaca-2的确是在Chinese-LLaMA-2的基础上进行指令精调的来的。然而,Chinese-Alpaca-2-LoRA是在Chinese-LLaMA-2-LoRA的基础上进一步训练的,因此基模型并没有发生变化,即被冻结的权重还是原版Llama-2。
  2. 我没有完全理解你的描述。如果你是同时拥有无标注数据和有标注指令数据,而你最终的目标是获得一个chat模型,那么在alpaca-2上做继续训练就行了,不论先做无监督训练还是有监督指令精调。如果你担心预训练会导致alpaca-2的对话能力减弱,那就想办法把无标注数据转化为指令数据。关于同时训练有标注和无标注数据,目前没有统一的做法,需要你们自行尝试。
lry0223 commented 9 months ago

好的,感谢崔老师