有著“年度 AI 風向標”之稱GTC 大會是英偉達每年最重要的發布平臺之一,廣納當今計算領域最熱門話題的相關培訓和見解,并為廣大開發者創造與頂級專家交流的機會。12月15日-19日,GTC中國大會首次以線上大會的形式與開發者相見,共組織265場技術演講,演講者分別來自百度、阿里、騰訊、字節跳動等眾多知名企業與清華大學、中科院計算所等知名高校。百度飛槳也貢獻了四個主題演講,現在為您帶來飛槳大規模分布式訓練進展與應用的演講實錄。
課程鏈接:https://nvidia.gtcevent.cn/forum/watch?session_id=CNS20351
AI Studio鏈接:https://aistudio.baidu.com/aistudio/education/group/info/2099

大規模分布式訓練作為飛槳的重要功能模塊,在并行訓練API、并行策略、框架基礎架構都有了相應的更新升級。在一小時的演講中,百度主任研發架構師董大祥圍繞飛槳框架新版本的大規模訓練與應用展開,介紹了大規模分布式訓練的功能、性能、以及在產業中的實踐。
以下為演講實錄部分:
飛槳的這次改動中主要是對并行訓練API進行了全面更新,使代碼變得更加簡潔,也更方便調試,另外也對并行訓練的策略進行了進一步的升級,可以適用于更大規模的模型參數。
飛槳的分布式訓練API——Fleet的1.X版本已經投入使用,但一直在內部不斷地打磨優化和一些升級,所以在文檔中處于面向用戶隱藏的狀態。新版本中,我們固定了分布式訓練API,正式面向外部的開發者開放,同時也把一些主流的訓練模式,包括集合通信訓練和參數服務器訓練,做成統一的Fleet API(paddle.distributed.fleet),并在集合通信訓練功能下實現了動態圖和靜態圖訓練API的統一。
如下三份代碼分別展示了采用參數服務器訓練、集合通信訓練的動態圖和靜態圖方式訓練模型的示例代碼,可以看到僅需要幾行代碼的新增即可完成單機轉化為分布式訓練的目標。

為了讓用戶能夠靈活定義不同的分布式訓練模式,我們開放了分布式加速策略distributed strategy類供用戶定義并行訓練的策略,比如我們可以去定義同步訓練或者異步訓練,可以去定義自動和精度訓練等等。如下是distributed strategy類涵蓋的一些分布式加速策略API,幾乎囊括了所有能夠用到的分布式訓練加速策略。

另外我們考慮到用戶的調試體驗,也在執行方式上做了改進,如果用戶采用Fleet去寫分布式訓練的代碼,在單機和多機上都可以執行訓練。Fleet API識別出來用戶在跑單機訓練,就會在底層屏蔽掉一些多機的邏輯,另一個就是用戶可以去使用fleetrun的啟動接口執行單機多卡的任務或多機多卡的任務,需要強調的就是這兩種執行方式都是同一份代碼,也就是用戶可以很容易的在多機多卡和單機單卡之間做切換和調試。
飛槳新版本也開放了分布式通信的底層API,面向高級用戶提供了可微分的分布式編程能力,開放了比如broadcast、all_reduce、reduce、all_gather等操作的前向與反向操作,還會開放更多的底層接口來滿足開發者修改底層通信邏輯的需求。

與友商的性能對比
GPU卡具有顯存限制,這使得模型大小及訓練的Batch大小存在上限。我們設計了低成本擴大Batch的方法,gradient_merge梯度累積,對于不含BatchNormalization的模型有較好擴展性,性能幾乎無損。另外我們還提供了半精度通信等橫向擴展的能力,假使我們在訓練的過程中使用的是一些比較老的GPU集群,比如p40不支持 FP16的計算,但是在通信的過程中是可以把 FP32精度量化為FP16精度后再進行通信,這樣可以在訓練精度幾乎無損的情況下降低網絡帶寬占用。通過實測,P40下單機八卡訓練VGG16模型,訓練吞吐可以提升70%。
在超大規模模型參數的GPU訓練支持上,飛槳框架2.0的RC版本推出sharding策略,開發者使用sharding策略即可訓練參數超過百億、甚至千億級別的模型,例如openAI的GPT-3模型,百度的Plato模型。sharding策略的原理是利用模型分片存儲,把超大規模模型參數的維護分布在各個GPU卡上,并通過集合通信操作All-Gather來實現模型參數的臨時獲取,在計算利用局部模型參數進行計算完成后即釋放臨時維護的模型參數。

飛槳當前的并行策略與選項開關較多,面向初級用戶的使用仍然存在一定的門檻,在新版本中,面向用戶提供可以自動并行的第一級(O1)功能,即并行策略組合功能,飛槳在用戶開啟自動并行選項時即可在底層自動打開盡可能幫助用戶加速的并行策略。在隨后的版本中,飛槳還會逐漸開放更高級的自動并行功能,例如在運行時動態調整并行策略等。
在適配多硬件進行分布式訓練方面,飛槳正式推出異構參數服務器訓練架構,充分利用AI芯片的計算能力提升訓練吞吐,并兼容新接入的硬件進行并行訓練,例如百度的XPU芯片。

飛槳框架新版本全面升級了面向開發者的編程接口,在分布式訓練方面也本著持續降低用戶使用門檻的方向進行編程接口的設計,同時也兼顧高級的開發者進行底層通信邏輯修改的需求開放底層API。在并行訓練的策略、功能升級方面,飛槳也持續提升了并行訓練的橫向擴展性和縱向擴展性,提供目前最火熱GPT家族模型訓練能力,支持千億模型參數的GPU訓練,在對接硬件生態方面也推出了大規模異構參數服務器訓練架構,方面更多的硬件快速接入飛槳分布式訓練能力。
【關于飛槳】
飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,包括飛槳開源平臺和飛槳企業版。飛槳開源平臺包含核心框架、基礎模型庫、端到端開發套件與工具組件,持續開源核心能力,為產業、學術、科研創新提供基礎底座。飛槳企業版基于飛槳開源平臺,針對企業級需求增強了相應特性,包含零門檻AI開發平臺EasyDL和全功能AI開發平臺BML。EasyDL主要面向中小企業,提供零門檻、預置豐富網絡和模型、便捷高效的開發平臺;BML是為大型企業提供的功能全面、可靈活定制和被深度集成的開發平臺。
來源:IT時代網
IT時代網(關注微信公眾號ITtime2000,定時推送,互動有福利驚喜)所有原創文章版權所有,未經授權,轉載必究。
創客100創投基金成立于2015年,直通硅谷,專注于TMT領域早期項目投資。LP均來自政府、互聯網IT、傳媒知名企業和個人。創客100創投基金對IT、通信、互聯網、IP等有著自己獨特眼光和豐富的資源。決策快、投資快是創客100基金最顯著的特點。
小何
小何
小何
小何