ymcui/Chinese-LLaMA-Alpaca-2

能否合并Alpaca-2的lora权重到基于chinese-llama-2预训练的基模型上

lry0223 opened this issue · 4 comments

提交前必须检查以下项目

  • 请确保使用的是仓库最新代码(git pull),一些问题已被解决和修复。
  • 我已阅读项目文档FAQ章节并且已在Issue中对问题进行了搜索,没有找到相似问题和解决方案。
  • 第三方插件问题:例如llama.cppLangChaintext-generation-webui等,同时建议到对应的项目中查找解决方案。

问题类型

模型训练与精调

基础模型

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

操作系统

Linux

详细描述问题

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

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

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

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
ymcui commented
  1. lora与其基模型是绑定关系。理论上,你提到的用法(chinese-alpaca-2-lora + chinese-llama-2)是错误的。chinese-alpaca-2-lora只能与原版llama-2合并得到chinese-alpaca-2。
  2. 你有指令精调数据就直接在chinese-alpaca-2上做SFT就行了。
  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
  1. Chinese-Alpaca-2的确是在Chinese-LLaMA-2的基础上进行指令精调的来的。然而,Chinese-Alpaca-2-LoRA是在Chinese-LLaMA-2-LoRA的基础上进一步训练的,因此基模型并没有发生变化,即被冻结的权重还是原版Llama-2。
  2. 我没有完全理解你的描述。如果你是同时拥有无标注数据和有标注指令数据,而你最终的目标是获得一个chat模型,那么在alpaca-2上做继续训练就行了,不论先做无监督训练还是有监督指令精调。如果你担心预训练会导致alpaca-2的对话能力减弱,那就想办法把无标注数据转化为指令数据。关于同时训练有标注和无标注数据,目前没有统一的做法,需要你们自行尝试。

好的,感谢崔老师