5月20日的“WAVE SUMMIT”峯會上,飛槳開源框架發佈了1.8版本。如今飛槳即將進入了2.0時代。飛槳2.0的四大創新帶來體驗變革,助力 AI 產業應用和科研創新再次升級!

1. 全新升級的 API 體系,讓深度學習技術的創新和應用更簡單

深度學習框架可以說是開發者們在人工智能的海洋中乘風破浪的動力引擎,而 API 就是這個引擎的控制面板上的按鈕。因此,API 是深度學習框架威力發揮的直接入口,對開發者使用體驗起着至關重要的作用,飛槳一直以來對 API 設計以及整體 API 體系的完善給予足夠重視,持續完善優化。飛槳開源框架2.0對 API 體系進行了全新升級,讓開發者們可以在使用飛槳研發探索的過程中體驗到隨心所欲、暢通無阻的愉悅感覺。

體系化:基於長期的產業實踐積累與用戶使用習慣的洞察,飛槳重新梳理和優化了 API 的體系結構,使其更加清晰、科學,讓廣大開發者可以更容易地根據開發使用場景找到想要的 API 。此外可以通過 class 和 functional 兩種形式的 API 來模塊化的組織代碼和搭建網絡,提高開發效率。同時, API 的豐富度有了極大的提升,共計新增 API 217個,優化修改 API 195個經過實際驗證,開發者使用全新體系的 API 可以高效復現最前沿的論文中的算法,開發體驗進一步提升。

簡潔化:提供更適合低代碼編程的高層 API。像數據增強、建立數據流水線等可以標準化的工作流程,以及一些經典的網絡模型結構。在飛槳開源框架2.0中,都被封裝成了高層 API ,開發者只需10行代碼就可以編寫完成訓練部分的程序。

最爲重要的是,與它框架相比,飛槳高層 API 和基礎 API 並不是相互獨立的兩個體系,二者完全可以靈活地交叉使用,這一特點稱爲“高低融合”。對於希望高效完成代碼開發的開發者,僅需要使用高層 API;而對於想要在高效的開發過程中做定製化調整的開發者,可以將高層 API 和基礎 API 混合使用,從而滿足差異化的需求。

此外,新版本的 API 完全兼容歷史版本,給開發者提供了寬裕的升級緩衝期。但建議開發者在使用飛槳開源框架2.0及之後版本時,使用全新的 API,以便在飛槳的不斷優化改進中受益。

2. 成熟完備的動態圖模式,帶來最佳編碼體驗

經過長時間的打磨與技術積累,飛槳的命令式編程模式,也就是大家常說的動態圖模式已趨於成熟。此次升級,飛槳將默認的開發模式升級爲動態圖模式,支持用戶使用動態圖模式完成視覺、文本、推薦、語音、強化學習等全類別的模型算法開發。

動態圖可以爲開發者帶來最佳的用戶體驗,可以幫助開發者隨時查看變量的輸入、輸出,方便快捷的調試程序;可以使用 Python 原生的控制流(如:if,for等)靈活組網。在一些複雜開發場景諸如構建權重共享網絡或嘗試更加新穎的網絡結構時都會更加便捷。

但是動態圖的模型在使用 C++ 部署時會面臨巨大的挑戰,這主要是因爲 Python 程序原生的控制邏輯保存成靜態網絡結構比較困難。魚和熊掌真的不可以兼得嗎?這個真的可以有!

飛槳開源框架2.0完美地實現了動靜統一,提供了全面完備的動轉靜支持,在 Python 語法支持覆蓋度上達到領先水平。開發者使用飛槳可以到達動態圖編程調試,自動轉靜態圖訓練部署的“理想國度”。

動靜轉換的操作也非常簡單,僅需添加一個裝飾器(to_static),框架就會自動將動態圖的程序,轉換爲靜態圖的 program,並使用該 program 訓練並可保存靜態模型以實現推理部署。同時飛槳還做到了模型存儲和加載的兼容統一,保證動轉靜之後保存的模型文件能夠被純動態圖加載和使用。

此次升級後,飛槳動態圖支持的模型數量達到了100+,涵蓋計算機視覺,自然語言處理,推薦等多個領域,並且動態圖整體的訓練和部署的效率都有提升。新版本的動態圖支持了自動混合精度和量化訓練功能,實現了比靜態圖更簡潔靈活的混合精度訓練接口,達到媲美靜態圖的混合精度和量化訓練效果。無論從功能還是性能角度,飛槳的動態圖在國產深度學習框架中都處於領先地位

3. 更強大的分佈式訓練能力,易用性與靈活性雙發力

分佈式訓練技術是應對大規模深度學習模型訓練最有效的方法,同時也是飛槳的核心技術之一。在新版本中,飛槳從易用性和技術突破兩個維度,進一步提升了分佈式訓練能力。

