日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

旷视MegEngine核心技术升级

發布時間:2023/11/28 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 旷视MegEngine核心技术升级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

曠視MegEngine核心技術升級
7 月 11 日,曠視研究院在 2020 WAIC · 開發者日「深度學習框架與技術生態論壇」上圍繞 6 月底發布的天元深度學習框架(MegEngine)Beta 版本核心技術升級與開源生態建設進行了首次深度解讀。
7 月 11 日,曠視研究院在 2020 WAIC · 開發者日「深度學習框架與技術生態論壇」上圍繞 6 月底發布的天元深度學習框架(MegEngine)Beta 版本核心技術升級與開源生態建設進行了首次深度解讀。
作為一款訓練推理一體化、動靜合一、兼容并包、靈活高效的新型深度學習框架,天元能夠幫助企業與開發者的產品從實驗室原型到工業部署平均節省 90% 的流程,真正實現小時級的轉化能力。
曠視開源天元(MegEngine)這個在內部全員使用、工程實踐超過 6 年的深度學習框架,為的是能夠將自己的經驗與成果同業界分享。通過開源社區的力量,幫助更多開發者把自己的精力集中在算法的研發和業務場景中,從煩瑣的流程,煩瑣的性能優化和模型復現中解放出來,真正實現 「深度學習開發,從未如此簡單」。
據曠視研究院AI系統高級技術總監許欣然介紹,從 3 月份開源到 6 月底 Beta 版發布,天元共經歷了 5 個版本的迭代,得到了曠視內部與外部開發者們的寶貴建議與支持。天元 Beta 版核心技術升級包括三大特性:

  1. 完善量化訓練和量化推理功能。
    天元Beta版本提供了靈活的量化訓練和高效的量化推理的能力,讓開發者可以快速的完成高精度的量化訓練并直接部署到推理側,以最小的精度代價獲得最高的推理性能。
  2. 添加對ARM CPU的支持。
    天元添加了對ARM CPU的支持,在ARM、CUDA、X86三個主流計算平臺上都提供了經過深度優化的 kernel 實現,結合天元優異的計算圖優化技術,在量化、浮點模型上均提供了業界領先的計算性能和內存顯存占用。
  3. 優化推理功能。
    天元對推理功能做了一系列的功能優化,提供 Profile工具、上手指南、性能優化教程等內容,幫助開發者快速上手,獲得更高的推理性能,讓開發者在推理的時候可以使用更方便,開發更高效。
    另外,天元 Beta 版新增 10 余個 SOTA 模型,并正式提供中文版 API 文檔,還新增了 Objects 365 Dataset 的 API 和多機訓練參數打包等功能。
    除了功能和性能上的改進之外,天元框架還與小米 MACE、OPEN AI LAB(開放智能) Tengine 等推理框架進行了深度集成。
    天元的 Github 項目 MegEngine:
    https://github.com/MegEngine/MegEngine
    并參與貢獻者計劃:
    https://github.com/MegEngine/Resource/blob/master/Contributor_Program.md
    以下是具體技術細節與性能對比。
    模型量化——訓練與推理
    背景:
    在當前,提高神經網絡推理性能的主流方法是在 GPU 和各類嵌入式設備上,對深度學習模型的推理過程進行量化,即使用 int8 乃至更低精度進行推理。然而該方案的問題在于,若使用量化后的模型進行推理則可能會面臨因量化帶來的精度損失。另外,由于模型量化領域發展迅速,投入大規模使用僅兩三年,大量開發者當前所使用的量化工具性能參差不齊,模型量化后精度損失較多;又加上種種量化細節不對齊,使得模型轉換的步驟進一步加劇了精度上的問題。在這樣的條件下,開發者不得不通過更大的量化模型來達成業務目標,使得量化帶來的性能提升被抵消,難以充分發揮出設備的全部計算性能。
    解決方案: 基于天元訓練推理一體化架構,同時站在訓練和推理的全局視角上優化模型量化的體驗和效果,讓開發者可以在保持模型精度的同時,獲得更大的性能提升。

