期刊🔗:https://www.nature.com/natmachintell/volumes/5/issues/3
OpenBMB 团队研究成果“面向大规模预训练语言模型的参数高效微调”(Parameter-efficient Fine-tuning of Large-scale Pre-trained Language Models)于 3月 2日在《自然·机器智能》(Nature Machine Intelligence)上发表。该期刊于3月23日出版,我们的成果被精选为本期的封面文章:
论文共同第一作者丁宁、秦禹嘉和通讯作者刘知远、孙茂松均为OpenBMB开源社区的主要成员。该研究成果得到了科技部科技创新2030“新一代人工智能”重大项目、国家自然科学基金、北京智源人工智能研究院、清华大学国强研究院的支持。
➤ DeltaTuning 论文链接
🔗 https://www.nature.com/articles/s42256-023-00626-4
➤ OpenDelta 工具包源码
🔗 https://github.com/thunlp/OpenDelta
DeltaTuning 的提出背景
—
2018年预训练语言模型(PLM)横空出世,目前“预训练-微调”方法已成为NLP任务的主流范式。在这个新范式下,我们可以利用大规模无标注数据通过自监督学习预训练语言大模型,得到基础模型,再利用下游任务的有标注数据进行有监督学习微调模型参数,实现下游任务的适配。最近爆火的ChatGPT就是大模型的代表,越来越多的实验和实践表明:规模越大的模型不仅在已知任务上有着更好的表现,同时展现出完成更复杂的未知任务的强大泛化能力。
传统深度学习范式 vs 大模型“预训练-微调”范式
然而,更大的模型也在应用上面临着更大的挑战,传统方法对超大规模的预训练模型进行全参数微调的过程会消耗大量的GPU计算资源与存储资源,巨大的成本令人望而却步。论文统计选取了1000篇来自最近五个NLP会议的论文,发现尽管预训练模型已经成为了主流范式,但涉及大模型的论文却寥寥无几。
为了应对该挑战,参数高效微调(Parameter-efficient Fine-tuning)方法逐渐受到关注。与全参数微调相比,参数高效微调方法冻结预训练模型99%以上的参数,仅利用少量下游任务数据微调少于1%模型规模的参数,作为模型插件实现大模型对下游任务的适配,达到媲美全参数微调的性能,并显著降了微调过程的计算和存储开销。
DeltaTuning:方法与分析
我们的研究提出,参数高效微调方法的本质是在对“增量参数”(Delta Parameters)进行调整,因此将此类方法命名为“增量微调”(Delta Tuning),其中“delta”是一个经常用于表示变化的数学符号,被借用来指在训练中“改变”的参数部分。研究基于统一的分析框架对增量微调现有方法进行梳理总结,将现有方法分为三类:添加式(Addition-based)、指定式(Specification-based)和重参数化(Reparameterization-based)方法。为了指导后续的模型架构和算法设计,研究还进一步从参数优化和最优控制两个角度,提出了增量微调的理论框架,为探索和解释增量微调的内在机理提供了可行方案。
Delta Tuning 的划分框架
DeltaTuning 的理论视角
Delta Tuning本质上是否有共通之处?我们认为,Delta Tuning方法不仅具有很高的实用价值,更具有深远的理论意义,它们似乎都在不约而同地证明一件事情:即大模型的适配过程似乎是一个非常低消耗的过程(相比于预训练),它可以通过非常少的数据和非常少的参数调整来完成。Delta Tuning的成功启发我们去进一步地探索模型适配背后的理论框架,本文提出了优化和最优控制两个视角的框架去对Delta Tuning进行理论层面的阐释。
从优化角度,我们分析Delta Tuning的效果并讨论了在低维假设下的一些Delta Tuning方法的设计。使用Delta Tuning后,目标函数及其所依赖的参数都可能会发生改变。对新的目标函数,仅优化其与Delta Tuning有关的参数,如果初值足够好,在一定假设意义下模型的性能不会有大的损害。但是为了确保Delta Tuning的有效性,有必要去开发问题的结构来设计这个新的目标函数。其出发点是利用问题内在的低维特性。一般而言,在实践中有两种思路被证明是有用的:一,在特定的低维的子空间内寻找解向量;二,在特定的低维的函数空间内近似目标函数。从最优控制角度,基于以往的从最优控制角度解释深度学习的理论,我们揭示了Delta Tuning可以看作寻找最优控制器的过程。
我们的分析可以启发新颖的Delta Tuning方法的设计,我们还证明了Delta参数 对 PLM 的干预等同于控制器的设计。通过应用控制器设计 的理论,我们期望提出更多具有理论保证的 Delta Tuning 方法,即设计的 delta 结构在充分激发PLM的情况下具有原则上的可解释性。
DeltaTuning:全方位的实验分析
我们选择了超过100个自然语言处理任务,对主流增量微调方法进行了全面细致的性能比较和分析,得出多项重要结论,例如:
(1)基础模型随着参数规模的不断增大,在性能显著提高的同时,不同增量微调方法的差异急剧减少,最少仅需要优化万分之八的模型参数即可完成适配;
随着基础模型参数规模的增大,增量微调方法可以更有效地激发模型性能
(2)不同增量微调方法可以进行并行或者串行的组合从而达到更优的性能,表明了分布在模型参数空间中的智能能力可以进行组合和泛化;
(3)增量微调方法具备良好的任务级别的迁移能力,完成特定任务的“能力”可以表示为轻量级参数化的形式,可以在不同基础模型和不同用户之间共享。
以上研究表明,增量微调是基础模型的重要特性,上述结论将加深对基础模型的认识,为其创新研究与应用提供重要支撑。
DeltaTuning 的应用
快速训练与存储空间节省。Transformer 模型虽然本质上是可并行化的,但由于其庞大的规模,训练起来非常缓慢。尽管 Delta Tuning 的收敛速度可能比传统的全参数微调慢,但随着反向传播期间可微调参数的计算量显著减少,Delta Tuning 的训练速度也得到了显著提升。前人工作已经验证了,使用 Adapter 进行下游调优可以将训练时间减少到 40%,同时保持与全参数微调相当的性能。由于轻量的特性,训练得到的 Delta 参数还可以节省存储空间,从而方便在从业者之间共享,促进知识迁移。
多任务学习。构建通用的人工智能系统一直是研究人员的目标。最近,超大型 PLM (例如 GPT-3) 已经展示了同时拟合不同数据分布和促进各种任务的下游性能的惊人能力。因此,在大规模预训练时代,多任务学习受到越来越多的关注。作为全参数微调方法的有效替代,Delta Tuning 具有出色的多任务学习能力,同时保持相对较低的额外存储。成功的应用包括多语言学习、阅读理解等。此外,Delta Tuning也有望作为持续学习中灾难性遗忘的潜在解决方案。
中心化模型服务和并行计算。超大型 PLM 通常作为服务发布,即用户通过与模型提供者公布的 API 交互来使用大模型,而不是本地存储大模型。考虑到用户和服务提供商之间难以承受的通信成本,由于其轻量级的特性,Delta Tuning 显然是比传统全参数微调更具竞争力的选择。一方面,服务提供商可以支持训练多个用户所需的下游任务,同时消耗更少的计算和存储空间。此外,考虑到一些 Delta Tuning 算法本质上是可并行的(例如 Prompt Tuning 和 Prefix-Tuning等),因此 Delta Tuning 可以允许在同一个 batch 中并行训练/测试来自多个用户的样本(In-batch Parallel Computing)。最近的工作还表明,大多数 Delta Tuning 方法,如果本质上不能并行化,也可以通过一些方法修改以支持并行计算。另一方面,当中心的达模型的梯度对用户不可用时,Delta Tuning 仍然能够通过无梯度的黑盒算法,仅调用模型推理 API 来优化大型 PLM。
发表Nature背后的产学研之路
探索、开源与落地
我们基于该论文成果研制发布了开源工具包 OpenDelta,是 OpenBMB 开源社区的重要组成部分,可支持研究者和开发者灵活高效地在各类预训练模型上实现和应用增量微调方法。团队认为,增量微调技术将是基础模型适配特定任务、场景和用户的重要范式,可更有效地激发以ChatGPT为代表的大规模预训练模型的性能。
团队自2018年以来坚持开展语言大模型创新研究,并坚持建设OpenBMB开源社区,致力于构建大规模预训练模型全流程高效计算工具体系,相关工作在全球最大的开源社区GitHub上累计获得超过4000星标关注,曾获自然语言处理领域著名国际会议 ACL 2022 最佳系统演示论文奖等荣誉。
面壁智能、THUNLP与OpenBMB共建的大模型产学研体系
OpenBMB开源社区上接顶尖高校学术研究力量(清华大学自然语言处理与社会人文计算实验室),下通人工智能大模型技术创新与应用落地公司(北京面壁智能),成功搭建业界需求、算法开源和产业落地三者的闭环“产学研”通道。我们矢志不渝致力于大模型的前沿研究、应用研发和产业发展。
打造卓越的国产大模型,路漫漫其修远,我们将不断上下求索。感谢你对我们的关注,也欢迎未来你的参与,让我们一同为建设中国大模型生态添砖加瓦。
➤ OpenBMB 项目地址
➤ DeltaTuning 论文链接
🔗 https://www.nature.com/articles/s42256-023-00626-4
➤ OpenDelta 工具包源码
🔗 https://github.com/thunlp/OpenDelta
➤ 加社群/ 提建议/ 有疑问
https://www.openbmb.org
技术文章
CPM-Ant 训练完成 | BMInf 适配GLM-130B
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