天天看點

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

曠視自研人工智能算法平台示意圖

如果說算法模型是果實,那麼開發它的環境和架構就是培育果樹的土壤。盡管平時在開發中,架構和底層環境沒有那麼引人矚目,但沒有這些底層技術的支援,優秀的思路和創意也就無從實作。目前,深度學習社群基本上被 TensorFlow 和 PyTorch 兩大架構壟斷。開源架構固然具有很高的人氣和易用性,但是在國際環境變幻莫測的大背景下,是否依賴這些架構就足夠保險呢?同時,如果企業有新的想法和業務需求,開源架構能否完美實作?是否能夠無縫嵌入業務之中?這些都是 AI 企業需要思考的問題。

近日,曠視自主研發的人工智能算法平台 Brain++榮獲第六屆世界網際網路大會「世界網際網路領先科技成果」。

曠視聯合創始人兼 CTO 唐文斌在大會上表示,「2014 年我們開始研發 Brain++,它是一套端到端的 AI 算法平台,目标是讓研發人員獲得從資料到算法産業化的一攬子技術能力,不用重複造輪子也可以推進 AI 快速落地。我們的 Brain++還引入了 AutoML 技術,可以讓算法來訓練算法,讓 AI 來創造 AI。」

通過曠視從 2014 年開始自研深度學習架構,到現如今建構了一整套圍繞 AI 開發的整體系統,似乎以上這些問題可以得到一個解答。

Brain++:曠視自研人工智能算法平台

很多人會誤以為這僅僅隻是曠視的一個深度學習架構,或者是企業内部開發的雲計算平台。而事實上,Brain++在曠視内部已成為了支撐算法研究和開發的整體基礎底層平台。

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

Brain++涵蓋了深度學習算法開發的整個流程。

具體而言,Brain++涵蓋了深度學習算法開發的所有環節。從資料的擷取、清洗、預處理、标注和存儲開始,到研究人員設計算法架構、設計實驗環節、搭建訓練環境、訓練、加速、調參、模型效果評估和産生模型,到最終的模型分發和部署應用,Brain++為曠視的研發人員提供了一站式全流程的 AI 工程解決方案。 總體架構上,Brain++可以大體分為三部分,包括作為主體的深度學習算法開發架構 MegEngine、提供算力支援的 MegCompute、以及用于提供資料服務和支援的 MegData。

據曠視方面透露,Brain++ 其實是國内很早就開始研發建構的深度學習系統之一。早在 2014 年,Brain++ 就已經開發出來,在當時作為算法架構在公司内部開始使用。其中,曠視在 2017 年拿下 3 項 COCO 冠軍,2018年拿下 4 項 COCO 冠軍,以及今年釋出的全新的通用物體檢測資料集 Objects365,都與 Brain++ 的功勞密不可分。

人工智能平台 Brain++這一系統内部是什麼樣的?機器之心接下來會按照組成子產品進行解讀。

三大支柱子產品成就 Brain++ 曠視原創自研的新一代人工智能算法平台 Brain++由三大支柱構成,分别是深度學習架構 MegEngine、深度學習雲計算平台 MegCompute 和資料管理平台 MegData。

MegEngine:極緻性能

MegEngine 是 Brain++的核心元件,是為開發者和研究人員提供開發的深度學習架構。這一架構主要用于曠視内部進行計算機視覺領域的算法開發工作,包括大規模的人臉識别、圖像分割、姿态識别等。

1. 基于計算圖的深度學習架構

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

MegEngine 的整體架構。

從架構來說,MegEngine 分為四個層,包括計算引擎、運作時管理、編譯和優化以及程式設計和表示。計算引擎以 MegDNN 為核心,發揮計算作用。MegDNN 是一個基于異構架構,有着統一的互動方法的核心,可以根據裝置本身啟發式地選擇最優核心,也可以讓使用者自己選擇最适合的核心進行計算。

在運作時管理層中包括兩個子產品,分别是核心排程和記憶體管理和優化兩大子產品。在記憶體管理和優化子產品中,MegEngine 采用了動态、靜态記憶體配置設定并存的方式。

在編譯層和優化層,MegEngine 使用了基于計算圖的編譯和優化方法。程式設計和表示層進行使用者互動,能夠使用進階程式設計語言(如 Python)執行使用者的指令。

2. 架構優勢

曠視的深度學習架構 MegEngine 有着多種多樣的優勢,相比于開源的大部分深度學習架構,MegEngine 具有: 

  • 運算速度快:MegEngine 動态、靜态結合的記憶體優化機制,是以速度比 TensorFlow 更快;
  • 記憶體占用少:通過分析整個執行方案的記憶體使用情況,MegEngine 充分優化記憶體,特别是亞線性記憶體優化,可以支援複雜的網絡結構,自動利用部分備援計算縮減記憶體占用,可達兩個數量級,進而支援更大規模的模型訓練;
  • 易用性好:MegEngine 封裝了平台細節,易于新人使用者快速上手;
  • 支援多種硬體平台和異構計算:MegEngine 支援通用 CPU、GPU、FPGA 以及其他移動裝置端硬體,可多卡多機進行訓練;
  • 訓練部署一體化:整個架構既可用于訓練又同時支援推理,實作模型一次訓練,多裝置部署,避免複雜的轉換過程造成的性能下降和精度損失。

