FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代
文 | 阿毅
兩周前,南加大Yuchen Lin(PhD student @USC and ex-research intern @GoogleAI)所在的團隊在Twitter官宣開源首個以研究為導向的聯邦學習賦能NLP的FedNLP框架。發布數小時內就獲得了647個贊,163次轉發,可見其熱度。我相信大家也是滿腦子疑問:什么是聯邦學習?為什么將聯邦學習與NLP結合呢?那么本篇推文就來給大家講解一下聯邦學習與NLP這兩個看似沒有關系的研究領域為何可以攜手共赴未來新時代。
論文題目:FedNLP: A Research Platform for Federated Learning in Natural Language Processing
論文鏈接:
https://yuchenlin.xyz/files/fednlp.pdf
框架鏈接
https://github.com/FedML-AI/FedNLP
為了促進NLP中的聯邦學習研究,本文開源了以研究為導向的FedNLP框架,該框架旨在以聯邦學習為基礎在NLP中研究數據隱私保護的研究平臺。具體來說,FedNLP支持NLP中各種流行的任務,例如文本分類,序列標記,對話系統,seq2seq生成和語言建模。該框架還實現了Transformer語言模型(例如BERT)和FL方法(例如FedAvg,FedOpt等)之間的接口,以進行語言模型的分布式訓練。本文使用FedNLP進行的初步實驗表明,在分布式和集中式數據集上學習的性能之間存在很大的性能差距,這就意味著開發適合NLP任務的FL方法是有趣且令人興奮的未來研究方向。
動機概述
許多現實部署的NLP應用程序高度依賴于用戶本地數據,例如,文本消息、文檔及其標簽,問題和選定的答案等,這些數據可能存儲于個人設備上,也可以存儲于組織的更大數據孤島中。根據許多數據隱私法規,這些本地數據通常被認為是高度隱私的,因此任何人都不能直接訪問,而這使得很難訓練一種高性能模型以使用戶受益。聯邦學習(Federated Learning, FL)[1] 作為谷歌2017年提出的一種新興的隱私保護的分布式機器學習系統通過允許用戶(即個人設備或組織,如手機設備或者醫院)將其數據保留在本地并與云服務器協作地學習一個共享的全局模型來保護用戶的數據隱私,從而為社區提供一種新穎而有前途的研究方向:FL + NLP。簡單來說,FL應用到NLP領域中是為了開發一些隱私保護、個性化的語言模型。
再講二者如何結合之前,小編先簡單介紹一下FL系統:如下圖所示,FL系統由一個服務器和個客戶端組成,其中每個客戶端持有一個本地數據集。FL系統的訓練步驟分為三個階段:初始化、本地訓練、更新聚合,具體總結如下:
階段1,初始化
所有參與本輪訓練的客戶端發送信息給云服務器以表示登記參與聯邦學習訓練,云服務器去除存在網絡故障或者網絡不佳的客戶端。然后云服務器將從所有參與的客戶端中隨機抽取一定比例(0<q<1)的客戶端參加本輪訓練,并將預訓練(或者初始化)的全局模型發送給相應的客戶端。
階段2,本地訓練
每個客戶端收到全局模型作為自己的本地模型(local model)。然后,客戶端開始使用自己的本地數據集進行訓練,其中數據集的大小為,由訓練數據集即輸入-輸出對組成,因此本地訓練需要優化的損失函數定義如下:
其中,是指模型的參數,是指本地損失函數(例如).
階段3,更新聚合
在聯邦學習中,更新聚合是指云服務器對客戶端上傳的模型更新進行聚合操作,常見的聚合規則有FedAvg、FedProx等??蛻舳诉M行本地訓練之后將自己的本地模型更新上傳給云服務器,云服務器對收到的本地模型更新執行聚合操作得到新的全局模型,其定義如下:
以上過程重復執行,直到全局模型收斂結束訓練,因此聯邦學習系統實際上就是一個變型的分布式機器學習訓練框架,其目的是使得用戶數據不上傳、不分享。
對于聯邦學習感興趣的讀者,可以閱讀以下兩篇非常經典的綜述:
[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.
挑戰
如下圖所示,FL的隱私保護特性可以很好地為語言模型訓練服務,那么兩者結合存在哪些技術挑戰呢?其實,挑戰在主要是以下四個:
目前,該研究方向因缺乏提供基本構件的標準化平臺而受阻:基準數據集、NLP模型、FL方法、評估方式等。當前大多數FL平臺,它們要么專注于統一各種FL方法,要么使用計算機視覺模型和數據集進行實驗,卻缺乏將預先訓練的語言模型、最流行的NLP和各種任務公式的實際NLP應用聯系起來的能力。
開發用于FL + NLP的全面通用平臺的第二個挑戰是處理具有不同輸入和輸出格式的實際NLP應用程序的各種任務表述。
由于客戶端上的non-IID數據分部是FL系統的主要特征,因此如何為現有NLP數據集模擬實際的non-IID分布也是一個挑戰。
最后,一個平臺還需要將各種FL方法與基于Transformer的NLP模型集成以用于各種任務類型,因此需要一個靈活且可擴展的學習框架。特別是,現在需要對Transformers的常規訓練器組件進行修改,以實現針對通信高效和安全的聯邦學習框架。
那么針對以上框架,南加大團隊是如何應當的呢?且看下章詳解:
框架概述
FedNLP平臺由三層組成:應用程序層、算法層和基礎架構層。在應用程序層,FedNLP提供了三個模塊:數據管理,模型定義和用于所有任務格式的單進程訓練器;在算法層,FedNLP支持各種FL算法。在基礎架構層,FedNLP旨在將單過程訓練器與用于FL的分布式學習系統集成在一起 具體來說,我們使每個層和模塊履行其職責,并具有高度的模塊化。
應用層
數據管理。在數據管理中,DataManager要做的是控制從加載數據到返回訓練函數的整個工作流程。具體來說,DataManager設置為讀取h5py數據文件并驅動預處理器以將原始數據轉換為特征。根據任務定義,有四種類型的DataManager。用戶可以通過繼承DataManager類之一,指定數據操作函數并嵌入特定的預處理器來自定義自己的DataManager。
模型定義。框架支持兩種類型的模型:Transformer和LSTM。對于Transformer模型,為了與現有的NLP生態對接,框架與HuggingFace Transformers庫兼容,因此可以直接重用各種類型的Transformer,而無需重新實現。
NLP訓練器(單進程角度)。對于特定于任務的NLP訓練器,最突出的功能是它不需要用戶具有分布式計算的任何背景,即FedNLP的用戶只需完成單進程代碼編寫。
算法層
每個算法包括兩個核心對象ServerManager和ClientManager,它們集成了基礎結構層的通信模塊ComManager和訓練引擎的Trainer,以完成分布式算法協議(如FedAvg、FedProx、FedOPT等)和分布式訓練。請注意,用戶可以通過將自定義的Trainer傳遞給算法API來自定義Trainer。
基礎架構層
用戶可以編寫分布式腳本來管理GPU資源分配。特別是,FedNLP提供了GPU分配API),以將特定的GPU分配給不同的FL客戶端。
算法層可以使用統一抽象的ComManager來完成復雜的算法通信協議。當前,我們支持MPI(消息傳遞接口),RPC(遠程過程調用)和MQTT(消息隊列遙測傳輸)通信后端。MPI滿足單個集群中的分布式訓練需求;RPC可以滿足跨數據中心的通信需求(例如,跨孤島聯邦學習);MQTT可以滿足智能手機或物聯網設備的通信需求。
訓練引擎,該訓練引擎通過作為Trainer類重用現有的深度學習訓練引擎。該模塊的當前版本基于PyTorch,但它可以輕松支持TensorFlow等框架。將來,我們可能會考慮在此級別上支持通過編譯器技術優化的輕量級邊緣訓練引擎。
仿真結果
該團隊對FedNLP平臺進行了初步分析,并在一些常見設置中進行了實驗。請注意,這些初步實驗的目的是展示FedNLP平臺的功能,同時保留有關未來工作的最新性能開發。
數據異構程度與準確性的關系
從下圖所知,在文本分類任務上,越小(意味著non-IID程度越嚴重),框架的性能越差(保持同樣的FL方法),這說明non-IID問題仍然是FL的瓶頸問題。其次,對于不同的non-IID,例如label shift和quantity shift,兩者的性能差異也是很大的。通過這個實驗,該平臺已經為大家提供了兩種不同的non-IID設置,以及該設置下的baseline,因此大家可以設計一些解決NLP領域中non-IID問題的FL方法。
FL方法與準確率的關系
該團隊在保持non-IID程度一致的情況下,在不同任務上對不同的FL方法的性能進行了比較。實驗結果顯示,FedOpt的性能是三者中最佳的,這也為大家提供該任務上解決non-IID問題初步baseline。但是大家也發現,就算是FedOpt離集中式的方法的性能還是差很多的,說明還有存在很多的提升空間。
應用舉例
對于FL + NLP來說,目前落地最多的就是基于FL的鍵盤下一字預測,如:
[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方法還可以用來訓練高質量的語言模型,該模型可以勝過未經聯邦學習而訓練的模型,如:
[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.
總結
基于上述開源框架已有的工作我們可以從FL和NLP兩個角度切入來做一些未來的工作:
NLP
開發一些基于FL的新型應用和模型,例如在醫療領域、翻譯領域等
如何將大型語言模型與FL訓練結合
如何量化語言模型隱私泄露的可能性
FL
如何設計新的FL方法來解決NLP中的non-IID問題
如何設計新的FL訓練協議以完美匹配NLP領域的特性
如何設計新的邊緣訓練方法來提高應對大型語言模型需要大量通信的能力
如何提高現有FL隱私保護的能力,例如在NLP領域防御后門攻擊、中毒攻擊等
萌屋作者:阿毅
目前在澳洲讀PhD,方向是Security and Privacy in Machine Learning,前騰訊天衍實驗室實習生。一個熱愛籃球但打球很菜的陽光小伙子,也很喜歡爬山。期待和對ML\FL\NLP安全和隱私問題感興趣的小伙伴一起暢談未來(微信號: Sea_AAo)
作品推薦
我拿模型當朋友,模型卻想泄漏我的隱私?
尋求報道、約稿、文案投放:
添加微信xixiaoyao-1,備注“商務合作”
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
?
[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.
總結
以上是生活随笔為你收集整理的FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AdaX:一个比Adam更优秀,带”长期
- 下一篇: 什么?!“路由器”也会做信息抽取了?