基于大语言模型的中文教学数据全参数与基于LoRA微调的对比研究

Xianghui Sun, Yunjie Ji, Baochang Ma*, Xiangang Li
Beike Inc., Beijing, China
{sunxianghui002,jiyunjie001,mabaochang001,lixiangang002}@ke.com
摘要

近年来,大型语言模型的指令调优是自然语言处理领域的一个重要研究领域。 由于资源和成本的限制,一些研究人员采用了LoRA等参数高效的调优技术来进行指令调优,并取得了令人鼓舞的结果。 与全参数微调相比,基于 LoRA 的调优在训练成本方面表现出显着的优势。 在本研究中,我们利用 LLaMA 作为基础模型,对全参数微调和基于 LoRA 的调整方法进行了实验比较。

实验结果表明,基础模型的选择、训练数据集规模、可学习参数数量和模型训练成本都是重要因素。 我们希望本文的实验结论能够为训练大型语言模型,特别是中文领域的模型提供启发,帮助研究人员在训练成本和模型性能之间找到更好的权衡策略。 为了方便复现论文结果,数据集、模型和代码将被公开。1 *通讯作者

1https://github.com/LianjiaTech/BELLE
.

1简介

ChatGPT[OpenAI, 2023a] 和 GPT-4[OpenAI, 2023b] 等语言模型的出现,在各个领域展现了类似人类的理解和生成能力,强调了指令调整对于使这些模型能够更好地理解人类指令的重要性。 目前,已有多种基于教学数据进行微调的开源大型语言模型,包括 OPT[Zhang 等人, 2022]、BLOOM[Workshop 等人, 2022] 、LLaMA[Touvron 等人, 2023] 和 GLM[Zeng 等人, 2023] 这些模型在一系列语言任务上表现出了卓越的性能,从而强调了指令调优在增强语言模型性能方面的潜在好处。

在模型训练领域,两种广泛使用的方法是全参数微调和参数高效调整。 Recently, researchers have conducted extensive experiments to compare the effectiveness of various parameter-efficient tuning methods such as Adapters [Houlsby et al., 2019, Lin et al., 2020], LoRA [Hu et al., 2022], and P-tuning [Li and Liang, 2021, Lester et al., 2021, Liu et al., 2021] against full-parameter fine-tuning [Ding et al., 2023]. 这些实验结果表明,LoRA 是一种很有前途的参数高效调优方法,并已应用于大型语言模型的许多研究中,并取得了显着的成功[Stanford, 2023, Xu 等人, 2023]

然而,LoRA 在微调指令跟随模型方面的有效性和效率尚未得到很好的探索。 在本文中,我们研究了两个因素的影响:基础模型和训练数据规模。 此外,我们还从模型性能和训练效率的角度对LoRA与全参数微调进行了比较。 我们在由 1,000 个样本组成的评估集上评估了这些模型,涵盖 9 个真实用例。 最终我们得到了以下重要的实验结果:

  • 基础模型的选择对基于 LoRA 的调优效果有重大影响。

  • 增加训练数据量可以不断提高模型的有效性

  • 基于 LoRA 的调整受益于模型参数的数量

我们希望本文的实验结论能够为训练大型语言模型,特别是中文领域的模型提供启发,帮助研究人员在训练成本和模型性能之间找到更好的权衡策略。

2相关工作

2.1 指令调优

最近的研究[Chowdhery 等人, 2022, Zhuang 等人, 2022]发现,通过人工注释提示对数据集上的模型进行微调(称为指令调优),模型可以通过以下方式执行新任务:理解任务指令,从而提高他们对未见过的任务的零样本和少样本泛化能力。 早期的研究主要集中在对通用 NLP 任务求解器进行指令调优,并且有一种趋势是将越来越多的 NLP 数据集转换为统一的数据集,然后进行多任务训练 [Xu 等人, 2022, Xie 等人, 2022 , 王等人, 2022, Khashabi 等人, 2020, 敏等人, 2021, 叶等人, 2021, 刘等人, 2019, 钟等人, 2021, 钟等人, 2022] 一些研究工作甚至采用基于人类反馈的强化学习(RLHF)策略来使模型更加遵循人类指令。[Ouyang 等人, 2022, Bai 等人, 2022, Ziegler 等人, 2020, Stiennon 等人, 2022, Nakano 等人, 2022, Korbak 等人, 2023] 今天,指令调优已经完成对自然语言处理(NLP)领域产生了深远的影响。 ChatGPT[OpenAI, 2023a] 和 GPT-4[OpenAI, 2023b] 等技术的出现吸引了更多研究人员从事指令调优的开发。 相对于英文指令数据,目前针对中文指令数据的指令调优研究较少,这在一定程度上阻碍了中文领域大语言模型的发展。

