清華大學計算機系教授胡事民:自研深度學習框架“計圖”2大創新6大特性詳解

6 月 21 日,由北京智源人工智能研究院主辦的 2020 北京智源大會正式開幕(直播入口: https://2020.baai.ac.cn ),大會爲期四天,各主題論壇和分論壇將圍繞如何構建多學科開放協同的創新體系、如何推進人工智能與經濟社會發展深度融合、如何建立人工智能安全可控的治理體系、如何與各國攜手開展重大共性挑戰的研究與合作等一系列當下最受關注的問題進行交流和探討。

在智源大會第三天(6月23日)下午的AI框架主題論壇上,清華大學計算機系教授胡事民作了題爲《統一計算圖:機器學習框架「計圖」的創新與探索》的演講。他分享了國產深度學習框架“計圖”所做的創新與探索,詳細介紹了該框架的特性及創新點,及最新研究進展。

以下內容根據胡事民的演講整理,未經本人確認。

爲什麼要研發國產深度學習框架“計圖”?

演講中,胡事民談到了深度學習框架“計圖”研發的初衷。

他表示,回溯深度學習框架在過去十年間的演進,國外的TensorFlow 、PyTorch 、caffe 等主流深度學習框架發展迅速,國產深度學習框架的發展相對慢一些。

我國在人工智能領域取得了重要進展但發展不均衡,我們長於算法,弱於學習平臺。我國的AI研究和算法研究多基於TensorFlow 、PyTorch等機器學習平臺,這容易陷入“卡脖子”困境。

建設機器學習平臺難度很大,需要對機器學習算法有深刻理解,精準把握圖形圖像應用,及巧妙應用底層系統軟件。儘管挑戰大,但中國應該積極自主研發機器學習平臺,這既是基於自主創新的需要,也是基於人才培養的需要。

也正是在這樣的背景下,基於元算子和統一計算圖的深度學習框架“計圖”(Jittor)應運而生。2020年3月20日,計圖正式發佈。

胡事民表示,計圖帶來一次深度學習框架跨越的機遇,他希望該框架能夠培養國內機器學習平臺人才,解決對國外平臺依賴性的問題,希望計圖有機會能夠超越國外的主流框架。

“計圖”架構全景圖及六大特性

據胡事民介紹,計圖的整體架構自下而上分爲四層:系統層、算子層、框架層、應用層,具體如下圖:

在多種應用中,相比國際主流的平臺,計圖的性能提升了5%-153% 。

胡事民表示,計圖框架具有六大特性:

1、反向傳播閉包

元算子是反向傳播閉包,元算子融合的算子也是反向傳播閉包,使Jittor 可以統一“前向”和“反向”計算圖;並可求高階導數。

2、算子動態編譯,運行時優化

用戶編寫的算子與模型,將在運行的時候,生成高性能的代碼,並且進行動態編譯優化。

3、統一內存管理,節省內存

如果GPU內存耗盡了可以使用CPU內存彌補

4、極簡的自定義算子開發(提出Code 算子)

用戶可以在Python 中內聯C++代碼,數行代碼即可完成高性能算子的開發。

5、輔助模型遷移工具

能做到“一鍵遷移”,遷移工具能幫助用戶快速地從PyTorch 遷移到Jittor 。

6、計圖模型庫

今年5月30號,計圖發佈了GAN模型庫。胡事民透露,將在6月底發佈計圖分割庫。此外檢測庫,3D點雲庫,3D網格庫等更多模型庫將陸續發佈。

兩大創新點

胡事民表示,計圖的創新點主要體現在兩個地方:一是統一計算圖。靜態圖高效,動態圖易用性好,但二者卻不可兼得,針對這個行業痛點,統一計算圖是一個好的解決方案。

第二個創新點是元算子,針對業內存在的算子開發和優化困難痛點,元算子融合與動態編譯優化能很好解決這個問題。

接下來,胡事民重點介紹了這兩大創新點。

元算子融合

該創新特性設計主要針對行業痛點出發。Tensorflow算子數量2000+,PyTorch 算子數量700+,龐大的算子庫維護、優化困難。

計圖創新性的將神經網絡計算所需的基本算子進行了歸納總結,提出了元算子(18個)和算子融合的概念。具有效率高,易於開發,可以統一優化。

元算子一共分爲三類:重索引、重索引化簡、元素級。

其中,重索引算子是一類一對多映射關係的元算子。常用的重索引算子有廣播(Broadcast)、填補(Pad)、切分(Slice)。

重索引化簡算子是一類多對一映射關係的元算子。常用的重索引化簡算子有累乘(Product) 、累加(Sum)、取平均值(mean )。

元素級算子是一類一對一映射關係的元算子。逐個元素的運算都屬於元素級元算子。

元算子是反向傳播閉包(元算子的反向傳播也是元算子)。雲算子可以自動生成其反向傳播算子。

多個元算子之間可以進行相互融合。元算子可以通過融合算法,自動生成複雜的算子。

元算子具有完備性,它可以覆蓋絕大多數深度學習算子。對於元算子無法覆蓋的算子,計圖提供了Code算子,以此完成100% 的算子覆蓋。

統一計算圖

計算圖是所有深度學習框架用來描述模型的數據結構。計算圖可分爲靜態計算圖和動態計算圖。

靜態計算圖和動態計算圖各有優缺點,靜態計算圖的優點是高效,缺點是靈活性差;動態計算圖的優點是易用,靈活性高,缺點是效率高。

易用性和高效性不可兼得。對此,計圖做出了“統一計算圖”的創新。

統一計算圖兼顧高效和易用,除了統一靜態圖和動態圖,統一計算圖還完成了多種統一的計算圖:

  • 統一管理前向反向圖,支持高階導數;傳統機器學習框架區分前向和反向傳播,統一計算圖將多次迭代的前向和反向計算圖拼接,節省了大量的重複計算,提升靈活性和優化空間。

  • 統一管理CPU-GPU內存,突破GPU顯存限制統一;
  • 統一同步異步運行接口,使得數據讀取,內存拷貝,模型計算可以同時進行,提升性能。

  • 統一管理多次迭代的計算圖,使得框架可以實現跨迭代的融合優化。

計圖的特點與新進展

1、動態編譯

計圖內置的元算子編譯器,可將Python 代碼動態編譯高性能C++代碼。

計圖內置LLVM兼容的優化編譯遍(Pass)。這些編譯遍會根據硬件設備,自動優化動態編譯的代碼,並對C++代碼進一步優化,生成對計算設備友好的底層算子。

2、骨幹網絡

計圖目前支持包括AlexNet、VGG、ResNet等在內的30+骨幹網絡,並還在不斷完善中。

3、GAN模型庫

計圖目前支持包括27個主流的GAN模型庫,包括圖像分類、檢測、分割、機器疼強化學習等。在性能方面,Gan 模型庫速度比PyTorch均得到提升,半數模型性能提升超過1倍。

4、模型轉換工具

計圖和PyTorch的接口較爲相似,內置自動轉化腳本,可輕鬆實現轉化。

5、分佈式。

無需修改訓練代碼,只需修改啓動命令;自動數據並行,實現多卡訓練。

演講中,胡事民帶來了計圖的最新進展。首先在Res2Net神經網絡骨幹模型上,通過最新構建層間多尺度,實現更強特徵表達,顯著提升多種常見視覺分析模型性能,計圖上得到10%的性能提升。

此外在PointNet ++ 上,PointNet ++ 分類準確率超過了原論文(92.3 VS91.9),模型代碼已經公開在jittor-online-first 上,更多幾何學習模型和算法也將在後續不斷髮布。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章