3. 和主流深度學習架構對比

MegEngine 之是以能夠成為的核心算法架構,主要依靠其底層幾大技術。

首先,MegEngine 基于 C++開發,可幫助使用者借助程式設計語言進行高性能的運算執行。在架構内部,使用了目前流行的計算圖方式。和其他架構不同,MegEngine 使用的是異構架構,友善使用架構進行分布式計算。

此外,MegEngine 内部的計算以算子的形式進行,它支援多種算子節點和變量算子,包括常用的卷積、全連接配接、ReLU 和使用者可定制的算子,甚至可以計算二階梯度,進而進行更多底層和靈活的運算。可以說,MegEngine 在盡全力提升深度學習計算性能的基礎上,為使用者提供了靈活易用的模型建構工具,極大地提升了開發效率。

根據曠視提供的資料,MegEngine 和目前開源的主流深度學習架構——TensorFlow、PyTorch 進行了對比。

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

MegEngine和 TensorFlow、PyTorch 架構的性能對比。

從圖上可以看出,在主流的計算機視覺模型(Resnet50 和 ShuffleNet V1)上,MegEngine 在訓練上可以和主流架構媲美。

4. 并行計算支援

值得一提的是,MegEngine 為了提升大規模圖像資料進行處理和模型訓練的效率,在分布式計算方面下足了功夫。分布式計算中的資料并行和模型并行方式都被用在了 MegEngine 中,極大提升了模型訓練效率。 在模型并行方面,MegEngine 提供原語級别的支援,友善使用者進行模型并行設定和執行。最終,模型并行可以和資料并行模式混合使用。有了深度學習架構天生對分布式計算的支援,MegEngine 在訓練和推理效率上達到了很高的水準。

5. 原生 AutoML 支援

 MegEngine 還內建了曠視最新的 AutoML 技術,對深度學習算法的各個關鍵環節進行自動化的設計、搜尋和優化。這項技術以 One-Shot 方法為核心,通過一次訓練完成自動化過程,将計算代價減小至傳統 AutoML 方法的萬分之一,在可控的時間内搜尋出高性能、易部署的模型結構。

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

曠視 AutoML 技術圖示。

相比于市場上的 AutoML 技術,曠視的 AutoML 技術有以下優勢:

  • 計算代價小。傳統的 AutoML 技術常常需要多次訓練模型甚至會周遊部分模型空間,計算代價巨大。曠視的 AutoML 技術隻需訓練一次即可得到整個模型空間的刻畫,大大減小了計算代價,隻是平常訓練代價的 1-3 倍。
  • 應用範圍廣。曠視 AutoML 技術提供了一套完整的解決方案,覆寫了大部分業務,包括活體檢測、人臉識别、物體檢測、語義分割等。
  • 部署友善。曠視 AutoML 技術涵蓋了資料處理、模型訓練、模型壓縮、模型量化等流程,自動處理從資料到落地。
  • 精度高。曠視 AutoML 技術在諸多視覺任務上,超過人類手工設計,達到了業界最優。

除了支援深度學習架構中所有的基本功能,MegEngine 還有很多進階功能,如支援神經架構搜尋、網絡剪枝和建構低比特的小型神經網絡(基于曠視提出的 DoReFaNet)等。

MegCompute:高效靈活

有了性能極佳的深度學習架構和全面的資料平台支援,Brain++也需要強大的算力支撐才能發揮完全的能力。深度學習架構的基礎之上,曠視開發出了支撐整個平台計算的系統,稱為 MegCompute。

這是一個包括了硬體基礎設施、資料存儲和計算排程的平台。用于協助研究人員部署訓練環境、設計訓練流程、提供算力和資源配置設定服務、監控實驗程序、提供可視化效果展示、管理使用者權限、存儲資料等。

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

 MegCompute 平台的整體架構。

MegCompute 的總體架構可以概括為「三駕馬車」,分别為基礎設施、資料存儲和計算。基礎設施方面,通過高性能硬體支援深度學習計算和大規模資料傳輸。在資料存儲方面,考慮到計算機視覺資料普遍為海量小檔案,資料存儲平台采用了分布式對象存儲系統,具有大容量可彈性擴充的存儲能力。此外,在雲計算方面,使用精細的算力管理方式,給使用者靈活配置設定計算資源,同時避免算力浪費。

MegCompute會為每個使用者會配置設定若幹台虛拟機做開發,這稱之為 Workspace, 其中自帶了 JupyterLab 友善研究員使用;曠視還通過開發可分享的插件,友善研究員将 JupyterLab 中的内容分享給指定的同僚。為杜絕浪費,Workspace 中不帶 GPU,那訓練程式需要 GPU 怎麼辦呢?

