爲什麼說Brain++將有可能顛覆中國人工智能算法的研究進程

隨着深度學習逐漸從實驗室走向工業應用,各大企業都在探索構建算法架構、實現模型的工具和平臺。和使用 TensorFlow 或 PyTorch 等開源框架的公司不同,曠視走向了一條自主研製的道路,建立了從算法研發到部署應用的全流程、一站式人工智能算法平臺 Brain++。在 Brain++ 投入使用 5 年之際,揭開 Brain++ 的神祕面紗。

640?wx_fmt=png

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

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

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

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

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

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

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

 

640?wx_fmt=jpeg

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. 基於計算圖的深度學習框架

640?wx_fmt=pngMegEngine 的整體架構

從架構來說,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 進行了對比。

 

640?wx_fmt=png

MegEngine和 TensorFlow、PyTorch 框架的性能對比

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

4. 並行計算支持

值得一提的是,MegEngine 爲了提升大規模圖像數據進行處理和模型訓練的效率,在分佈式計算方面下足了功夫。分佈式計算中的數據並行和模型並行方式都被用在了 MegEngine 中,極大提升了模型訓練效率。

在模型並行方面,MegEngine 提供原語級別的支持,方便用戶進行模型並行設置和執行。最終,模型並行可以和數據並行模式混合使用。有了深度學習框架天生對分佈式計算的支持,MegEngine 在訓練和推理效率上達到了很高的水平。

5. 原生 AutoML 支持

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

640?wx_fmt=png 曠視 AutoML 技術圖示

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

  • 計算代價小。傳統的 AutoML 技術常常需要多次訓練模型甚至會遍歷部分模型空間,計算代價巨大。曠視的 AutoML 技術只需訓練一次即可得到整個模型空間的刻畫,大大減小了計算代價,只是平常訓練代價的 1-3 倍。

  • 應用範圍廣。曠視 AutoML 技術提供了一套完整的解決方案,覆蓋了大部分業務,包括活體檢測、人臉識別、物體檢測、語義分割等。

  • 部署方便。曠視 AutoML 技術涵蓋了數據處理、模型訓練、模型壓縮、模型量化等流程,自動處理從數據到落地。

  • 精度高。曠視 AutoML 技術在諸多視覺任務上,超過人類手工設計,達到了業界最優。

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

MegCompute:高效靈活

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

這是一個包括了硬件基礎設施、數據存儲和計算調度的平臺。用於協助研究人員部署訓練環境、設計訓練流程、提供算力和資源分配服務、監控實驗進程、提供可視化效果展示、管理用戶權限、存儲數據等。

640?wx_fmt=png

 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)數據安全。

 

640?wx_fmt=png

曠視 Brain++ 的核心組件 MegData

曠視在研發過程中需要使用大量的圖像數據,因此需要一個綜合平臺提供管理、標註、處理和存儲安全相關的服務。根據曠視介紹,MegData 可以提供完整的數據服務,爲用戶提供了全流程的解決方案。

在標註方面,MegData 提供了數據標註相關的服務,將人工標註和輔助算法相結合,提升標註效率。經過多次的業務打磨,MegData 平臺現已擁有全生命週期的項目管理平臺,進一步實現 AI 助力,解放人工。另外,MegData 還將曠視原創算法引入標註平臺中,利用數據輔助算法實現標註效率的大幅提升。這些標註算法都是基於雲的,可以伸縮和擴展。

在自動標註上,曠視採用了很多算法。比如,使用聚類算法,曠視可以使某項標註任務的成本下降爲原有的 10%。一些標註任務通過算法輔助驗收,效率提升 150% 以上。

相比於其他同類平臺,MegData 在數據層面爲 AI 模型研究提供了安全、高效的數據存儲和處理方式。同時,由於它是基於雲的,具有很高的靈活性。最後,MegData 補全了 AI 算法研發中數據處理的缺失環節,使研發人員不需要花太多精力在數據層面,很大程度上提升了效率,節省了時間和研發成本。

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

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

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

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

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