飛槳深度學習開源框架2.0搶先看:成熟完備的動態圖開發模式

2020-12-11 量子位

允中 發自 凹非寺量子位 編輯 | 公眾號 QbitAI

百度飛槳於近期宣布,深度學習開源框架2.0搶先版本正式發布,進入2.0時代。其中一項重大升級,就是推出更加成熟完備的命令式編程模式,即通常說的動態圖模式。同時在該版本中將默認的開發模式定為動態圖模式,滿足用戶直接使用該模式完成計算機視覺、自然語言處理、語音、推薦等全場景的AI算法開發。可見飛槳團隊對採用動態圖模式開發的成熟度,以及未來主力推廣應用有著強大的自信和期待。

為什麼飛槳在開發模式升級上持續大量投入?

動態圖模式可以真正給廣大開發者帶來哪些實打實的好處?

本文將為你帶來深度解讀。

WHY動態圖?

深度學習框架在編程界面上,一般有兩種編程模式:命令式編程和聲明式編程,即動態圖和靜態圖。動態圖模式下程序可即時執行並輸出結果,編程體驗和調試便捷性更佳;靜態圖模式下需完成整體網絡結構的定義再執行,編程調試便捷性不夠,但能夠對全局編譯優化,更有利於性能的提升,並天然利於模型保存和部署。

飛槳同時支持這兩種編程模式,經過長期的深入技術探索和創新,已經實現同時兼顧兩種方式的優勢,達成了更有利於開發者的「動靜統一的理想國」:

模型開發時,採用動態圖模式,編程效率高調試方便;模型訓練部署時,支持動態圖一鍵式自動轉靜態圖,實現高性能訓練,並無縫銜接模型存儲和部署。

圖1 飛槳動靜統一開發模式

在飛槳開源框架最新版本上,該模式已經達到很高的成熟完備度。開發者既可體驗到動態圖開發模式帶來的極大的便利性,用動態圖實現深度學習領域最前沿的模型算法;又可享受到經過極致優化的運行效率,並且可以很容易的將動態圖轉換為靜態圖來進行推理和部署。

接下來將一一為你揭曉真實體驗效果。

成熟完備的動態圖開發模式,帶來便捷體驗

成熟的動態圖模式,可以為開發者帶來極致體驗,更優雅地編程。總結一下,便利性主要體現在以下三方面:

調試程序的便利性。在動態圖開發模式下,用戶運行飛槳提供的API後,可即時返回運行結果,不需要先創建計算圖再運行,這樣便於用戶更加方便地組織代碼,交互式地調試程序。組建網絡的高效性。在動態圖開發模式下,用戶可以使用Python的條件判斷、循環等控制語句來執行模型算法的運算,不再需要使用靜態圖中的控制操作來執行運算,這樣便於用戶更加高效地組建網絡。構建模型的靈活性。在動態圖開發模式下,用戶可以根據控制流選擇不同的分支網絡,也可以更自然地構建權重共享的網絡,更自然地實現自定義損失函數和循環網絡、以及其他新穎的網絡結構,從而靈活地進行深度學習模型的創新。同時,在最新版本上,飛槳動態圖提供了對計算機視覺、自然語言處理、推薦系統、語音識別等領域主流算法模型的全面支持,同時也對前沿的學術研究提供了非常好的支持。已開放的動態圖模型數量達到了100+。這些模型都已開源在GitHub上,開發者可基於動態圖模型進行AI應用開發和前沿學術研究:https://github.com/PaddlePaddle/models/tree/develop/dygraph

更多飛槳動態圖應用實踐方法,歡迎訪問飛槳官網文檔。

圖2.支持動態圖模式的算法模型(部分示例)

圖3 支持動態圖模式的前沿學術論文中的模型(部分示例)

極致優化的動態圖運行效率,享受卓越性能

飛槳對動態圖運行效率的打磨,已持續數個版本,目前在主流的任務上,飛槳動態圖執行模式已經能夠達到與靜態圖媲美的水平,甚至達到業界領先水平。

測試環境說明:CUDNN 7版本,CUDA 10.1版本,GPU V100單卡

在最新版本上,支持了自動混合精度和量化訓練功能,在大幅提升效率的同時,保證最終模型的效果和原來的一致。以自動混合精度為例,代碼實現如下:

混合精度訓練通過框架自動選擇訓練精度(AUTOMATIC CASTING)實現,過程如下圖所示。對於模型的每個執行操作,AutoCast模塊自動決定使用哪種精度的數據類型,例如:對於能夠使用fp16進行(比如conv,relu 等op),會優先使用fp16來進行運算,來提升執行效率;但是對於使用fp16會影響精度的op(比如exp,softmax運算等op),會自動轉換為fp32進行計算,保證收斂效果;對於單個op輸入的數據類型不一致的情況,會通過自動的轉換,使得能夠能夠支持運算。這些選擇都是框架會自動進行的,用戶僅需要調用上面示例的代碼即可。

圖4 混合精度訓練AUTOMATIC CASTING流程