MegCompute 提供了一種新穎的動态配置設定使用 GPU 的方式,當需要使用 GPU 運作程式時,可使用 rlaunch 指令将程式直接配置設定到若幹台 GPU 運作,并可以在終端的标準輸出擷取到遠端指令執行的結果。這種方式跟任務送出相比,可以做到無縫執行,不需要将程式打包成鏡像進行分發,因為 rlaunch 可以做到跟本地擁有 GPU 類似的使用體驗,而廣受研究員歡迎。

此外,計算平台提供任務的優先級機制,讓叢集資源能夠高效的利用。同時,通過 GPU 拓撲和網絡拓撲感覺功能,讓大規模多機訓練的網絡更加快速和穩定,達到更高效的訓練效率。

總體而言,MegCompute 從功能上,真正将曠視自研的深度學習架構擴充到了企業級别的系統服務平台,通過連接配接硬體、資料和深度學習架構,将建構深度學習模型的所有環節串聯了起來。MegCompute 有以下幾大特點:

  • 性能強大:MegCompute 有豐富的 GPU 計算資源,同時也支援各類硬體,可靈活高效地配置設定計算任務。
  • 全流程覆寫:MegCompute 支援模型建構的全部流程環節,讓研究人員能夠實作一站式的業務應用服務,滿足工業級的 AI 能力研發測試、部署上線和業務生産方面的工作。
  • 彈性部署:MegCompute 采用了 Docker 容器技術,可以讓使用者彈性化地建構部署訓練環境,在不需要使用的時候直接銷毀,使得資源可以及時釋放給其他使用者,具有非常彈性的特點。
  • 使用者友好:使用者使用過程中,通過可視化界面進行環境搭建和訓練設計方面的工作,也可以通過可視化的方式檢視模型測試的結果,不需要關注太多的底層技術細節,使用非常友善。
  • 支援多種深度學習架構:除了和 MegEngine 自研深度學習架構緊密結合外,MegCompute 也支援使用 TensorFlow 和 PyTorch。

MegData:資料綜合處理

在構模組化型的時候,也需要大量的資料支援。Brain++中的 MegData 是負責提供資料方面的服務,主要有四個方面:1)資料管理;2)資料标注;3)資料處理;4)資料安全。

AI當自強:獨家揭秘曠視自研人工智能算法平台Brain++

曠視 Brain++的核心元件 MegData。

曠視在研發過程中需要使用大量的圖像資料,是以需要一個綜合平台提供管理、标注、處理和存儲安全相關的服務。根據曠視介紹,MegData 可以提供完整的資料服務,為使用者提供了全流程的解決方案。

在标注方面,MegData 提供了資料标注相關的服務,将人工标注和輔助算法相結合,提升标注效率。經過多次的業務打磨,MegData 平台現已擁有全生命周期的項目管理平台,進一步實作 AI 助力,解放人工。另外,MegData 還将曠視原創算法引入标注平台中,利用資料輔助算法實作标注效率的大幅提升。這些标注算法都是基于雲的,可以伸縮和擴充。 在自動标注上,曠視采用了很多算法。比如,使用聚類算法,曠視可以使某項标注任務的成本下降為原有的 10%。一些标注任務通過算法輔助驗收,效率提升 150% 以上。 相比于其他同類平台,MegData 在資料層面為 AI 模型研究提供了安全、高效的資料存儲和處理方式。同時,由于它是基于雲的,具有很高的靈活性。最後,MegData 補全了 AI 算法研發中資料處理的缺失環節,使研發人員不需要花太多精力在資料層面,很大程度上提升了效率,節省了時間和研發成本。

總體而言,雖然不似其他兩個 Brain++子產品那樣引人關注,MegData 在系統中發揮着重要的功能,負責完成了深度學習訓練前很大一部分的資料管理、處理、标注和安全的工作。這些都是整個流程環節必不可少的。

自研平台驅動整體技術發展

Brain++系統凸顯了曠視在技術開發上的三個趨勢。首先,Brain++完全是自主研發的深度學習系統,涵蓋了 AI 業務的整體流程。這說明曠視能夠完全掌握核心的研發工具和平台。曠視 Brain++是為計算機視覺場景而專門研發的,這是一個以業務為導向的專業 AI 服務系統,是以曠視可以拿出很多精力,針對業務中的需求提出專門的解決方案,而新方法可以快速在實際應用中得到測試和驗證,通過業務驅動架構的發展。

最後,由于曠視對 Brain++本身具有完整的掌握能力,并且通過計算機視覺相關場景驅動 Brain++的發展,它的疊代速度非常快。目前,新算法層出不窮,企業急需要能夠快速實作算法的人工智能平台,能夠迅速将新方法投入實際的生産中。Brain++能夠快速根據新的變化進行調整,能夠為曠視在新技術的研發和應用上搶占先機,使企業牢牢占領技術高地,保持技術能力常新常青。

本文為機器之心原創,轉載請聯系本公衆号獲得授權。

繼續閱讀