統一的分佈式訓練 Fleet API。在全新的API體系下,分佈式訓練的 API 也有較大的調整。飛槳將用戶常用的通信策略和啓動方式等操作,以及原先分散各處的分佈式優化策略相關的API統一歸納到 paddle.distributed.fleet 之下,形成了 Fleet API。

開發者可以通過統一的策略配置,實現多種並行模式和加速策略,並且可以通過一行代碼啓動自動混合精度、多機優化算法或通信優化策略等功能,開發過程更加靈活、便捷,同時也兼容支持動態圖模式

而對於一些 AI 科研人員,如果希望可以靈活的完成一些高級開發工作,則可以使用 paddle.distributed.下的其它 API。這些 API 主要包含了通信的基礎操作和啓動方式等操作,如 broadcast 等集合通信算子和 send/recv 操作,以及 spawn 方式動態圖多卡簡易啓動等。

此外,分佈式訓練自動化能力也得到了進一步提升。由於優化策略的數量較多,爲了讓用戶更加方便的使用這些令人眼花繚亂的優化策略,飛槳提供了自動並行功能,僅需要一行配置就可以自動組合出較優並行優化策略,爲開發者帶來了更好的使用體驗。

推出異構參數服務器訓練架構。該訓練架構一舉解除了傳統參數服務器必須嚴格使用同一種硬件型號 Trainer 節點的枷鎖,使訓練任務對硬件型號不敏感,即可以同時使用不同型號的硬件高效組合進行訓練,如 CPU、v100、P40、K40、崑崙芯片等。

同時還可以解決搜索推薦領域大規模稀疏特徵模型訓練場景下, IO 佔比過高導致的芯片資源利用率過低的問題通過異構參數服務器架構,用戶可以在硬件異構集羣中部署分佈式訓練任務,例如雲服務器集羣,實現對不同算力的芯片高效利用,爲用戶提供更高吞吐,更低資源消耗的訓練能力

發佈分佈式訓練擴展工具包 FleetX。FleetX 基於飛槳原生提供的分佈式訓練能力,提供了面向不同的模型的最佳分佈式訓練實踐,在保證收斂效果的前提下最大化用戶的集羣使用效率。此外, FleetX 將分佈式訓練場景下數據集讀取、標準公開數據集和常用模型實現了接口封裝,使用戶可以實現一鍵式部署分佈式訓練任務,大大提升了易用性,歡迎廣大開發者體驗!

4. 硬件生態 “芯芯向榮”,軟硬一體深度優化

作爲技術領先、功能完備的深度學習平臺,飛槳對於人工智能硬件做了全面且深度的適配。

在訓練端,飛槳一直與 Intel 和 NVIDIA 有着深入緊密的合作,能夠完整支持全系列的 Intel CPU 和NVIDIA GPU。在推理端,飛槳依託原生推理庫 Paddle Inference 和輕量化推理引擎 Paddle Lite,實現了對服務器、移動端和邊緣端全場景多種硬件的全面支持。

升級後的飛槳在硬件生態方面又做了進一步的拓展。CPU 方面更好地支持了飛騰( FT1500/200 )和華爲鯤鵬,並新增了百度崑崙和曙光公司的海光 DCU 支持;支持的操作系統包括麒麟、統信和普華。此外,對於華爲昇騰310、 MTK NeuroPilot APU 等硬件飛槳也在持續適配和優化。

當前,飛槳已經實現了完備的芯片支持,對國產硬件支持的全面性居於業界首位。截至2020年9月,飛槳已經與共計19家廠商的27種芯片/ IP 完成了適配或者處於適配過程中,引領深度學習軟硬一體深度融合優化。

以上就是飛槳2.0的幾個重要“進化”點,在未來,飛槳還將會不斷演進升級,提升開發者的使用體驗,讓飛槳在深度學習開發過程中成爲廣大開發者們身體的一部分。

如在使用過程中有問題

可加入飛槳官方 QQ 羣進行交流:1108045677。

如果您想詳細瞭解更多飛槳的相關內容,請參閱以下文檔。

飛槳開源框架項目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee:

https://Gitee.com/PaddlePaddle/Paddle

飛槳官網地址:

https://www.paddlepaddle.org.cn/

飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用爲基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,包括飛槳開源平臺和飛槳企業版。

飛槳開源平臺包含核心框架、基礎模型庫、端到端開發套件與工具組件,持續開源核心能力,爲產業、學術、科研創新提供基礎底座。飛槳企業版基於飛槳開源平臺,針對企業級需求增強了相應特性,包含零門檻 AI 開發平臺 EasyDL 和全功能 AI 開發平臺 BML。

EasyDL 主要面向中小企業,提供零門檻、預置豐富網絡和模型、便捷高效的開發平臺;BML 是爲大型企業提供的功能全面、可靈活定製和被深度集成的開發平臺。

相關文章