一行代碼實現動轉靜,無縫銜接高速推理部署

飛槳框架最新版本的動轉靜功能,Python語法覆蓋度處於業界領先水平,滿足用戶使用動態圖編程調試、自動轉靜態圖訓練部署的需求;並且轉換後性能幾乎無損,實現媲美靜態圖的效果。

一行代碼實現動轉靜。

動靜轉換的操作非常簡單,僅需添加一個裝飾器( @to_static ),框架就會自動將動態圖的程序,轉換為靜態圖的program,並使用該program訓練、保存為靜態圖模型以實現推理部署。

飛槳動轉靜功能除了簡單的一鍵式操作,還在進一步降低轉換出錯概率、提供便捷的轉換診斷工具方面做了大量工作,為用戶提供便捷的體驗。

廣覆蓋Python語法,降低轉換出錯概率:飛槳通過將Python寫的動態圖代碼轉寫為靜態圖代碼,並在底層自動使用靜態圖執行器運行。這種轉換方式使得用戶可以靈活使用Python語法及控制流來構建神經網絡模型,並且能夠利用靜態圖的圖優化策略進行加速。目前飛槳為用戶提供以下幾大類的語法支持,語法覆蓋度處於業界領先水平:

控制流相關關鍵詞,例如if-elif-else條件,while循環等;運算類型,例如and、or、not邏輯運算,類型轉化等;Python函數相關,例如print,len,lambda表達式等;報錯異常相關,例如assert等;Python基本容器,例如list,dict等。提供轉換Debug功能,便捷查看轉換信息:為了方便開發者查看轉換後的靜態圖代碼是否符合預期,飛槳提供了類似編譯器的易用功能來幫助用戶:

報錯信息對應到動態圖代碼行。設置斷點功能:通過 pdb.set_trace(),用戶可以進行斷點調試。中間狀態轉換查看:飛槳框架為用戶開放接口設定日誌級別,讓用戶可以列印中間狀態轉換的代碼。查看轉換後的靜態圖代碼:飛槳框架為用戶提供一個可以直接調用的StaticLayer class,可以讓用戶獲取轉換後的靜態圖代碼。動轉靜後性能媲美靜態圖。

性能方面,在保證用戶一鍵輕鬆實現動態圖轉靜態圖的同時,動態圖轉靜態圖之後的推理性能和靜態圖完全一致,兼顧動態圖易用性和靜態圖部署性能的需求。

聞說雙飛槳,翩然下廣津

以上即飛槳動態圖模式的最新創新進展,動態圖開發模式經過持續數個版本的打磨,無論是功能特性、易用性,還是性能水平,都達到了相當的成熟完備度,甚至達到業界領先水平。飛槳一直潛心於底層基礎技術的深耕,堅持為企業用戶和開發者提供最靈活易用的產業級深度學習框架,並以『用戶體驗的持續優化』和『產業實踐的打磨』作為迭代向前的兩個重要驅動輪。

未來飛槳的發展離不開廣大開發者的加持,期待更多的開發者加入飛槳,飛槳也將持續完善動態圖開發模式,開放更多動態圖實現的領先算法模型,優化運行效率,為開發者進行模型開發和開展前沿創新工作提供助力,踏著飛槳的戰船疾風向前。

— 完 —

