AI 技術需要開源、開放。就在剛剛結束的中關村論壇曠視平行論壇中,曠視正式發布了天元 1.0 預覽版。
9 月 18 日,中關村論壇曠視平行論壇中,曠視研究院院長、首席科學家孫劍正式發布了開源深度學習框架天元 1.0 預覽版,并對天元的技術特性與發展方向進行了深入解讀。
曠視 2014 年開始研發深度學習框架天元。目前,曠視 1400 多名研發人員全員使用天元 MegEngine,曠視所有算法均通過天元 MegEngine 進行訓練和推理。
曠視天元 1.0 預覽版,歷經 8 次迭代 5 大升級
2020 年 3 月,曠視正式將天元開源,提供給全球開發者使用。開源以來,天元從 3 月的 Alpha 版本升級到 6 月的 Beta 版本、到 9 月的 1.0 版本,期間實現了 8 次迭代。
此次天元 1.0 預覽版,相比之前的版本,實現了 5 項重要的技術升級。
首先,天元 1.0 預覽版提供了全新的 Imperative Runtime。天元通過重寫動態執行引擎,打破過去幾個版本中動態圖的限制,解決了一系列資源釋放的問題,并大幅提升了動態自由度,讓使用 GPU 計算像 NumPy 一樣方便自如。
其次,天元 1.0 預覽版新增自動代碼裁剪功能。在實際的 AI 應用開發中,用戶經常面臨模型大小的問題。自動代碼裁剪功能讓用戶可以全自動的針對自己網絡使用的算子進行代碼裁剪,不用手工配置就能最小化推理時的代碼體積,極大提升端側推理的競爭力。
此外,天元 1.0 預覽版進行了 10 余項推理側性能優化,進一步提升了端側推理性能。同時,天元支持了更多的國產硬件。天元對于主流的一些國產硬件進行了接入,方便在國產 NPU 芯片上進行推理工作。
最后,天元實驗性的開發了一套基于 MLIR 的 JIT 引擎,嘗試利用 MLIR 這一項非常有前景的方案進行計算圖的進一步融合、優化來整體提升深度學習訓練和推理的速度。
經過了半年的開源工作,現在天元擁有了完整的功能體系。天元希望能依靠訓推一體這一特性,讓產業應用可以更快、更高效的落地。讓深度學習也可以簡單開發。
天元三大核心優勢,實現簡單開發
從開源到現在經過半年的技術迭代,天元擁有了三大核心優勢:訓練推理一體、全平臺高效支持、動靜結合的訓練能力。
核心優勢 1:訓練推理一體
所謂訓練推理一體,就是讓訓練與推理不再是完全孤立的兩個步驟。為什么訓推一體如此重要?在傳統深度學習模型開發流程中,從訓練到推理,開發者需要經過一系列格式轉換。但隨之而來的也會有種種復雜難題,比如推理框架對算子不支持、作為中間轉換格式的 ONNX 版本不一致,轉換成 Caffe 過程中存在一些層的中間形狀變化導致無法轉換,涉及到量化模型時量化參數的定義不一致等,都會增大轉換的難度。
除了轉換難外,由于各個平臺的差異性和預處理邏輯的復雜性,訓練側提供的預處理邏輯很有可能與推理側實現的結果不一致,推理和訓練的精度對齊變得非常困難。
傳統深度學習模型開發環境下,在不斷地對分配、適配和微調的過程中,一個模型的落地工作往往需要數天到數周時間。如果還涉及到多平臺的部署,則以上問題復雜度和難度會成倍增加,讓模型交付變得非常困難。
為了解決傳統模型開發的一系列痛點,天元在訓練和推理側均是一套底層框架提供支持,對算子的支持、量化參數的理解均高度一致。同時,天元支持各類常用的 CV 算子操作,便于開發者將預處理的代碼邏輯直接寫入模型結構當中,從而讓訓練和推理間的差距大幅度縮小,開發者不再需要為了模型轉換而頭疼。
經過各方用戶一段時間的實際驗證,使用天元整個模型,可以將從訓練到推理的交付時長縮短至傳統方案的十分之一以下,真正做到天級交付。
另外,由于訓推一體化,模型在訓練階段與推理階段可以高度對齊,這使得量化感知訓練產生的模型可以無風險的在端側應用。同時天元擁有精心設計的量化訓練模塊,大大降低了量化感知訓練模型的使用門檻。
以上表格中,在各類模型上,通過應用量化感知訓練,可以在極小的精度下降前提下,使用 int8 推理。量化感知訓練產生的高精度模型,配合上天元經過高度優化的 int8 算子,可以將各個常見網絡的推理耗時降至浮點模型的 30%~50% 以內,有效帶來性能加速。
核心優勢 2:全平臺高效支持
廣泛而高效的平臺支持,是實現訓推一體的前提。只有在各個平臺上都提供足夠高效便捷的推理能力,才能真正的免除模型轉換工作。
對于開發者常用的各類 CPU、GPU 和 NPU,天元均提供了全面而高效的支持,讓用戶無需為每個平臺重新學習重新開發,可以讓用戶一套模型、一套代碼走天下。
天元支持的設備包括 NVIDIA GPU、ARM、X86 和 AMD GPU 平臺以及各類國產 NPU 芯片。同時,測試表明,相比其他一些框架,天元在 CUDA、ARM、X86 平臺上都具備性能優勢。
深度學習應用中,運行時的內存占用是一個重要的指標。由于天元的自動內存優化策略在訓練側得到了充分的打磨,天元可以在內存占用和推理性能之間取得良好的平衡。
僅依靠通用的優化策略,天元對于任意的模型結構都有足夠良好的優化表現,框架無需針對網絡結構特殊優化。這保證了天元可以在開發者自己的模型結構也保持較低的內存占用,讓天元可以幫助各個領域的開發者降低內存占用量,提高競爭力。
端側推理時,推理程序的二進制體積同樣是一項非常重要的指標,對于端側的 SDK 競爭力非常重要。
對此,天元提供了自動代碼裁剪機制,根據模型的結構,將不需要的 kernel 實現和代碼片段裁減掉的過程全自動,從而將代碼體積大幅度縮小,大幅度提升端側 SDK 的競爭力。
核心優勢 3:動靜結合的訓練能力
動態圖訓練對程序員友好,可以隨時停下來 Debug;而靜態圖的訓練好處是可以讓訓練的精度、內存消耗和訓練速度達到最優。如何兼得動態圖訓練和靜態圖訓練的好處?天元通過動靜結合支持快速模型設計。動態模式下,天元可以方便的排查模型問題,在遇到錯誤后及時停下,便于分析模型結構上的異常問題。通過添加一行 trace,模型可以被直接轉換為靜態圖模式,獲得靜態圖所獨有的圖優化,一方面可以更好的對顯存進行復用,提高顯存利用率,另一方面可以優化計算順序,提升模型的訓練性能。
在 Beta 版天元推出了亞線性內存優化技術。目前天元是唯一一個支持全自動亞線性內存優化技術的框架。靜態模式下,在靜態圖的基礎上,額外添加一個配置項,則可以便捷的啟用亞線性內存優化。天元內置的 Sublinear 亞線性內存優化功能,可以對任意的模型結構進行內存優化,在相同的顯卡下,可以訓練出更大更準確的模型。
亞線性內存優化的特點是參數量越大,從而節省下的顯存量越多。因此越龐大的模型,從中獲得的收益就越大。由于算法的普適性,無論是任何的模型結構,都可以全自動的被亞線性內存優化機制處理。
共同推進開源生態建設
在使用上,天元模型中心 Model Hub 提供了豐富的預訓練模型,包括圖像分類、目標檢測、圖像分割等模型,并且每個模型都提供了 SOTA 級別準確率,讓使用者可以便捷的上手天元,站在巨人的肩膀上開始自己的科研工作。
此外,天元已經與小米 MACE、OpenAI Lab Tengine 進行了深度的集成,用戶可以將 MegEngine 的模型直接轉換到 MACE 或 Tengine 中執行,從而獲取在各類異構設備上執行深度學習模型的能力。
深度學習框架的未來路線
天元 1.0 預覽版的發布意味著天元已經迭代成為一個完備的深度學習框架。未來天元將如何迭代發展?曠視天元技術團隊認為深度學習未來會繼續蓬勃發展,在不斷涌現新技術新方案的同時,現有的方案和技術會進一步的范式化,簡化整個流程,像傳統軟件開發一樣精確分工、快速迭代。因此天元會持續在易用性和整個深度學習落地的流程化上努力,讓深度學習應用的流程更加清晰易懂,從而大幅提高 AI 的生產力。
此外,在過去的一段時間中,深度學習框架從編譯器中借鑒了相當一部分的內容,曠視天元技術團隊認為隨著 MLIR 等新興技術的產生,框架將會進一步向編譯器化發展,從而獲得更大幅度的性能提升。
最后,隨著大量云、端上的 AI 芯片的衍生以及各類神經網絡加速器應用的愈加廣泛,每家芯片自身的推理框架越來越強大。訓推一體的核心是在訓練階段對芯片的充分了解和兼容,因此如何讓用戶能從一開始就訓練出一個適用于最終要用到的芯片的模型,才是讓整個落地流程最高效的重點。天元希望能夠與芯片協同演進,協同發展,讓整個生態能夠更加健康蓬勃的發展。
AI 產業落地浪潮中,開發者只有在友好、開放、創新的開發環境中,才能更好地進行 AI 的價值設計與開發,為全球輸送 AI 動能。歡迎全球開發者,加入天元社區,一起讓深度學習也可以簡單開發。