天元希望開發者能夠用上經曠視內部長期工業驗證的量化訓練功能,并能夠根據模型情況靈活配置不同量化模式,最大限度降低量化所帶來的精度損失;另外,天元提供高效的原生 int8 推理能力。用戶可以一站式完成量化訓練加推理過程,免除框架間的轉換,保持模型精度。
由此,開發者便可以在保持模型精度的同時,獲得更大的性能提升。
量化訓練方式的選擇
背景: 關于神經網絡模型量化,最關鍵問題是如何選取量化表示時的縮放系數(也被稱之為 scale)。針對這一點有兩種方案:后量化統計方法(Post Quantization)、量化感知訓練(Quantization Aware Training)。

所謂后量化統計方法,即在模型正常訓練結束后進行數值統計并量化。這種方法因流程簡單而在當前應用廣泛。其缺點在于,當模型較小的時候則精度偏低;同時該方法由于訓練階段與量化步驟分離,導致訓練與推理階段精度不一致,只有在完整訓練之后才能知曉量化的具體精度下降程度。量化感知訓練則指的是在訓練階段就模擬量化推理過程,讓模型對量化過程進行適配。此方法能讓模型保持更高精度,且在訓練階段就能掌握推理的精度,其缺點在于流程較為復雜。

解決方案: 基于曠視內部學術研究與工程實踐積累的大量經驗,天元實現了方便快捷量化感知訓練功能,讓開發者可以只增加少量流程,就能利用量化感知訓練的能力。這使得曠視的研究人員與工程師在給定算力下,能夠獲得更高的推理精度,進而充分發揮算法優勢。另外,在訓練階段即可知曉最終推理精度,加快了模型迭代速度,讓模型的開發過程更為高效、可控。
量化接口使用流程。 具體而言,整個量化接口的使用分為五步。如上圖,在正常模型訓練的搭建網絡、訓練網絡、生成序列化模型三步上,額外增加了量化參數配置、量化感知訓練兩個步驟。

一般來說,在默認的量化配置下,開發者就可以獲得比較優良的精度,這對應于上圖右側黃色高亮的三條語句,操作簡單、方便。
量化接口設計。 量化接口的具體設計,分為浮點模塊、偽量化(FQ) 模塊和量化模塊。三者分別執行浮點、模擬量化和真實量化工作。

具體而言,開發者首先在普通模塊上進行正常的模型訓練工作;然后,可以轉換至偽量化(FQ) 模塊,通過配置不同的 Observer 來配置不同的量化參數 scale 獲取方式,從而進行不同的量化感知訓練或進行后量化統計。
在完成量化參數 scale 的統計后,開發者便可以再轉換至量化模塊,直接進行推理或者序列化存儲生成模型。天元的這套量化接口設計借鑒了 PyTorch 的方案,并在其基礎上進行了一系列改進和優化,方便擴展。
訓練:靈活多樣的量化配置

天元 Beta 版提供的量化接口讓開發者能夠使用不同的 Scale 獲取方法,多種基于統計或基于學習的方式,以及靈活配置量化策略、位寬。此外,由于量化方法在整體上仍處于發展當中,因此天元量化接口的設計宗旨是便于擴展。通過支持用戶自行注冊量化實現,便于兼容各類特殊硬件和新的量化方法。
訓練:量化參考模型與操作文檔

值得一提的是,天元 Beta 版除了提供量化功能外,還在模型倉庫中提供了完整的模型復現。如上圖所示,三個模型在全 int8 量化下準確率僅下降約 1%。此外,Beta 版本還提供了詳盡的量化操作文檔,幫助開發者們快速上手。
推理:多平臺直接部署
模型量化的推理方面,在天元 Beta 版中,量化模型的推理方法與浮點模型完全一致,開發者僅需直接讀取序列化模型執行,在各個平臺上都可以直接載入并進行高效推理。