相關焦點

  • 飛槳開源框架2.0四大亮點搶先看:全新升級的API體系,成熟完備的...
    因此,API 是深度學習框架威力發揮的直接入口,對開發者使用體驗起著至關重要的作用,飛槳一直以來對 API 設計以及整體 API 體系的完善給予足夠重視,持續完善優化。飛槳開源框架2.0對 API 體系進行了全新升級,讓開發者們可以在使用飛槳研發探索的過程中體驗到隨心所欲、暢通無阻的愉悅感覺。
  • WAVE SUMMIT+2020深度學習開發者峰會召開,飛槳開源生態繁榮成勢
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVESUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 百度飛槳推出開源框架V2.0RC版本,帶來「編程一致、動靜統一」全新...
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVE SUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 走在開源最前端的百度,正在用百度飛槳、Apollo、ECharts們改變世界
    作為國內AI開源的扛把子,百度飛槳集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體,並根據本土化特點將開源框架與應用層面做了更好的結合,旨在打造自主可控的人工智慧作業系統,持續賦能廣大開發者,這意味著個人開發者也可以利用飛槳提供的平臺部署自己的深度學習模型。
  • 談起國內AI開源開放生態,為何這些大咖都在討論飛槳
    作為百度自主研發、國內最早開源開放、功能完備的產業級深度學習平臺,飛槳一直備受矚目,而且已經大規模應用於通信、電力、城市管理、工業、農業、林業等眾多關乎國計民生的領域,加速推動千行萬業實現智能化。在這次論壇中,吳甜做了主題為「飛槳推動產業智能化之路」的演講,系統介紹了開源開放的飛槳在產業智能化升級大潮中所扮演的重要角色。
  • 百度飛槳全景圖上新,重磅發布PaddleHelix螺旋槳生物計算平臺
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVE SUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 十行代碼就能搞定深度學習?飛槳框架高層API,輕鬆玩轉AI
    機器之心發布機器之心編輯部嚮往深度學習技術,可是深度學習框架太難學怎麼辦?百度傾心打造飛槳框架高層 API,零基礎也能輕鬆上手深度學習,一起來看看吧?另:文末有福利,一定要看完呦~高層 API,What深度學習作為人工智慧時代的核心技術,近年來無論學術、還是工業領域,均發揮著愈加重要的作用。然而,深度學習理論太難學,開發過程太複雜,又將許多人拒之於深度學習的門外。
  • 深度學習CPU加速方案,飛槳全流程開發工具PaddleX 打通OpenVINO...
    飛槳全流程開發工具PaddleX,在打通深度學習全流程開發的基礎上,為產業開發者提供了多種高性能部署方案及詳細的示例工程。  事不宜遲,讓我帶您快速了解一下這套方案吧!  首先,飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體。目前,飛槳已凝聚超230萬開發者,服務企業9萬家,基於飛槳開源深度學習平臺產生了31萬個模型 。
  • 百度飛槳全景圖曝光 升級35項功能
    【TechWeb】5月20日消息,作為國內最早開源開放的深度學習平臺,百度「飛槳」已經凝聚了194 萬開發者,服務8.4萬家企業,創造了23.3萬模型,成為國內服務開發者規模最大、功能最完備的開源開放深度學習平臺。作為百度「AI大生產平臺」的基礎底座,飛槳的每一次能力升級總都吸引廣大人工智慧開發者的目光。
  • 十行代碼就能搞定深度學習?飛槳框架高層API,一起輕鬆玩轉AI
    另:文末有福利,一定要看完呦~高層 API,What深度學習作為人工智慧時代的核心技術,近年來無論學術、還是工業領域,均發揮著愈加重要的作用。然而,深度學習理論太難學,開發過程太複雜,又將許多人拒之於深度學習的門外。
  • 百度飛槳全新發布「大航海」計劃,5億資源重磅加碼高校人才培養
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVE SUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 百度CTO王海峰:開源開放是驅動技術創新和產業發展的核心動能
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVE SUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 百度飛槳被贊是「自主研發的範本」
    而飛槳作為百度自主研發,國內最早開源開放、技術領先、功能完備的產業級深度學習平臺,已大規模應用於通信、電力、城市管理、工業、農業、林業等眾多關乎國計民生的領域,加速推動千行萬業實現智能化。除了上述各界專家表達了對飛槳的支持,這一國產自主研發的深度學習框架,也收穫不少專家點讚。
  • 百度飛槳為AI獨立發展提供保障
    新一代人工智慧技術的發展,離不開晶片與深度學習框架兩大基礎。隨著中國科研創新能力的提升,技術領域取得大量突破。自2016年百度飛槳深度學習框架率先開源後,陸續有企業、高校等也開源了各自研發的深度學習框架。飛槳等平臺在技術上已取得突破與領先,但在市場佔有率、生態成熟度等方面仍有提升空間。
  • 百度飛槳又有大動作!推出圖神經網絡屠榜「必殺技」UniMP
    圖神經網絡最權威榜單OGB  圖神經網絡是用於圖結構數據的深度學習架構,將端到端學習與歸納推理相結合,有望解決傳統深度學習無法處理的因果推理、可解釋性等問題,是非常有潛力的人工智慧研究方向  UniMP基於飛槳圖學習框架PGL(Paddle Graph Learning)實現,依託飛槳核心框架以及自研的圖引擎。
  • 曠視開源深度學習框架天元!動靜合一,訓推一體,落地邊緣設備
    現在,這套深度學習框架終於開源啦!這也是本月繼清華Jittor之後,又一個開源的國產深度學習框架。作為曠視絕對招牌之一,MegEngine是什麼,有何特點?靜態圖和動態圖之爭也就是TensorFlow和PyTotch之爭,但是兩種框架真的不得兼得嗎?天元給出的答案是,可以。動靜合一就是天元的做法,從結果上看,使用靜態圖提速約5%-20%。
  • 一個人完成AI開發和部署 百度飛槳實現鐵路貨車車號精準檢測
    (圖3:通用OCR識別效果)飛槳助力——快速開發、直接落地「多維度對比後,最終我們選擇用百度飛槳。因為飛槳的AI Studio實訓平臺上有很多中文實操案例可以參考,對新手來說不僅大大降低了技術門檻,還能少踩坑,將更多精力投入在產品上。」
  • 2020啟智開發者大會開幕 百度飛槳正式發布「OpenI-星辰PPSIG共建...
    大會以「啟智築夢 開源先行」為主題,立足於國際國內開源大環境和發展趨勢。開源領域頂尖專家學者和企業領軍人物共聚一堂,探討開源開放呈現出的新形勢、新格局、新機遇。百度飛槳全面參與,並承辦深度學習專場,展現了飛槳的最新技術進展及成果。