2.2 参数高效调优

随着模型大小不断增加,微调所有参数变得更具挑战性,因为有必要保存所有参数的梯度和优化器状态。 因此,研究人员提出了参数高效调优,一种低资源且高效的调优方法,仅调整少量参数或引入额外的可训练参数。 前缀调优[Lester 等人, 2021, Li and Liang, 2021, Liu 等人, 2021] 添加可训练的虚拟词符嵌入并修复整个模型。 适配器[Houlsby 等人, 2019, Lin 等人, 2020] 在神经网络中的现有层之间插入适配器层,并且仅微调适配器网络的参数。

[Aghajanyan 等人, 2020] 表明,学习到的过度参数化模型实际上存在于较低的内在维度上。 [Hu 等人, 2022] 受这项工作的启发,提出了 LoRA 方法,该方法表明下游任务的模型适应过程中的权重更新也应该具有较低的“内在等级”。 [Ding等人, 2023]的实验结果表明,LoRA是各种参数高效调整方法中相对有效的方法。 它已被许多近期开源项目[Stanford, 2023, Xu 等人, 2023]用于训练大型语言模型,并取得了可喜的结果。 这些研究工作仅将LoRA视为训练模型的一种方法,并没有深入分析影响基于LoRA的调优结果的因素。

3方法

本节我们将简要介绍 LoRA(低秩自适应)[Hu 等人, 2022]

对于预训练的权重矩阵W0Rd×k,其更新可以用低秩分解来表示:

W0+ΔW=W0+BA (1)

其中 BRd×rARr×k 和排名 rmin(d,k) 对于线性层h=W0x,前向传播被修改为:

h=W0x+ΔWx=W0x+BAx (2)

矩阵 A 将由随机高斯初始化,B 将由零初始化,使得 ΔW=BA 的初始值在训练开始时为零。 [Hu 等人, 2022] 仅调整下游任务的注意力权重并冻结 MLP 模块,我们遵循 Baize[Xu 等人, 2023] 应用 LoRA 进行调整同时所有线性层。

4实验

我们采用了之前工作中构建的数据集[Ji等人, 2023b],分别选择了0.6M、2M和4M三个数据规模。 结合这三个数据集,我们旨在研究不同训练数据大小对基于 LoRA 的调优性能的影响。 为了验证指令调优后对模型进行基于LoRA的调优是否能够进一步提升模型性能,我们还选择了math_0.25M数据集,这是一个专注于数学问题解决领域的数据集。

评估集由 1000 个经过严格人工筛选和处理的数据条目组成,涵盖九个类别,包括翻译、开放 QA、封闭 QA、生成以及与实际应用密切相关的其他任务。 1展示了评估集每个类别的样本数量,图1展示了评估样本的长度。 Other 类别包含两种类型的数据:math 和 code,其中 math 指解决数学应用问题,code 指代码生成

表格1: 各类指令的条数及平均提示长度
Use case #Nums
Others 113
Open QA 285
Brainstorming 179
Classification 65
Generation 98
Summarization 40
Rewrite 131
Closed QA 52
Extract 37
Refer to caption
图1: (a) 显示指令的平均长度,(b) 显示黄金响应的平均长度。

4.1模型设置

