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 Expansion432432131143214321#$!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 Expansion432432131143214321#$!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 Expansion432432131143214321#$!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總結與展望|知識繼承算法可以很好地加速模型收斂,提升模型性能基于知識蒸餾的方法:+更加靈活,對模型架構要求較低,支持多對一知識繼承,不需要得到小模型參數-性能提升不及參數復用基于參數復用的方法:+更好的效果-約束較高(需要得到模型參數),應用場景受限感謝觀看|