在訓練階段,開發者可以非常靈活地控制網絡量化模塊,混合使用各種量化策略;在推理部署階段,系統會使用與訓練相同的設置,無需額外配置,便能保證一致。
各個框架對 int8 量化的定義在細節上有諸多不同,對天元來說,訓練后直接可用于推理,一份模型,全平臺可推理,開發者不用對每個平臺都學習不同的部署流程。這免除了模型轉換可能帶來的各類誤差問題,也不用擔心轉換時算子不支持,轉換后精度不對齊等問題。
推理:高效原生 int8 實現
作為框架的設計者同樣也是使用者,天元團隊深知對于開發人員而言,性能往往是在推理階段最關注的指標,為了性能,即便麻煩也需要將模型轉換到更快的推理框架上。
為此,天元在各主流計算平臺上提供的高效 int8 實現,讓開發者不再需要面對上述痛苦,保證開發者用天元框架訓練后能夠直接進行推理部署。

上圖展示了 ARM 上的推理性能對比。可以發現,通過轉換至 int8,天元使得常用網絡獲得了至多 3 倍的提速。此外,針對手機上常用的小模型,天元提供了更好的優化效果,加速效果更加明顯。

此外,天元在 CUDA 和 x86 上也提供相對于 float32 顯著的提速效果。與 Arm 類似,int8 推理的耗時僅有 float 模型的 30%~50%。在 CUDA 上,天元可以充分發揮出 Tensor Core 的計算能力,榨干顯卡的計算能力;而在 X86 上,由于 X86 指令集的原因,天元可以在支持 AVX512-VNNI 指令集的最新一代處理器上得到比較明顯的 int8 提速。綜上,原生的 int8 高效推理性能,可以讓開發者方便地進行模型推理部署,同時充分發揮出硬件的計算能力。
推理功能優化
業界領先的原生 ARM 推理性能

除優秀的模型量化功能外,天元 Beta 版本還提供性能領先的 ARM 算子實現。天元引入 NCHW44 layout,通過將張量的內存排布進行調整,進一步優化訪存,并降低各種邊界情況的判斷,提升計算性能;同時軟硬件結合,在支持的設備上,使用最新的 ARM dotprod 指令,編寫高質量的各類卷積算法實現,最終獲得了業界領先的推理性能。

在 int8 推理時,天元依靠深度優化 im2col、winograd 和 direct conv 等算子,在各類網絡上都達到了業界領先的性能指標。上圖分別展示的是不啟用 dot 指令和啟用 dot 指令的性能對比,可以發現,天元均提供了優異的性能表現。
另外,借助 ARM 的 dot 指令,天元 ARM 上的 int8 推理在 ResNet 上從 64ms 降低到了 30ms 以內,在一系列常用網絡上都可以獲得兩倍以上的大幅度加速。因此如果手上有支持 dotprod 指令的設備,開發人員可以在天元的支持下獲得巨大的性能提升。值得一提的是,在一些不支持 dot 指令的設備上,通過使用 winograd 可以降低乘法指令個數,從而在 ResNet、VGG 這類網絡上獲得比較顯著的加速。為了追求加速比,業界常見的做法是對 weight 進行限制,將表示精度限制在 6bit 內,從而避免累加結果溢出。
然而這存在的問題在于,需要在模型訓練時就進行特殊處理,導致一個模型難以在全平臺部署;同時,這也降低了量化網絡的推理精度,限制了使用場景。天元作為一個訓推一體的框架,追求訓練與推理側功能的精確對齊,針對上述問題,創新性的使用 float 作為中間計算格式,實現了 winograd 算法。這種方法的優點在于,對 weight 沒有特殊要求,能夠與訓練時的設置精確對齊,確保精度沒有損失;同時,這種算法還更充分地利用計算單元,提高計算性能,確保開發者可以隨時啟用獲得性能提速,無需擔憂精度問題。

除了 int8 推理之外,考慮到仍有大量開發者在使用 float 模型進行推理工作。為了讓這些開發者也可以得到最優的性能,天元在 float 算子上也進行了大量優化,使得各類常見的模型獲得了業界領先的性能,開發者可以在不改動原有工作流程的情況下,獲得性能上的提升。
ARM int8 內存占用