在本研究中,我们选择 LLaMA[Touvron 等人, 2023] 作为我们的基础实验模型。 LLaMA由Meta AI发布,是一个大规模语言模型的集合,具有四种不同的参数尺度:7B、13B、33B和65B。 LLaMA 模型的性能非常出色,经验证据表明 LLaMA-13B 在参数规模仅为 1/10 的情况下,在大多数情况下都优于 GPT-3 (175B)[Brown 等人, 2020]基准评估。 在本文中,我们选择 LLaMA-7B 和 LLaMA-13B 作为我们的基础实验模型。

表2: 全参数微调的超参数设置
Hyper parameter Value
Precision bf16
Epochs 3
Batch size 32
Learning rate 5e-6
Warmup ratio 0.03
LR scheduler type cosine
Max length 1024

对于全参数微调实验,表2列出了微调的超参数。

对于LoRA实验,我们遵循[Xu等人, 2023]中的超参数,将LoRA中的等级设置为8,并应用LoRA来适应注意力权重和所有线性层,更多细节参见列于表3中。 该实验在 8 个 NVIDIA A100-40GB GPU 上进行。

表3: 基于LoRA调优的超参数设置
Hyper parameter Value
Precision fp16
Epochs 4
Batch size 128
Learning rate 2e-4
Warmup steps 100
LR scheduler type cosine
Max length 1024
表 4: 主要结果。 在此表中,LLaMA-13B + LoRA(2M) 表示使用 LLaMA-13B 作为基础模型和 LoRA 训练方法在 2M 指令数据上训练的模型,LLaMA-7B + FT(2M) 表示使用全参数精细训练的模型-调整。 LLaMA-7B + FT(2M) + LoRA(math_0.25M) 表示使用 LLaMA-7B + FT(2M) 作为基础模型和 LoRA 训练方法在 0.25M 数学指令数据上训练的模型,LLaMA-7B + FT( 2M) + FT(math_0.25M) 表示使用增量全参数微调训练的模型。 关于训练时间,所有这些实验都是在 8 个 NVIDIA A100-40GB GPU 上进行的。
Model Average Score Additional Param. Training Time (Hour/epoch)
LLaMA-13B + LoRA(2M) 0.648 28M 10
LLaMA-7B + LoRA(4M) 0.624 17.9M 14
LLaMA-7B + LoRA(2M) 0.609 17.9M 7
LLaMA-7B + LoRA(0.6M) 0.589 17.9M 5
LLaMA-7B + FT(2M) 0.710 - 31
LLaMA-7B + FT(0.6M) 0.686 - 17
LLaMA-7B + FT(2M) + LoRA(math_0.25M) 0.729 17.9M 2
LLaMA-7B + FT(2M) + FT(math_0.25M) 0.738 - 4

4.2指标

ChatGPT 被要求评估指令跟踪模型生成的响应。 对于所有指令,ChatGPT 给出 0 到 1 之间的分数,其中 0 分是最差的,1 分是最好的。 为了减少随机性,我们将模型生成的温度设置为0.001。 评估是在2023年4月15日调用gpt-3.5-turbo API实现的。 我们计算每个任务类别的模型分数,并使用这些类别的宏观平均值得出其在评估集上的整体表现。

鉴于 ChatGPT 在评估数学和编码任务方面的局限性,我们计算包括所有类别的分数(表示为average_score)。 每个任务类别的详细分数可以在附录中找到。

4.3 LoRA 调优的基础模型和数据集规模的比较

首先,我们设计了一个实验来比较基于 LoRA 的指令调优在不同大小的指令数据集上的性能。 我们选择了0.6M、2M和4M的数据集,实验结果如表4所示。 从结果中可以看出,与大多数学习任务类似,随着数据集大小的增加,基于 LoRA 的指令调优模型在指令理解方面表现出更好的性能。

此外,我们还比较了不同基础模型(LLaMA-7B和LLaMA-13B)对性能的影响。 可以看出,参数数量较多的基础模型带来了性能的显着提升。 以LLaMA-7B+LoRA(2M)为基础,从7B改为13B相比从2M改为4M带来了更大的性能提升。

