阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架
阿里云開源EasyTransfer:業界首個面向NLP場景深度遷移學習框架
原文鏈接:https://zhuanlan.zhihu.com/p/267392773
機器之心發布,機器之心編輯部。
近日,阿里云正式開源了深度遷移學習框架 EasyTransfer,這是業界首個面向 NLP 場景的深度遷移學習框架。
開源鏈接:https://github.com/alibaba/EasyTransfer
該框架由阿里云機器學習 PAI 團隊研發,讓自然語言處理場景的模型預訓練和遷移學習開發與部署更加簡單和高效。
面向自然語言處理場景的深度遷移學習在現實場景里有巨大的需求,因為大量新的領域不斷涌現,傳統的機器學習需要對每個領域都積累大量訓練數據,這將會耗費大量標注的人力與物力。深度遷移學習技術可以將源領域學到的知識遷移到新的領域的任務,進而大大減少標注的資源。
盡管面向自然語言場景的深度遷移學習有很多的需求,目前開源社區還沒有一個完善的框架,而且構建一個簡單易用且高性能的框架有巨大挑戰。
首先,預訓練模型加知識遷移現在是主流的 NLP 應用模式,通常預訓練模型尺寸越大學習到的知識表征越有效,然而超大的模型給框架的分布式架構帶來了巨大挑戰。如何提供一個高性能的分布式架構,從而有效支持超大規模的模型訓練。
其次,用戶應用場景的多樣性很高,單一的遷移學習算法無法適用,如何提供一個完備的遷移學習工具來提升下游場景的效果。
第三,從算法開發到業務落地通常需要很長的鏈路,如何提供一個簡單易用的從模型訓練到部署的一站式服務。
面對這三大挑戰,PAI 團隊推出了 EasyTransfer,一個簡單易用且高性能的遷移學習框架。框架支持主流的遷移學習算法,支持自動混合精度、編譯優化和高效的分布式數據 / 模型并行策略,適用于工業級的分布式應用場景。
值得一提的是,配合混合精度、編譯優化和分布式策略,EasyTransfer 支持的 ALBERT 模型比社區版的 ALBERT 在分布式訓練的運算速度上快 4 倍多。
同時,經過了阿里內部 10 多個 BU,20 多個業務場景打磨,給 NLP 和遷移學習用戶提供了多種便利,包括業界領先的高性能預訓練工具鏈和預訓練 ModelZoo,豐富易用的 AppZoo,高效的遷移學習算法,以及全面兼容阿里巴巴 PAI 生態產品,給用戶提供一個從模型訓練到部署的一站式服務。
阿里云機器學習 PAI 團隊負責人林偉表示:本次開源 EasyTransfer 代碼,希望把阿里能力賦能給更多的用戶,降低 NLP 的預訓練和知識遷移的門檻,同時也和更多伙伴一起深入合作打造一個簡單,易用,高性能的 NLP 和遷移學習工具。
<img src="https://pic2.zhimg.com/v2-bd7934043d3037fe46d6a47ef5698dc1_b.jpg" data-caption="" data-size="normal" data-rawwidth="692" data-rawheight="227" class="origin_image zh-lightbox-thumb" width="692" data-original="https://pic2.zhimg.com/v2-bd7934043d3037fe46d6a47ef5698dc1_r.jpg"/>框架六大亮點
- 簡單高性能的框架:屏蔽復雜的底層實現,用戶只需關注模型的邏輯結構,降低了 NLP 和遷移學習的入門門檻;同時,框架支持工業級的分布式應用場景,改善了分布式優化器,配合自動混合精度,編譯優化,和高效的分布式數據 / 模型并行策略,做到比社區版的多機多卡分布式訓練在運算速度上快 4 倍多;
- 語言模型預訓練工具鏈:支持完整的預訓練工具鏈,方便用戶預訓練語言模型如 T5 和 BERT,基于該工具鏈產出的預訓練模型在中文 CLUE 榜單和英文 SuperGLUE 榜單取得很好的成績;
- 豐富且高質量的預訓練模型 ModelZoo:支持 PAI-ModelZoo,支持 Bert,Albert,Roberta,XLNet,T5 等主流模型的 Continue Pretrain 和 Finetune。同時支持自研的多模態模型服裝行業的 Fashionbert 等;
- 豐富且易用的應用 AppZoo:支持主流的 NLP 應用和自研的模型應用,比方說文本匹配下支持 DAM++、HCNN 等單塔模型,以及 BERT 雙塔 + 向量召回模型;閱讀理解下支持 BERT-HAE 等模型;
- 自動知識蒸餾工具:支持知識蒸餾,可以從大的 teacher 模型蒸餾到小的 student 模型。集成了任務有感知的 BERT 模型壓縮 AdaBERT,采用了神經網路架構搜索去搜索出任務相關的架構去壓縮原始的 BERT 模型,可以壓縮最多到原來的 1/17,inference 最多提升 29 倍,且模型效果損失在 3% 以內;
- 兼容 PAI 生態產品:框架基于 PAI-TF 開發,用戶通過簡單的代碼或配置文件修改,就可以使用 PAI 自研高效的分布式訓練,編譯優化等特性;同時框架完美兼容 PAI 生態的產品,包括 PAI Web 組件(PAI Studio),開發平臺(PAI DSW),和 PAI Serving 平臺(PAI EAS)。
平臺架構總覽
EasyTransfer 的整體框架如下圖所示,在設計上盡可能的簡化了深度遷移學習的算法開發難度。框架抽象了常用的 IO,layers,losses,optimizers, models,用戶可以基于這些接口開發模型,也可以直接接入預訓練模型庫 ModelZoo 快速建模。框架支持五種遷移學習 (TL) 范式,model finetuning,feature-based TL, instance-based TL, model-based TL 和 meta learning。同時,框架集成了 AppZoo,支持主流的 NLP 應用,方便用戶搭建常用的 NLP 算法應用。最后,框架無縫兼容 PAI 生態的產品,給用戶從訓練到部署帶來一站式的體驗。
<img src="https://pic1.zhimg.com/v2-d4d680ff72ee42d91638a41d117e2540_b.jpg" data-caption="" data-size="normal" data-rawwidth="692" data-rawheight="382" class="origin_image zh-lightbox-thumb" width="692" data-original="https://pic1.zhimg.com/v2-d4d680ff72ee42d91638a41d117e2540_r.jpg"/>平臺功能詳解
下面詳細介紹下 EasyTransfer 框架的核心功能。
簡單易用的 API 接口設計
<img src="https://pic1.zhimg.com/v2-77be06b23b004f060e38ad6c61656b44_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="493" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic1.zhimg.com/v2-77be06b23b004f060e38ad6c61656b44_r.jpg"/>高性能分布式框架
EasyTransfer 框架支持工業級的分布式應用場景,改善了分布式優化器,配合自動混合精度,編譯優化,和高效的分布式數據 / 模型并行策略,做到比社區版的多機多卡分布式訓練在運算速度上快 4 倍多。
<img src="https://pic3.zhimg.com/v2-29ed4e6e1abe5446efbcae928d817ffe_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="628" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-29ed4e6e1abe5446efbcae928d817ffe_r.jpg"/>豐富的 ModelZoo
框架提供了一套預訓練語言模型的工具供用戶自定義自己的預訓練模型,同時提供了預訓練語言模型庫 ModelZoo 供用戶直接調用。目前支持了 20 + 預訓練模型,其中在 PAI 平臺上預訓練的 PAI-ALBERT-zh 取得中文 CLUE 榜單第一名,PAI-ALBERT-en-large 取得英文 SuperGLUE 第二名的好成績。下面是詳細的預訓練模型列表:
<img src="https://pic3.zhimg.com/v2-1eb88bc7572ca8a175d45539fce3b556_b.jpg" data-caption="" data-size="normal" data-rawwidth="841" data-rawheight="223" class="origin_image zh-lightbox-thumb" width="841" data-original="https://pic3.zhimg.com/v2-1eb88bc7572ca8a175d45539fce3b556_r.jpg"/>預訓練模型在 CLUE 榜單的效果:
<img src="https://pic2.zhimg.com/v2-4991f050102fd41334e13ecef03aaa19_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="520" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic2.zhimg.com/v2-4991f050102fd41334e13ecef03aaa19_r.jpg"/>SuperGLUE 的效果:
<img src="https://pic1.zhimg.com/v2-399f69daedeb4fc61145b5043c121b90_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="478" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic1.zhimg.com/v2-399f69daedeb4fc61145b5043c121b90_r.jpg"/>豐富的 AppZoo
EasyTransfer 封裝了高度易用、靈活且學習成本低的 AppZoo,支持用戶在僅用幾行命令的條件下 “大規模” 運行 “前沿” 的開源與自研算法,即可迅速接入不同場景和業務數據下的 NLP 應用,包括文本向量化、匹配、分類、閱讀理解和序列標注等。
<img src="https://pic3.zhimg.com/v2-e174b2c7e48bfc77988871f77b4ff67a_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="528" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-e174b2c7e48bfc77988871f77b4ff67a_r.jpg"/>高效的遷移學習算法
EasyTransfer 框架支持所有主流的遷移學習范式,包括 Model Fine-tuning, Feature-based TL, Instance-based TL, Model-based TL 和 Meta Learning。基于這些遷移學習范式開發了 10 多種算法,在阿里的業務實踐中取得了良好效果的效果。后續所有的算法都會開源到 EasyTransfer 代碼庫里。在具體應用的時候,用戶可以根據下圖來選擇一種遷移學習范式來測試效果。
<img src="https://pic3.zhimg.com/v2-399a0897b2c389d25fedae5f6215099a_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="325" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-399a0897b2c389d25fedae5f6215099a_r.jpg"/>預訓練語言模型
自然語言處理的一大熱點工作就是預訓練語言模型比方說 BERT,ALBERT 等,這類模型在各大自然語言處理場景都取得了非常不錯的效果。為了更好的支持用戶使用預訓練語言模型,我們在新版的遷移學習框架 EasyTransfer 里植入了一套預訓練語言模型的標準范式和預訓練語言模型庫 ModelZoo。傳統 Albert 為了減少參數總量,取消了 bert 的 encoder 堆疊的方式,轉而采用 encoder 循環的方式,如下圖所示。全循環方式在下游任務上表現并不十分理想,于是我們將全循環改為了在 2 層堆疊的 encoder 上全循環。然后我們基于英文 C4 數據,重新對 Albert xxlarge 進行預訓練。在預訓練的過程中,我們僅僅使用 MLM loss,配合 Whole Word Masking,基于 EasyTransfer 的 Train on the fly 功能,我們實現了 dynamic online masking,即可以在每次讀入原始句子的同時動態生成需要 masking 的 tokens。我們最終的預訓練模型 PAI-ALBERT-en-large 在 SuperGLUE 榜單上取得國際第二,國內第一的成績,模型參數僅僅為第一名 Google T5 的 1/10,效果差距在 3.5% 以內。后續我們會繼續優化模型框架,爭取以 1/5 的模型參數達到比 T5 更好的效果。
<img src="https://pic1.zhimg.com/v2-eb2e138e7db965fa2b2c7c8f877cacc8_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="579" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic1.zhimg.com/v2-eb2e138e7db965fa2b2c7c8f877cacc8_r.jpg"/>多模態模型 FashionBERT
隨著 Web 技術發展,互聯網上包含大量的多模態信息,包括文本,圖像,語音,視頻等。從海量多模態信息搜索出重要信息一直是學術界研究重點。多模態匹配核心就是圖文匹配技術(Text and Image Matching),這也是一項基礎研究,在非常多的領域有很多應用,例如 圖文檢索(Cross-modality IR),圖像標題生成(Image Caption),圖像問答系統(Vision Question Answering), 圖像知識推理(Visual Commonsense Reasoning)。但是目前學術界研究重點放在通用領域的多模態研究,針對電商領域的多模態研究相對較少。基于此,我們和阿里 ICBU 團隊合作提出了 FashionBERT 多模態預訓練模型,針對電商領域的圖文信息進行預訓練的研究,在多個跨模態檢索和圖文匹配等業務場景都有成功的應用。模型架構圖如下所示。該工作提出了 Adaptive Loss,用于平衡圖文匹配,純圖片,和純文本三部分 loss。
<img src="https://pic3.zhimg.com/v2-f99a2938e10497216033e5131745957e_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="641" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-f99a2938e10497216033e5131745957e_r.jpg"/>任務自適應的知識蒸餾
預訓練模型從海量無監督數據中提取通用知識,并通過知識遷移的方法提升下游任務的效果,在場景里取得了優異的效果。通常預訓練模型尺寸越大,學習到的知識表征對下游任務越有效,帶來的指標提升也越明顯。然而大模型顯然無法滿足工業界應用的時效性需求,因此需要考慮模型壓縮。我們和阿里智能計算團隊合作提出了一種全新的壓縮方法 AdaBERT,利用可微神經架構搜索(Differentiable Neural Architecture Search)自動地將 BERT 壓縮成任務自適應的小型模型。在這個過程中,我們將 BERT 作為老師模型,提煉它在目標任務上有用的知識;在這些知識的指導下,我們自適應地搜索一個適合目標任務的網絡結構,壓縮得到小規模的學生模型。我們在多個 NLP 公開任務上進行了實驗評估,結果顯示經由 AdaBERT 壓縮后的小模型在保證精讀相當的同時,推理速度比原始 BERT 快 12.7 到 29.3 倍,參數規模比原始 BERT 小 11.5 到 17.0 倍 。
<img src="https://pic3.zhimg.com/v2-ad0456d69f61019db4753a11066b8cfe_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="318" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-ad0456d69f61019db4753a11066b8cfe_r.jpg"/>QA 場景領域關系學習
早在 2017 年,我們就在阿里小蜜問答場景里面嘗試了遷移學習,我們主要側重于 DNN based Supervised TL。這類算法主要有兩種框架,一個是 Fully-shared(FS),另外一個是 Specific-shared(SS)。兩者最大的差別是前者只考慮了 shared representation,而后者考慮了 specific representation。通常來說 SS 的模型效果比 FS 效果好,因為 FS 可以看作是 SS 的一個特例。對于 SS 來說,最理想的情況下是 shared 的部分表示的是兩個領域的共性,specific 的部分表示的是特性。然而往往我們發現要達到這樣的效果很難,于是我們考慮用一個 adversarial loss 和 domain correlation 來協助模型學好這兩部分特征。基于此,我們提出了一個新的算法,hCNN-DRSS,架構如下所示:
<img src="https://pic4.zhimg.com/v2-723f12e6227a8bf6683e483d045f7d53_b.jpg" data-caption="" data-size="normal" data-rawwidth="620" data-rawheight="238" class="origin_image zh-lightbox-thumb" width="620" data-original="https://pic4.zhimg.com/v2-723f12e6227a8bf6683e483d045f7d53_r.jpg"/>我們將這個算法應用在了小蜜的實際業務場景中,在多個業務場景里(AliExpress, 萬象,Lazada)取得了不錯的效果。同時我們也在 WSDM2018 產出了一篇文章: Modelling Domain Relationships for Transfer Learning on Retrieval-based Question Answering Systems in E-commerce. Jianfei Yu, Minghui Qiu, et al., WSDM 2018。
強化遷移學習 Reinforced Transfer Learning
遷移學習的有效性,很大程度上取決于 source domain 和 target domain 之間的 gap,如果 gap 比較大,那么遷移很可能是無效的。在小蜜 QA 場景,如果直接把 Quora 的 text matching 數據遷移過來,有很多是不太合適的。我們在小蜜的 QA 場景,基于 Actor-Critic 算法,搭建了一個通用的強化遷移學習框架,用 RL 來做樣本選擇,幫助 TL 模型取得更好的效果。整個模型分三部分,基礎 QA 模型,遷移學習模型 (TL) 和強化學習模型(RL)。其中 RL 的 policy function 負責選出高質量的樣本(actions),TL 模型在選出來的樣本上訓練 QA 模型并提供反饋給 RL,RL 根據反饋(reward)來更新 actions。該框架訓練的模型在雙 11AliExpress 的俄語和西語匹配模型,在西語和俄語的匹配準確率都取得了非常不錯的提升。同時,我們也將成果整理成論文,發表在 WSDM2019. (Learning to Selectively Transfer: Reinforced Transfer Learning for Deep Text Matching. Chen Qu, Feng Ji, Minghui Qiu, et al., WSDM 2019.)
<img src="https://pic3.zhimg.com/v2-dba4c435abbfb4cc85c39c4d153d022e_b.jpg" data-caption="" data-size="normal" data-rawwidth="897" data-rawheight="598" class="origin_image zh-lightbox-thumb" width="897" data-original="https://pic3.zhimg.com/v2-dba4c435abbfb4cc85c39c4d153d022e_r.jpg"/>元調優 Meta Fine-tuning
預訓練語言模型的廣泛應用,使得 Pre-training+Fine-tuning 的兩階段訓練模型成為主流。我們注意到,在 fine-tuning 階段,模型參數僅在特定領域、特定數據集上 fine-tune,沒有考慮到跨領域數據的遷移調優效果。元調優(Meta Fine-tuning)算法借鑒 Meta-learning 的思想,旨在學習預訓練語言模型跨領域的 meta-learner,從而使得學習的 meta-learner 可以快速遷移到特定領域的任務上。這一算法學習訓練數據樣本的跨領域 typicality(即可遷移性),同時在預訓練語言模型中增加 domain corruption classifier,使得模型更多地學習到領域無關的特征(domain-invariant representations)。
<img src="https://pic3.zhimg.com/v2-7112b6596ceae7be9c20acec04d6bbba_b.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="364" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-7112b6596ceae7be9c20acec04d6bbba_r.jpg"/>我們將該 fine-tuning 算法應用于 BERT,在自然語言推理和情感分析等多個任務上進行了實驗。實驗結果表明,元調優算法在這些任務上都優于 BERT 的原始 fine-tuning 算法和基于 transfer learning 的 fine-tuning 算法。我們也將成果整理成 paper,發表在 EMNLP 2020. (Meta Fine-Tuning Neural Language Models for Multi-Domain Text Mining. Chengyu Wang, Minghui Qiu, Jun Huang, et al., EMNLP 2020.)
元知識蒸餾 Meta-Knowledge Distillation
隨著 BERT 等預訓練語言模型在各項任務上都取得了 SOTA 效果,BERT 這類模型已經成為 NLP深度遷移學習管道中的重要組成部分。但 BERT 并不是完美無瑕的,這類模型仍然存在以下兩個問題:模型參數量太大和訓練 / 推理速度慢的問題,因此一個方向是將 BERT 知識蒸餾到一個小模型。但是大部分的知識蒸餾工作都聚焦在同一個領域,而忽略了跨領域對蒸餾任務提升的問題。我們提出了用 Meta Learning 的方式將跨領域的可遷移知識學出,在蒸餾階段額外對可遷移的知識進行蒸餾。這樣的做法使得學習到的 Student 模型在相應的領域的效果顯著提升,我們在多個跨領域的任務上都蒸餾出了較好的學生模型,逼近教師模型的效果。我們近期會梳理這個工作,發布代碼和文章。
創新文章列表
EasyTransfer 框架已在阿里集團內數十個 NLP 場景落地,包括智能客服、搜索推薦、安全風控、大文娛等,帶來了顯著業務效果的提升。目前 EasyTransfer 日常服務有上億次調用,月均訓練調用量超過 5 萬次。EasyTransfer 團隊在落地業務的同時也沉淀了很多的創新的算法解決方案,包括元學習,多模態預訓練,強化遷移學習,特征遷移學習等方向的工作,共合作發表了幾十篇頂級會議文章,下面列舉一些代表性工作。后續這些算法都會在 EasyTransfer 框架里開源供廣大用戶使用。
- [EMNLP 2020]. Meta Fine-Tuning Neural Language Models for Multi-Domain Text Mining. EMNLP 2020. Full Paper.
- [SIGIR 2020] FashionBERT: Text and Image Matching for Fashion Domain with Adaptive Loss.
- [ACM MM 2020] One-shot Learning for Text Field Labeling in Structure Information Extraction. To appear, Full Oral paper.
- [IJCAI 2020] AdaBERT: Task-Adaptive BERT Compression with Differentiable Neural Architecture Search, IJCAI 2020.
- [KDD 2019] A Minimax Game for Instance based Selective Transfer Learning. Oral, KDD 2019.
- [CIKM 2019] Cross-domain Attention Network with Wasserstein Regularizers for E-commerce Search, CIKM 2019.
- [WWW 2019] Multi-Domain Gated CNN for Review Helpfulness Prediction, WWW.
- [SIGIR 2019]. BERT with History Modeling for Conversational Question Answering. SIGIR 2019.
- [WSDM 2019]. Learning to Selectively Transfer: Reinforced Transfer Learning for Deep Text Matching. WSDM 2019, Full Paper.
- [ACL 2018]. Transfer Learning for Context-Aware Question Matching in Information-seeking Conversation Systems in E-commerce. ACL. 2018.
- [SIGIR 2018]. Response Ranking with Deep Matching Networks and External Knowledge in Information-seeking Conversation Systems. Long Paper.
- [WSDM 2018]. Modelling Domain Relationships for Transfer Learning on Retrieval-based Question Answering Systems in E-commerce, 2018. Long Paper.
- [CIKM 2017]. AliMe Assist: An Intelligent Assistant for Creating an Innovative E-commerce Experience, CIKM 2017, Demo Paper, Best Demo Award.
- [ICDM 2017]. A Short-Term Rainfall Prediction Model using Multi-Task Convolutional Neural Networks. Long paper, ICDM 2017.
- [ACL 2017]. AliMe Chat: A Sequence to Sequence and Rerank based Chatbot Engine,ACL 2017.
- [arXiv]. KEML: A Knowledge-Enriched Meta-Learning Framework for Lexical Relation Classification,arXiv.
總結
以上是生活随笔為你收集整理的阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络解析(一):LeNet-5详解
- 下一篇: 微型计算机性能指标以及分类