【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代
文 | 阿毅
兩周前,南加大Yuchen Lin(PhD student @USC and ex-research intern @GoogleAI)所在的團隊在Twitter官宣開源首個以研究為導(dǎo)向的聯(lián)邦學(xué)習(xí)賦能NLP的FedNLP框架。發(fā)布數(shù)小時內(nèi)就獲得了647個贊,163次轉(zhuǎn)發(fā),可見其熱度。我相信大家也是滿腦子疑問:什么是聯(lián)邦學(xué)習(xí)?為什么將聯(lián)邦學(xué)習(xí)與NLP結(jié)合呢?那么本篇推文就來給大家講解一下聯(lián)邦學(xué)習(xí)與NLP這兩個看似沒有關(guān)系的研究領(lǐng)域為何可以攜手共赴未來新時代。
論文題目:FedNLP: A Research Platform for Federated Learning in Natural Language Processing
論文鏈接:
https://yuchenlin.xyz/files/fednlp.pdf
框架鏈接
https://github.com/FedML-AI/FedNLP
為了促進NLP中的聯(lián)邦學(xué)習(xí)研究,本文開源了以研究為導(dǎo)向的FedNLP框架,該框架旨在以聯(lián)邦學(xué)習(xí)為基礎(chǔ)在NLP中研究數(shù)據(jù)隱私保護的研究平臺。具體來說,FedNLP支持NLP中各種流行的任務(wù),例如文本分類,序列標(biāo)記,對話系統(tǒng),seq2seq生成和語言建模。該框架還實現(xiàn)了Transformer語言模型(例如BERT)和FL方法(例如FedAvg,FedOpt等)之間的接口,以進行語言模型的分布式訓(xùn)練。本文使用FedNLP進行的初步實驗表明,在分布式和集中式數(shù)據(jù)集上學(xué)習(xí)的性能之間存在很大的性能差距,這就意味著開發(fā)適合NLP任務(wù)的FL方法是有趣且令人興奮的未來研究方向。
動機概述
許多現(xiàn)實部署的NLP應(yīng)用程序高度依賴于用戶本地數(shù)據(jù),例如,文本消息、文檔及其標(biāo)簽,問題和選定的答案等,這些數(shù)據(jù)可能存儲于個人設(shè)備上,也可以存儲于組織的更大數(shù)據(jù)孤島中。根據(jù)許多數(shù)據(jù)隱私法規(guī),這些本地數(shù)據(jù)通常被認(rèn)為是高度隱私的,因此任何人都不能直接訪問,而這使得很難訓(xùn)練一種高性能模型以使用戶受益。聯(lián)邦學(xué)習(xí)(Federated Learning, FL)[1] 作為谷歌2017年提出的一種新興的隱私保護的分布式機器學(xué)習(xí)系統(tǒng)通過允許用戶(即個人設(shè)備或組織,如手機設(shè)備或者醫(yī)院)將其數(shù)據(jù)保留在本地并與云服務(wù)器協(xié)作地學(xué)習(xí)一個共享的全局模型來保護用戶的數(shù)據(jù)隱私,從而為社區(qū)提供一種新穎而有前途的研究方向:FL + NLP。簡單來說,FL應(yīng)用到NLP領(lǐng)域中是為了開發(fā)一些隱私保護、個性化的語言模型。
再講二者如何結(jié)合之前,小編先簡單介紹一下FL系統(tǒng):如下圖所示,FL系統(tǒng)由一個服務(wù)器和個客戶端組成,其中每個客戶端持有一個本地數(shù)據(jù)集。FL系統(tǒng)的訓(xùn)練步驟分為三個階段:初始化、本地訓(xùn)練、更新聚合,具體總結(jié)如下:
階段1,初始化
所有參與本輪訓(xùn)練的客戶端發(fā)送信息給云服務(wù)器以表示登記參與聯(lián)邦學(xué)習(xí)訓(xùn)練,云服務(wù)器去除存在網(wǎng)絡(luò)故障或者網(wǎng)絡(luò)不佳的客戶端。然后云服務(wù)器將從所有參與的客戶端中隨機抽取一定比例(0<q<1)的客戶端參加本輪訓(xùn)練,并將預(yù)訓(xùn)練(或者初始化)的全局模型發(fā)送給相應(yīng)的客戶端。
階段2,本地訓(xùn)練
每個客戶端收到全局模型作為自己的本地模型(local model)。然后,客戶端開始使用自己的本地數(shù)據(jù)集進行訓(xùn)練,其中數(shù)據(jù)集的大小為,由訓(xùn)練數(shù)據(jù)集即輸入-輸出對組成,因此本地訓(xùn)練需要優(yōu)化的損失函數(shù)定義如下:
其中,是指模型的參數(shù),是指本地?fù)p失函數(shù)(例如).
階段3,更新聚合
在聯(lián)邦學(xué)習(xí)中,更新聚合是指云服務(wù)器對客戶端上傳的模型更新進行聚合操作,常見的聚合規(guī)則有FedAvg、FedProx等。客戶端進行本地訓(xùn)練之后將自己的本地模型更新上傳給云服務(wù)器,云服務(wù)器對收到的本地模型更新執(zhí)行聚合操作得到新的全局模型,其定義如下:
以上過程重復(fù)執(zhí)行,直到全局模型收斂結(jié)束訓(xùn)練,因此聯(lián)邦學(xué)習(xí)系統(tǒng)實際上就是一個變型的分布式機器學(xué)習(xí)訓(xùn)練框架,其目的是使得用戶數(shù)據(jù)不上傳、不分享。
對于聯(lián)邦學(xué)習(xí)感興趣的讀者,可以閱讀以下兩篇非常經(jīng)典的綜述:
[2] Kairouz P, McMahan H B, Avent B, et al. Advances and open problems in federated learning[J]. arXiv preprint arXiv:1912.04977, 2019.
[3] Yang Q, Liu Y, Chen T, et al. Federated machine learning: Concept and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2019, 10(2): 1-19.
挑戰(zhàn)
如下圖所示,FL的隱私保護特性可以很好地為語言模型訓(xùn)練服務(wù),那么兩者結(jié)合存在哪些技術(shù)挑戰(zhàn)呢?其實,挑戰(zhàn)在主要是以下四個:
目前,該研究方向因缺乏提供基本構(gòu)件的標(biāo)準(zhǔn)化平臺而受阻:基準(zhǔn)數(shù)據(jù)集、NLP模型、FL方法、評估方式等。當(dāng)前大多數(shù)FL平臺,它們要么專注于統(tǒng)一各種FL方法,要么使用計算機視覺模型和數(shù)據(jù)集進行實驗,卻缺乏將預(yù)先訓(xùn)練的語言模型、最流行的NLP和各種任務(wù)公式的實際NLP應(yīng)用聯(lián)系起來的能力。
開發(fā)用于FL + NLP的全面通用平臺的第二個挑戰(zhàn)是處理具有不同輸入和輸出格式的實際NLP應(yīng)用程序的各種任務(wù)表述。
由于客戶端上的non-IID數(shù)據(jù)分部是FL系統(tǒng)的主要特征,因此如何為現(xiàn)有NLP數(shù)據(jù)集模擬實際的non-IID分布也是一個挑戰(zhàn)。
最后,一個平臺還需要將各種FL方法與基于Transformer的NLP模型集成以用于各種任務(wù)類型,因此需要一個靈活且可擴展的學(xué)習(xí)框架。特別是,現(xiàn)在需要對Transformers的常規(guī)訓(xùn)練器組件進行修改,以實現(xiàn)針對通信高效和安全的聯(lián)邦學(xué)習(xí)框架。
那么針對以上框架,南加大團隊是如何應(yīng)當(dāng)?shù)哪?#xff1f;且看下章詳解:
框架概述
FedNLP平臺由三層組成:應(yīng)用程序?qū)印⑺惴▽雍突A(chǔ)架構(gòu)層。在應(yīng)用程序?qū)?#xff0c;FedNLP提供了三個模塊:數(shù)據(jù)管理,模型定義和用于所有任務(wù)格式的單進程訓(xùn)練器;在算法層,FedNLP支持各種FL算法。在基礎(chǔ)架構(gòu)層,FedNLP旨在將單過程訓(xùn)練器與用于FL的分布式學(xué)習(xí)系統(tǒng)集成在一起 具體來說,我們使每個層和模塊履行其職責(zé),并具有高度的模塊化。
應(yīng)用層
數(shù)據(jù)管理。在數(shù)據(jù)管理中,DataManager要做的是控制從加載數(shù)據(jù)到返回訓(xùn)練函數(shù)的整個工作流程。具體來說,DataManager設(shè)置為讀取h5py數(shù)據(jù)文件并驅(qū)動預(yù)處理器以將原始數(shù)據(jù)轉(zhuǎn)換為特征。根據(jù)任務(wù)定義,有四種類型的DataManager。用戶可以通過繼承DataManager類之一,指定數(shù)據(jù)操作函數(shù)并嵌入特定的預(yù)處理器來自定義自己的DataManager。
模型定義。框架支持兩種類型的模型:Transformer和LSTM。對于Transformer模型,為了與現(xiàn)有的NLP生態(tài)對接,框架與HuggingFace Transformers庫兼容,因此可以直接重用各種類型的Transformer,而無需重新實現(xiàn)。
NLP訓(xùn)練器(單進程角度)。對于特定于任務(wù)的NLP訓(xùn)練器,最突出的功能是它不需要用戶具有分布式計算的任何背景,即FedNLP的用戶只需完成單進程代碼編寫。
算法層
每個算法包括兩個核心對象ServerManager和ClientManager,它們集成了基礎(chǔ)結(jié)構(gòu)層的通信模塊ComManager和訓(xùn)練引擎的Trainer,以完成分布式算法協(xié)議(如FedAvg、FedProx、FedOPT等)和分布式訓(xùn)練。請注意,用戶可以通過將自定義的Trainer傳遞給算法API來自定義Trainer。
基礎(chǔ)架構(gòu)層
用戶可以編寫分布式腳本來管理GPU資源分配。特別是,FedNLP提供了GPU分配API),以將特定的GPU分配給不同的FL客戶端。
算法層可以使用統(tǒng)一抽象的ComManager來完成復(fù)雜的算法通信協(xié)議。當(dāng)前,我們支持MPI(消息傳遞接口),RPC(遠(yuǎn)程過程調(diào)用)和MQTT(消息隊列遙測傳輸)通信后端。MPI滿足單個集群中的分布式訓(xùn)練需求;RPC可以滿足跨數(shù)據(jù)中心的通信需求(例如,跨孤島聯(lián)邦學(xué)習(xí));MQTT可以滿足智能手機或物聯(lián)網(wǎng)設(shè)備的通信需求。
訓(xùn)練引擎,該訓(xùn)練引擎通過作為Trainer類重用現(xiàn)有的深度學(xué)習(xí)訓(xùn)練引擎。該模塊的當(dāng)前版本基于PyTorch,但它可以輕松支持TensorFlow等框架。將來,我們可能會考慮在此級別上支持通過編譯器技術(shù)優(yōu)化的輕量級邊緣訓(xùn)練引擎。
仿真結(jié)果
該團隊對FedNLP平臺進行了初步分析,并在一些常見設(shè)置中進行了實驗。請注意,這些初步實驗的目的是展示FedNLP平臺的功能,同時保留有關(guān)未來工作的最新性能開發(fā)。
數(shù)據(jù)異構(gòu)程度與準(zhǔn)確性的關(guān)系
從下圖所知,在文本分類任務(wù)上,越小(意味著non-IID程度越嚴(yán)重),框架的性能越差(保持同樣的FL方法),這說明non-IID問題仍然是FL的瓶頸問題。其次,對于不同的non-IID,例如label shift和quantity shift,兩者的性能差異也是很大的。通過這個實驗,該平臺已經(jīng)為大家提供了兩種不同的non-IID設(shè)置,以及該設(shè)置下的baseline,因此大家可以設(shè)計一些解決NLP領(lǐng)域中non-IID問題的FL方法。
FL方法與準(zhǔn)確率的關(guān)系
該團隊在保持non-IID程度一致的情況下,在不同任務(wù)上對不同的FL方法的性能進行了比較。實驗結(jié)果顯示,FedOpt的性能是三者中最佳的,這也為大家提供該任務(wù)上解決non-IID問題初步baseline。但是大家也發(fā)現(xiàn),就算是FedOpt離集中式的方法的性能還是差很多的,說明還有存在很多的提升空間。
應(yīng)用舉例
對于FL + NLP來說,目前落地最多的就是基于FL的鍵盤下一字預(yù)測,如:
[4] Hard A, Rao K, Mathews R, et al. Federated learning for mobile keyboard prediction[J]. arXiv preprint arXiv:1811.03604, 2018.
[5] Yang T, Andrew G, Eichner H, et al. Applied federated learning: Improving google keyboard query suggestions[J]. arXiv preprint arXiv:1812.02903, 2018.
[6] Ramaswamy S, Mathews R, Rao K, et al. Federated learning for emoji prediction in a mobile keyboard[J]. arXiv preprint arXiv:1906.04329, 2019.
FL方法還可以用來訓(xùn)練高質(zhì)量的語言模型,該模型可以勝過未經(jīng)聯(lián)邦學(xué)習(xí)而訓(xùn)練的模型,如:
[7] Shaoxiong Ji, Shirui Pan, Guodong Long, Xue Li, Jing Jiang, and Zi Huang. 2019. Learning private neural language modeling with attentive aggregation. 2019 International Joint Conference on Neural Networks (IJCNN), pages 1–8.
[8] Mingqing Chen, Ananda Theertha Suresh, Rajiv Mathews, Adeline Wong, Cyril Allauzen, Fran?oise Beaufays, and Michael Riley. 2019. Federated learning of n-gram language models. In Proceedings of the 23rd Conference on Computational Natural Language Learning (CoNLL), pages 121–130, Hong Kong, China. Association for Computational Linguistics.
除了這些應(yīng)用之外,在醫(yī)學(xué)關(guān)系提取和醫(yī)學(xué)名稱實體識別也有相關(guān)工作:
[9] Suyu Ge, Fangzhao Wu, Chuhan Wu, Tao Qi, Yongfeng Huang, and X. Xie. 2020. Fedner: Privacy-preserving medical named entity recognition with federated learning. ArXiv, abs/2003.09288.
[10] Dianbo Sui, Yubo Chen, Jun Zhao, Yantao Jia, Yuantao Xie, and Weijian Sun. 2020. FedED: Federated learning via ensemble distillation for medical relation extraction. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 2118–2128, Online. Association for Computational Linguistics.
總結(jié)
基于上述開源框架已有的工作我們可以從FL和NLP兩個角度切入來做一些未來的工作:
NLP
開發(fā)一些基于FL的新型應(yīng)用和模型,例如在醫(yī)療領(lǐng)域、翻譯領(lǐng)域等
如何將大型語言模型與FL訓(xùn)練結(jié)合
如何量化語言模型隱私泄露的可能性
FL
如何設(shè)計新的FL方法來解決NLP中的non-IID問題
如何設(shè)計新的FL訓(xùn)練協(xié)議以完美匹配NLP領(lǐng)域的特性
如何設(shè)計新的邊緣訓(xùn)練方法來提高應(yīng)對大型語言模型需要大量通信的能力
如何提高現(xiàn)有FL隱私保護的能力,例如在NLP領(lǐng)域防御后門攻擊、中毒攻擊等
萌屋作者:阿毅
[1] McMahan B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[C]//Artificial Intelligence and Statistics. PMLR, 2017: 1273-1282.
[2] Kairouz P, McMahan H B, Avent B, et al. Advances and open problems in federated learning[J]. arXiv preprint arXiv:1912.04977, 2019.
[3] Yang Q, Liu Y, Chen T, et al. Federated machine learning: Concept and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2019, 10(2): 1-19.
[4] Hard A, Rao K, Mathews R, et al. Federated learning for mobile keyboard prediction[J]. arXiv preprint arXiv:1811.03604, 2018.
[5] Yang T, Andrew G, Eichner H, et al. Applied federated learning: Improving google keyboard query suggestions[J]. arXiv preprint arXiv:1812.02903, 2018.
[6] Ramaswamy S, Mathews R, Rao K, et al. Federated learning for emoji prediction in a mobile keyboard[J]. arXiv preprint arXiv:1906.04329, 2019.
[7] Shaoxiong Ji, Shirui Pan, Guodong Long, Xue Li, Jing Jiang, and Zi Huang. 2019. Learning private neural language modeling with attentive aggregation. 2019 International Joint Conference on Neural Networks (IJCNN), pages 1–8.
[8] Mingqing Chen, Ananda Theertha Suresh, Rajiv Mathews, Adeline Wong, Cyril Allauzen, Fran?oise Beaufays, and Michael Riley. 2019. Federated learning of n-gram language models. In Proceedings of the 23rd Conference on Computational Natural Language Learning (CoNLL), pages 121–130, Hong Kong, China. Association for Computational Linguistics.
[9] Suyu Ge, Fangzhao Wu, Chuhan Wu, Tao Qi, Yongfeng Huang, and X. Xie. 2020. Fedner: Privacy-preserving medical named entity recognition with federated learning. ArXiv, abs/2003.09288.
[10] Dianbo Sui, Yubo Chen, Jun Zhao, Yantao Jia, Yuantao Xie, and Weijian Sun. 2020. FedED: Federated learning via ensemble distillation for medical relation extraction. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 2118–2128, Online. Association for Computational Linguistics.
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請掃碼:總結(jié)
以上是生活随笔為你收集整理的【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱奇艺如何开启两指双击触发奇观功能
- 下一篇: win10使用网络共享功能的方法