在训练时间方面,也可以看出LLaMA-13B+LoRA(2M)比LLaMA-7B+LoRA(4M)有一定的优势。 用更少的训练时间取得了更好的训练结果。 但需要注意的是,在使用这两个模型进行推理时,基于LLaMA-7B的模型由于其全局参数数量较少,因此在推理速度和成本方面具有优势。

4.4全参数微调与基于LoRA的微调对比

基于 LoRA 的模型的性能与全参数微调相比如何? 作为对比,我们在0.6M和2M的指令训练数据上使用全参数微调训练了两个模型,结果如表4所示,即LLaMA-7B + FT (0.6M) 和 LLaMA-7B + FT(2M)。 可以看出,全参数微调带来了更好的实验结果。

一种直观的理解或分析是,预训练的大语言模型是为了生成下一个单词而训练的,需要更复杂的学习任务才能切换到指令跟随。 LoRA的学习方法只能改变相对较少的参数,这比改变所有参数更具挑战性。

当然,世界上没有免费的午餐。 与LoRA微调相比,使用全参数微调需要大约3-5倍的时间成本才能完成训练。

4.5 对指定任务进行LoRA调优

根据我们的评估(详见附录),我们的模型在数学任务上表现不佳,得分大多低于 0.5。 为了验证LoRA对特定任务的适应能力,我们使用增量0.25M数学数据集(math_0.25M)来适应指令跟随大语言模型(我们选择LLaMA-7B + FT(2M)作为基础模型)。

作为比较,我们使用学习率为 5e-7 的增量微调并训练 2 个 epoch。 这样我们就得到了两个模型,一个是LLaMA-7B + FT(2M) + LoRA(math_0.25M),另一个是LLaMA-7B + FT(2M) + FT(math_0.25M)。

从实验结果可以看出,增量微调仍然表现出更好的性能,但需要更长的训练时间。 LoRA 和增量微调都提高了模型的整体性能。 从附录中的详细数据来看,LoRA 和增量微调都显示出数学任务的显着改进,而仅导致其他任务的性能略有下降。 具体来说,数学任务表现分别提高到 0.586 和 0.559。

4.6讨论与结论

在本文中,我们使用 LLaMA 作为基础模型,对全参数微调和基于 LoRA 的微调方法进行了实验比较。 我们还探讨了不同数量的训练数据和模型参数对基于 LoRA 的调优有效性的影响。 从实验结果比较中,可以观察到一些有趣的想法:

1)基础模型的选择对基于LoRA的调优效果有显着影响。 比较LLaMA-7B+LoRA(0.6M)和LLaMA-7B+FT(0.6M),以及LLaMA-7B+LoRA(2M)和LLaMA-7B+FT(2M),很明显基于LoRA的调谐在没有经过指令调优的基础模型上,效果有限,远不如全参数微调效果(平均低10个点)。 然而,通过比较 LLaMA-7B+FT(2M)+FT(math_0.25M) 和 LLaMA-7B+FT(2M)+LoRA(math_0.25M),可以看出基于 LoRA 的模型调优具有经过指令调优可以达到与微调相当的结果。 这表明基础模型的选择对于基于 LoRA 的调优方法的有效性至关重要。

2)增加训练数据量可以不断提高模型的有效性。 对比LLaMA-7B+LoRA(0.6M)、LLaMA-7B+LoRA(2M)、LLaMA-7B+LoRA(4M)可以看出,随着训练数据量的增加,模型的有效性不断提高(平均提高约2分)每增加一倍数据就有改进)。

3)基于LoRA的调优受益于模型参数的数量。 比较LLaMA-7B+LoRA(4M)和LLaMA-13B+LoRA(2M)表明,模型参数的数量对基于LoRA的调优效果的影响比训练数据量的影响更大。