在深度學習的應用中,運行時內存占用也是一個重要的指標。天元對訓練側的自動內存優化策略進行了充分打磨,實現了內存占用和推理性能之間的良好平衡。上圖展示了天元在內存占用上的優勢。
天元僅依靠通用優化策略,便實現了對任意模型結構優良的優化表現,使得框架無需針對網絡結構進行特殊優化。各領域開發者在使用自己的模型結構時也能有較低的內存占用,從而提高競爭力。

至此,天元獲得了在各主流計算平臺的高效推理能力。在 X86 / CUDA / ARM 的各種子架構上,均提供性能經過深度優化的算子,保證了推理時的高性能,讓開發者可以實現訓練 - 推理一體,真正免于模型轉換。
推理工具與教程

配合本次 ARM 能力的放出,天元在官網上提供了完整的部署流程教程,幫助大家快速上手端側推理的開發步驟。
另外,天元也進一步優化了推理方面的使用體驗,提供性能分析工具和優化手冊,方便開發者找到性能瓶頸,提高模型推理性能。
最后天元針對跨平臺編譯進行優化,開發者可以利用天元在 Linux / Windows /macOS / iOS / Android 上進行推理。
各平臺內置常用圖像處理算子

除了 NN 算子之外,在深度學習模型應用的場景中,各類 CV(也就是圖像處理)算子往往也作為模型的預處理步驟存在,這些步驟的性能和精度會高度影響一個深度學習模型的落地效果。天元內置了常用的 CV 算子,并進行了高度優化,它們可以作為模型的一部分存在,實現框架的統一優化。在推理時,解碼后的結果可以直接輸入框架,通過一次調用完成全部 CV 操作和 NN 算子,簡單方便。
在深度學習模型的落地中,一個重要的步驟稱為 “對分”,它能確保模型訓練與最終推理的行為完全一致。天元提供的 CV 算子在各平臺間對齊精度,盡全力避免訓練與推理的差異,降低其中的誤差,從而顯著降低對分的成本,助力模型快速落地。
新增復現模型與訓練功能增強
除本次核心技術升級外,天元也一直在更新更多模型復現,助力開發者利用天元完成更多工作。

包括前文提到的量化模型 ResNet、ShuffleNet v1、MobileNet v2,至此天元的分類模型提供了主流 ResNet 系列、ShuffleNet 系列、MobileNet 系列的量化、非量化版本,并提供基于 ImageNet 的預訓練權重。
檢測模型的訓練邏輯比較復雜,天元本次復現了 Faster R-CNN,并提供了 RetinaNet 的量化版本。

另外,本次還更新了兩個生成對抗網絡。在 CIFAR10 數據集上復現了 DCGAN 和 WGAN 兩篇論文的工作,各項評估指標都達到復現的 SOTA 水平。

此外,天元本次提供了兩個人體骨骼點復現模型,分別是經典的 Simple Baseline 和 MSPN 網絡,MSPN 是曠視在 CVPR 2019 上提出的高效人體姿態估計網絡。這兩個模型都提供了基于 COCO 數據集的預訓練權重,便于大家進行更多實驗。

天元從 Beta 版本開始,正式提供中文版 API 文檔,讓更多開發者可以利用上天元的能力,加入深度學習的時代。此外,還新增了若干算子、Objects 365 Dataset 的 API 和多級訓練時參數打包的功能。
天元發展規劃

目前,天元團隊正在為 9 月的正式版本進行開發,屆時希望能夠提供更完善的動態計算能力,讓訓練側可以更加自由的表達計算形式。另外,天元會進一步優化訓練和推理的全流程使用體驗,讓深度學習從算法到落地更加高效。
非常歡迎大家加入天元(MegEngine )的開發工作,加入開源框架社區,持續推動 AI 底層建筑的發展。
再次歡迎大家關注天元的 Github 項目 MegEngine,并參與貢獻者計劃。
Github 項目 MegEngine:
https://github.com/MegEngine/MegEngine
并參與貢獻者計劃:
https://github.com/MegEngine/Resource/blob/master/Contributor_Program.md

總結

以上是生活随笔為你收集整理的旷视MegEngine核心技术升级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。