1、预训练语言模型知识继承秦禹嘉 清华大学 博士研究生|01预训练模型趋势02基于参数复用的预训练加速03基于知识蒸馏的预训练加速04总结与展望目录CONTENT|个人介绍|清华大学计算机系 直博二年级 秦禹嘉本科毕业于清华大学电子工程系研究方向:预训练语言模型|01预训练模型趋势预训练模型趋势|预训练(Pre-training)+下游任务微调(Fine-tuning)成为 NLP 任务的基本范式下游任务带标注数据测试数据微调Fine-tuning模型Model预训练Pre-training规模标注语料预训练模型趋势|尽管在探索各种预训练技术和模型架构方面做出了巨大的努力,研究人员发现,简单地扩大
2、模型容量、数据大小和训练时间可以显著提升模型性能ELMoULMFiTBERTTransformerGPTBidirectional LMGPT-2Larger modelMore dataGroverDefenseERNIE(Tsinghua)KnowBertSentiLRKEPLERLIBERTERNIE(Baidu)BERT-wwmMacBERT+KnowledgeVideoBERTCBTViLBERTVisualBERTB2T2Unicoder-VLLXMERTVL-BERTUNITERCross-modalXLNetMASSUniLMXLMUdifyUnicoderRoBERTaPer
3、mutation LMTransformer-XLMore data+GenerationLonger timeRemove NSPMore dataCross-lingualMT-DNNMulti-taskMT-DN!#Knowledge DistillationSpanBERTSpan predictionRemove NSPChineseMultiFiTMulti-lingualSemi-supervised Sequence Learningcontext2VecPre-trained seq2seqSpecific Domain BioBERTSciBERTClinicalBERTS
4、toryGPTGPT-3预训练模型趋势|然而更多的模型参数也意味着更昂贵的计算资源、训练成本OrganizationModelParameterDataTime2018.6OpenAIGPT110M4GB3 Day2018.10GoogleBERT330M16GB50 Day2019.2OpenAIGPT-21.5B40GB200 Day2019.7FacebookRoBERTa330M160GB3 Year2019.10GoogleT511B800GB66 Year2020.6OpenAIGPT-3175B560GB90 Year研究问题|现有的 PLM 通常是从零开始单独训练的,而忽略了许
5、多已训练的可用模型问题:如何利用已有的 PLM 辅助训练更大的 PLM?考虑到人类可以利用前人总结的知识来学习新任务;同样我们可以让大模型复用(继承)已有小模型中的隐式知识,从而加速大模型的训练预训练语言模型知识继承框架|为减少预训练计算消耗,我们提出知识继承框架,充分利用现有小模型消耗的算力继承小模型能力自主知识学习大模型小模型实力更强的大模型1.基于知识蒸馏的方法2.基于参数复用的方法|02基于知识蒸馏的知识继承基于知识蒸馏的知识继承|我们提出在大模型预训练初期,让现有小模型作为大模型的“老师”,将小模型的隐式知识“反向蒸馏”给大模型从而复用现有小模型的能力,减少大模型预训练计算消耗 11
6、 Knowledge Inheritance for Pre-trained Language Models.NAACL 2022(oral).Yujia Qin,Yankai Lin,Jing Yi,JiajieZhang,Xu Han,Zhengyan Zhang,Yusheng Su,Zhiyuan Liu,Peng Li,Maosong Sun,Jie Zhou继承小模型能力自主知识学习大模型小模型“反向蒸馏”实力更强的大模型基于知识蒸馏的知识继承|基于知识蒸馏的知识继承框架利用小模型!的知识训练大模型 知识继承系数#的动态调整(当学生超越老师,停止向老师“学习”)反向蒸馏自主学习基于
7、知识蒸馏的知识继承|实验证明在知识继承框架下训练的大模型预训练收敛速度提升37.5%学生模型:RoBERTa!#$%老师模型:RoBERTa&()传统训练范式知识继承框架基于知识蒸馏的知识继承|在知识继承框架下训练的大模型在下游任务上显著超越传统方法基于知识蒸馏的知识继承|上述结论对于其它模型架构(例如GPT)也适用基于知识蒸馏的知识继承|支持多代模型持续知识继承,取得更好的效果G*(125M),G+(211),G,355传统训练方式(*,)两代知识继承(*-+,*-,)三代知识继承(*-+-,)基于知识蒸馏的知识继承|知识继承适配跨领域持续学习,相比传统方法更加训练高效、数据高效+B领域小模
8、型在A领域数据训练的大模型+B领域数据对A、B领域均擅长的大模型|03基于参数复用的知识继承基于参数复用的知识继承|复用小模型参数,初始化大模型参数,利用大模型的高收敛效率Net2Net 1:横向增长+纵向增长,将参数矩阵进行扩展,并且保证原来的函数功能不变1 Chen,Tianqi,Ian Goodfellow,and Jonathon Shlens.Net2net:Accelerating learning via knowledge transfer.arXiv preprint arXiv:1511.05641(2015).基于参数复用的知识继承|Net2Net 模型横向增长:将参数矩
9、阵维度进行扩增,并且保证这个函数的输入输出不变基于参数复用的知识继承|Net2Net 模型纵向增长:增加 Identity Mapping 矩阵缺陷:对于 Transformer 架构实现困难基于参数复用的知识继承|StackingBERT 1:模型纵向增长从 Attention 的分布图像可以看出,不同层的注意力头的Attention分布非常相似,启发不同层之间的参数共享1 Gong,Linyuan,et al.Efficient training of bert by progressively stacking.International conference on machine le
10、arning.PMLR,2019.基于参数复用的知识继承|先训练浅层的BERT,再通过堆叠(层参数拷贝),逐渐提升模型深度基于参数复用的知识继承|更快的训练收敛速度,更好的下游任务效果基于参数复用的知识继承|bert2BERT 1:横向模型增长+纵向模型增长,复用小模型参数1 Chen,Cheng,et al.bert2bert:Towards reusable pretrained language models.ACL 2022基于参数复用的知识继承|横向模型增长:Function Preserving Initialization(FPI),通过对小模型参数矩阵的扩展,生成适配大模型的参
11、数矩阵基于参数复用的知识继承|横向模型增长:Advanced Knowledge Initialization(AKI),在进行参数扩展时不仅考虑当前层的参数,还考虑更高层的参数对当前层进行扩展虽然AKI方法扩展前后输出不变的原则矛盾,但实验表明AKI可以提升收敛速度基于参数复用的知识继承|FPI/API 对比基于参数复用的知识继承|FPI/API 对比基于参数复用的知识继承|纵向模型增长:参考StackingBERT,并引入阶段式训练实验结果:基于参数复用的知识继承|向越大的模型继承知识,训练效果提升越明显逐渐增大的老师模型节省更多的训练资源基于参数复用的知识继承|参数复用方法对多种模型架构
12、(GPT/T5)均有效基于参数复用的知识继承|信息时代各种新数据源源不断出现,这就要求 PLM 能够持续地整合、学习各个来源的知识整合所有信息的一种简单而有效的方法是,每当有新数据出现,就用所有数据从头训练一个预训练模型昂贵的计算成本!基于参数复用的知识继承|持续预训练范式:支持模型持续地学习新知识,同时防止旧知识的遗忘持续预训练范式传统预训练范式基于参数复用的知识继承|为了支持持续预训练,我们提出了ELLE 1 框架,用以支持 PLM 对新来的数据进行高效的持续预训练目标:并不断增长模型的规模,提高模型获取新知识的效率,同时防止旧知识的遗忘1 Qin,Yujia,et al.Elle:Eff
13、icient lifelong pre-training for emerging data.”Findings of ACL 2022基于参数复用的知识继承|持续预训练的两个挑战:高效知识增长:随着数据规模的增长,将更多的知识装载到一个固定大小的模型中变得越来越困难高效知识激发:在预训练期间,来自各个领域的知识被匆忙地装载在模型中,而某个下游任务可能在很大程度上只需要来自某个特定领域的知识基于参数复用的知识继承|ELLE 模型框架Width Expansion!#$%/2#/2&/2&/2$)%*+,-.)Depth Expansion4324321#$!M#$!%
14、&!#Previous Data1!1#$!Pre-trained Domain Prompts!=#%&$!=(%)$!Prompts+!Task 1AcquireKnowledgeTask 2ExposeKnowledgeStimulate Needed KnowledgeDisentanglethe KnowledgeDownstream TasksRaw CorpusAcquire Knowledgeon New DataMemory Replayon Previous Data!copycopy1#1!1#$!M#$!%&Function Recovering Warmup!1!1#
15、$!Task 3ELLE FrameworkWidth+DepthExpansionFunction Preserved Model Expansion基于参数复用的知识继承|模型参数横向/纵向增长横向增长采用 bert2BERT 的FPI方法Width Expansion!#$%/2#/2&/2&/2$)%*+,-.)Depth Expansion4324321#$!M#$!%&!#Previous Data1!1#$!Pre-trained Domain Prompts!=#%&$!=(%)$!Prompts+!Task 1AcquireKnowledgeTask
16、 2ExposeKnowledgeStimulate Needed KnowledgeDisentanglethe KnowledgeDownstream TasksRaw CorpusAcquire Knowledgeon New DataMemory Replayon Previous Data!copycopy1#1!1#$!M#$!%&Function Recovering Warmup!1!1#$!Task 3ELLE FrameworkWidth+DepthExpansionFunction Preserved Model Expansion基于参数复用的知识继承|更加灵活的纵向增
17、长基于参数复用的知识继承|功能恢复性训练(Function Recovering Warmup)防止旧知识遗忘,并为新知识学习做准备基于参数复用的知识继承|新知识学习+旧知识数据回放基于参数复用的知识继承|预植领域提示词(domain prompts)在下游任务学习中准确激发预训练期间学到的知识Width Expansion!#$%/2#/2&/2&/2$)%*+,-.)Depth Expansion4324321#$!M#$!%&!#Previous Data1!1#$!Pre-trained Domain Prompts!=#%&$!=(%)$!Prompts!3
18、*!+!Task 1AcquireKnowledgeTask 2ExposeKnowledgeStimulate Needed KnowledgeDisentanglethe KnowledgeDownstream TasksRaw CorpusAcquire Knowledgeon New DataMemory Replayon Previous Data!copycopy1#1!1#$!M#$!%&Function Recovering Warmup!1!1#$!Task 3ELLE FrameworkWidth+DepthExpansionFunction Preserved Model
19、 Expansion基于参数复用的知识继承|实验设置来自5个 domain 的数据依次出现:Wikipedia,News,Reviews,Biomedical,Computer Science测试GPT+BERT,将参数从30M到125M/125M到355M均匀增长衡量指标:预训练阶段:average perplexity(AP)&averaged increased perplexity(AP+)微调阶段:每个domain对应的下游任务效果基于参数复用的知识继承|实验结果(预训练阶段)基于参数复用的知识继承|实验结果(预训练阶段)基于参数复用的知识继承|实验结果(下游微调阶段)基于参数复用的
20、知识继承|不同阶段的各个规模的模型的 Attention 分布相似|04总结与展望总结与展望|增加model capacity/data size/training steps是近来PLM研究的趋势成功的范例:GPT-3/Switch Transformer/Pangu-等从头训练超大模型消耗大量算力,非常不环保GPT-3 costs 4600,000 dollars to train,at a rough estimate总结与展望|知识继承算法可以很好地加速模型收敛,提升模型性能基于知识蒸馏的方法:+更加灵活,对模型架构要求较低,支持多对一知识继承,不需要得到小模型参数-性能提升不及参数复用基于参数复用的方法:+更好的效果-约束较高(需要得到模型参数),应用场景受限感谢观看|