参考

  • [Aghajanyan et al., 2020] Armen Aghajanyan, Luke Zettlemoyer, and Sonal Gupta. 2020. Intrinsic dimensionality explains the effectiveness of language model fine-tuning, December.
  • [Bai et al., 2022] Yuntao Bai, Saurav Kadavath, Sandipan Kundu, et al. 2022. Constitutional ai: Harmlessness from ai feedback, December.
  • [Brown et al., 2020] Tom B. Brown, Benjamin Mann, Nick Ryder, et al. 2020. Language models are few-shot learners, July.
  • [Chowdhery et al., 2022] Aakanksha Chowdhery, Sharan Narang, Jacob Devlin, et al. 2022. Palm: Scaling language modeling with pathways, October.
  • [Chung et al., 2022] Hyung Won Chung, Le Hou, Shayne Longpre, et al. 2022. Scaling instruction-finetuned language models, October.
  • [Ding et al., 2023] Ning Ding, Yujia Qin, Guang Yang, et al. 2023. Parameter-efficient fine-tuning of large-scale pre-trained language models, March.
  • [Houlsby et al., 2019] Neil Houlsby, Andrei Giurgiu, Stanislaw Jastrzebski, et al. 2019. Parameter-efficient transfer learning for nlp, June.
  • [Hu et al., 2022] Edward Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. 2022. Lora: Low-rank adaptation of large language models, June.
  • [Ji et al., 2023b] Yunjie Ji, Yong Deng, Yan Gong, Yiping Peng, Qiang Niu, Lei Zhang, Baochang Ma, and Xiangang Li. 2023b. Exploring the impact of instruction data scaling on large language models: An empirical study on real-world use cases, March.
  • [Khashabi et al., 2020] Daniel Khashabi, Sewon Min, Tushar Khot, Ashish Sabharwal, Oyvind Tafjord, Peter Clark, and Hannaneh Hajishirzi. 2020. Unifiedqa: Crossing format boundaries with a single qa system. arXiv preprint arXiv:2005.00700.
  • [Korbak et al., 2023] Tomasz Korbak, Kejian Shi, Angelica Chen, et al. 2023. Pretraining language models with human preferences, February.
  • [Lester et al., 2021] Brian Lester, Rami Al-Rfou, and Noah Constant. 2021. The power of scale for parameter-efficient prompt tuning, April.
  • [Li and Liang, 2021] Xiang Lisa Li and Percy Liang. 2021. Prefix-tuning: Optimizing continuous prompts for generation, January.
  • [Lin et al., 2020] Zhaojiang Lin, Andrea Madotto, and Pascale Fung. 2020. Exploring versatile generative language model via parameter-efficient transfer learning. In Findings of the Association for Computational Linguistics: EMNLP.
  • [Liu et al., 2019] Xiaodong Liu, Pengcheng He, Weizhu Chen, and Jianfeng Gao. 2019. Multi-task deep neural networks for natural language understanding. arXiv preprint arXiv:1901.11504.
  • [Liu et al., 2021] Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, et al. 2021. Gpt understands, too.
  • [Min et al., 2021] Sewon Min, Mike Lewis, Luke Zettlemoyer, and Hannaneh Hajishirzi. 2021. Metaicl: Learning to learn in context. arXiv preprint arXiv:2110.15943.
  • [Nakano et al., 2022] Reiichiro Nakano, Jacob Hilton, Suchir Balaji, et al. 2022. Webgpt: Browser-assisted question-answering with human feedback, June.
  • [OpenAI, 2023a] OpenAI. 2023a. Chatgpt: Optimizing language models for dialogue.
  • [OpenAI, 2023b] OpenAI. 2023b. Gpt-4 technical report.
  • [Ouyang et al., 2022] Long Ouyang, Jeff Wu, Xu Jiang, et al. 2022. Training language models to follow instructions with human feedback, March.
  • [Stanford, 2023] Stanford. 2023. Alpaca-lora.
  • [Stiennon et al., 2022] Nisan Stiennon, Long Ouyang, Jeff Wu, et al. 2022. Learning to summarize from human feedback, February.
  • [Touvron et al., 2023] Hugo Touvron, Thibaut Lavril, Gautier Izacard, et al. 2023. Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971.
  • [Wang et al., 2022] Yizhong Wang, Swaroop Mishra, Pegah Alipoormolabashi, Yeganeh Kordi, Amirreza Mirzaei, Atharva Naik, Arjun Ashok, Arut Selvan Dhanasekaran, Anjana Arunkumar, David Stap, et al. 2022. Super-naturalinstructions: Generalization via declarative instructions on 1600+ nlp tasks. In Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing, pages 5085–5109.
  • [Workshop et al., 2022] BigScience Workshop, Teven Le Scao, Angela Fan, et al. 2022. Bloom: A 176b-parameter open-access multilingual language model, December.
  • [Xie et al., 2022] Tianbao Xie, Chen Henry Wu, Peng Shi, Ruiqi Zhong, Torsten Scholak, Michihiro Yasunaga, Chien-Sheng Wu, Ming Zhong, Pengcheng Yin, Sida I Wang, et al. 2022. Unifiedskg: Unifying and multi-tasking structured knowledge grounding with text-to-text language models. arXiv preprint arXiv:2201.05966.
  • [Xu et al., 2022] Hanwei Xu, Yujun Chen, Yulun Du, Nan Shao, Yanggang Wang, Haiyu Li, and Zhilin Yang. 2022. Zeroprompt: Scaling prompt-based pretraining to 1,000 tasks improves zero-shot generalization. arXiv preprint arXiv:2201.06910.
  • [Xu et al., 2023] Canwen Xu, Daya Guo, Nan Duan, and Julian McAuley. 2023. Baize: An open-source chat model with parameter-efficient tuning on self-chat data, April.
  • [Ye et al., 2021] Qinyuan Ye, Bill Yuchen Lin, and Xiang Ren. 2021. Crossfit: A few-shot learning challenge for cross-task generalization in nlp. arXiv preprint arXiv:2104.08835.
  • [Zeng et al., 2023] Aohan Zeng, Xiao Liu, Zhengxiao Du, Zihan Wang, Hanyu Lai, Ming Ding, Zhuoyi Yang, Yifan Xu, Wendi Zheng, Xiao Xia, Weng Lam Tam, Zixuan Ma, Yufei Xue, Jidong Zhai, Wenguang Chen, Zhiyuan Liu, Peng Zhang, Yuxiao Dong, and Jie Tang. 2023. GLM-130b: An open bilingual pre-trained model. In The Eleventh International Conference on Learning Representations (ICLR).
  • [Zhang et al., 2022] Susan Zhang, Stephen Roller, Naman Goyal, et al. 2022. Opt: Open pre-trained transformer language models, June.
  • [Zhong et al., 2021] Ruiqi Zhong, Kristy Lee, Zheng Zhang, and Dan Klein. 2021. Adapting language models for zero-shot learning by meta-tuning on dataset and prompt collections. arXiv preprint arXiv:2104.04670.
  • [Ziegler et al., 2020] Daniel M. Ziegler, Nisan Stiennon, Jeffrey Wu, et al. 2020. Fine-tuning language models from human preferences, January.

