大模型的参数微调笔记
CCL 2023
刘知远
视频:【CCL 2023 | 国际前沿动态综述 | 大模型的参数高效微调(刘知远,清华大学)】 https://www.bilibili.com/video/BV11N4y1D7Dc/?share_source=copy_web&vd_source=0e8d9cbf95992afd32a4a036e31106ab
微调是大模型适配到各个场景各个任务的非常关键的技术。
模型变的越来越大,更大的参数量和更多的计算量带来了更低的预训练损失和更好的下游任务表现。
模型参数规模急剧增加,给模型微调带来挑战。
Bert时代
预训练模型在特定任务上使用特定任务的全量数据来进行全参数的微调。
面临缺少任务之间的泛化的能力。
在模型变的更大后,利用下游数据标注进行全参数微调的计算复杂度和存储空间都是无法接受的。
在大模型时代,模型的微调应该具备少参数、少数据、强任务的泛化能力。
目前三种主流的微调范式:
-
少量数据上的提示微调(数据高效)
GPT-3具备强大的零次/少次学习能力。即不更新参数,仅输入任务描述与示例,就让模型具备完成任务的能力。给模型展示少量数据就能掌握新能力,学习能力强弱与参数规模正相关。
人工的去设计提示模板,争取将所有不同的任务都转化为一个语言建模的任务,能够比较的有效的消除预训练和微调任务形式上的差距。
-
少量参数上的增量微调(参数高效)
大模型特性:当模型规模特别大,到10亿百亿千亿。当我们想把大模型适配到某个下游的特定任务时,不需要对模型所有参数更新。可以保持模型大部分模型的参数不变,只更新极少数参数。这个极少数参数往往不到1%。就可以实现大模型对下游任务的适配。这种方法可以极大的降低模型的计算和存储的成本。
验证了百亿级别以上的基础模型,任意优化其不同部位的小参数,都可以达到一个全参数微调的效果。证明了大模型参数高效微调的特性。
参数高效微调:通过新增到模型的参数(添加式方法)、指定模型内的某一些参数(指定式)、或者重参数化完成微调。
工具包 open delta
-
多种任务上的指令微调
选定已经存在的自然语言处理的任务,人类去标注多样化的不同的自然语言的指令。通过编写指定让语言学会执行和泛化各种各样的自然语言的指定,可以极大的增强模型的泛化能力和对用户的理解的能力。在对话的场景下,指定微调可以非常好的让模型去理解用户通过自然语言所发出来的指令背后的意图,到底是完成什么任务,让模型有针对性的去完成。指令微调非常大的增强了一个基础模型自然语言交互的能力。
instruct GPT 用真实用户的指令进行微调和开展相应的工作。
技术上就是相当于对模型的某种训练,提供相应的训练数据。是对话模型的非常重要的环节。
关键在于构建覆盖度广的高质量数据。