5 附录 A

5.1详细评估分数

表 5: 每个任务类别的详细分数。
Model Training data others rewrite classif- ication generation summari- zation extract open qa brain- storming closed qa macro ave
LLaMA-7B+ LoRA 0.6M 0.358 0.719 0.695 0.816 0.65 0.448 0.315 0.793 0.51 0.589
LLaMA-7B+ LoRA 2M 0.364 0.795 0.676 0.854 0.617 0.472 0.369 0.808 0.531 0.61
LLaMA-7B+ LoRA 4M 0.341 0.821 0.677 0.847 0.645 0.467 0.374 0.806 0.639 0.624
LLaMA-13B+ LoRA 2M 0.422 0.810 0.696 0.837 0.700 0.537 0.435 0.823 0.577 0.648
LLaMA-7B+ FT 0.6M 0.438 0.869 0.698 0.917 0.701 0.592 0.477 0.870 0.606 0.686
LLaMA-7B+ FT 2M 0.399 0.871 0.775 0.920 0.734 0.603 0.555 0.900 0.633 0.710
LLaMA-7B + FT(2M) + LoRA math0.25M 0.560 0.863 0.758 0.915 0.754 0.651 0.518 0.886 0.656 0.729
LLaMA-7B + FT(2M) + FT math0.25M 0.586 0.887 0.763 0.955 0.749 0.658 0.523 0.872 0.652 0.738