1. 程式人生 > >華為全棧AI技術乾貨深度解析,解鎖企業AI開發“祕籍”

華為全棧AI技術乾貨深度解析,解鎖企業AI開發“祕籍”

摘要:針對企業AI開發應用中面臨的痛點和難點,為大家帶來從實踐出發幫助企業構建成熟高效的AI開發流程解決方案。

在數字化轉型浪潮席捲全球的今天,AI技術已經成為行業公認的升級重點,正在越來越多的領域為業務帶來創新價值。隨著行業AI落地逐步加速,企業在開發AI應用的過程中,經常會遇到準備不足、人才緊缺、開發成本高昂等問題,阻礙著AI的落地實踐。

在2020年12月20日QCon全球軟體開發大會 2020上海站上,華為雲AI首席技術佈道師陳亮攜手四位華為AI領域博士,帶來題為“全棧全場景AI應用開發實踐”的專題分享。本場專題針對企業AI開發應用中面臨的痛點和難點,從實踐出發幫助企業構建成熟高效的AI開發流程。

本文主要總結自王俊博士與白小龍博士的分享內容。

MindSpore:端邊雲統一訓練和推理的AI計算框架

首先,華為高階AI演算法工程師王俊博士深度解析華為MindSpore AI計算框架。

在AI領域,AI計算框架扮演著一個非常核心的角色。過去八年多來,AI框架經歷了三個階段的發展:第一階段主要奠定理論基礎,第二階段則引入了分散式訓練、計算圖、動態圖等理念,TesnorFlow和PyTorch兩大框架也是在這一階段佔據了行業主導地位。

如今AI框架的發展已經逐漸進入了第三階段,但行業還在探索這一階段的具體演變方向。歸結起來,行業對AI框架的需求主要分為使用者態、執行態和部署態三大層面。

  1. 使用者態。這一層面主要決定使用者的使用方式,具體分為動態圖和靜態圖兩種模式。靜態圖效率高,但是對開發者不夠友好;動態圖易程式設計,但底層效能會慢很多。使用者希望能儘可能結合這兩種模式各自的優勢,這對框架而言是一個難題。
  2. 執行態。在這一層面,使用者希望框架實現儘可能高的模型執行效率。如今,業介面對的一大難點就是切分模型實現分散式訓練的具體方式。分散式訓練的目標是充分利用大規模計算資源提升模型效能,但如何合理地切分模型,保證分佈訓練的效率是非常耗時耗力的工作,給模型的規模擴張帶來了障礙。
  3. 部署態。模型部署的過程中,一方面使用者希望演算法可以很好地落地產生效果,另一方面卻不希望使用者資料出現隱私安全問題。因此框架需要在鋪平落地道路的同時確保資料安全。

針對上述需求,華為開發了MindSpore AI計算框架,通過諸多創新解決了傳統框架未能解決的一系列難題。

面對使用者態中動態圖與靜態圖兩種需求的矛盾,MindSpore引入了名為MindIR的圖層中間表示形式。

IR(Intermediate Representation)是原始碼於目的碼之間的翻譯中介,好的IR有利於AI模型的編譯優化和執行,是AI框架高效訓練和推理的基礎。MindIR選擇的技術路線是Functional Graph IR,由ParameterNode、ValueNode和CNode組成有向無環圖。在MindSpore自動微分時,MindIR會計算ParameterNode和CNode的梯度貢獻,並返回最終ParameterNode的梯度,而不計算ValueNode的梯度。

MindIR可以將動態圖或靜態圖編成IR表示,使開發者可以在開發過程結合動態圖與靜態圖兩種模式,根據需要隨時切換使用。

在執行態,為了幫助開發者從手動切分模型的繁重任務中解脫出來,MindSpore提供了自動並行方案。

這套方案不需要改變使用者程式碼結構,使用者啟用方案後框架會自動搜尋並行策略,之後切分運算元,最後切分整圖。

框架基於自動規劃方式來生成切分策略,過程中會盡量切除一些明顯不可行的策略,最後生成整圖的切分。整體策略的目標是最大化計算通訊比,儘可能將更多的計算時間放在前向計算和反向計算,而非計算卡之間的通訊上面。切分策略也支援使用者手動調整,手動自動兩種方式可以結合使用。這套方案還支援優化器並行,最終能夠顯著降低分散式訓練的額外記憶體開銷。

出於進一步提升演算法效能的目的,MindSpore還引入了二階優化和圖算融合策略。

訓練深度學習模型需要大量計算,訓練收斂時間較長。二階優化方法可以有效加速模型收斂,減少迭代次數,但同時會引入大量複雜計算,限制了其在深度模型訓練中的廣泛應用。因此對於計算框架而言,如何高效求解二階矩陣是一個技術難點。MindSpore的應對方法是矩陣求逆,只考慮對角線上的元素塊和每一層內的影響。同時框架不會做全量二階,會將一階與二階優化交替進行,基於動態結果決定二階計算量。基於這些優化,MindSpore將端到端的訓練時間節省了20%。

運算元融合是AI框架常見的優化方法。現代計算機硬體架構採用多級記憶體體系,資料運算時需要逐級輸入輸出。運算元融合就是將相鄰運算元的計算邏輯合併,節約逐級輸入輸出的次數,從而提升時間效率。MindSpore還引入了圖算融合。最終獲得了15%的端到端效能提升。

在硬體層,MindSpore原生支援高效能的昇騰AI晶片,並針對昇騰的技術特性做了軟硬結合優化。在多種優化措施的共同作用下,MindSpore+昇騰晶片的方案比基於V100的方案提升了70%-80%的效能,並在5月份取得了行業AI算力榜第一的成績。

在部署態,為了將AI模型部署到端側以實現端雲協同,MindSpore提供了輕量化的MindSpore Lite版本。Lite版本與雲端完整版使用了統一的MindIR,但在端側上充分考慮到端側硬體做了針對性優化。這些優化包括一些運算元替換(用一些輕量化的運算代替一些重型運算),還會做一些運算元前移後移,避免冗餘計算。對於單個運算元而言,則會設法希望提升其在端側CPU上的執行效率。

這些措施結合取得了很好的效能表現。在華為P40手機上,MindSpore Lite的大多數效能指標都超過了TF Lite。

如今,MindSpore開源社群生態快速發展,在國內開發者群體中發揮著越來大的影響力。MindSpore已於今年開源,程式碼託管在碼雲平臺。目前MindSpore已釋出1.0商用版本,月底即將推出1.1版本。新版將支援40多個通用模型,上線270多個應用。MindSpore社群還有很多興趣小組來交流各類議題,也歡迎新成員持續加入。

ModelArts:全流程加快AI應用開發和部署

有了AI計算框架,下一步就需要一套端到端的AI開發平臺來實現AI應用的快速落地。華為雲ModelArts架構師白小龍博士就此分享了華為雲ModelArts一站式AI開發平臺及關鍵技術,應用案例。

AI開發的核心流程主要包括了前期準備(方案設計)、資料準備、演算法選擇與開發、模型訓練、模型評估與調優、應用生成/評估與釋出、應用維護子流程。各個子流程都涉及很多複雜工作,存在成本、門檻、效率和可信等多方面的挑戰。

由於目前AI開發者的數量遠少於軟體開發者的數量,如何讓更多人以低門檻的方式上手AI開發、落地AI應用就成為了一個核心問題。在所有子流程中,華為雲ModelArts通過提供大量的預置演算法和框架,以及WorkFlow編排能力,最大化地降低了AI應用開發的門檻,從而加速了AI應用開發和部署全流程。華為雲ModelArts整個平臺分為基礎平臺和上層的預置套件兩大部分,對上通過ModelArts Pro使端到端行業應用AI開發更簡單。其中,基礎平臺覆蓋AI開發、部署和交易過程需要的各項能力,預置套件則主要針對具體的應用場景提供具備一定泛化能力的沉浸式AI工程與WorkFlow模板,包括面向智慧感知的視覺相關的WorkFlow、面向智慧認知的NLP相關的WorkFlow、面向決策智慧相關的WorkFlow等。以計算機視覺領域的目標檢測任務為例,使用者無需AI領域知識,只需簡單幾個步驟(上傳資料、標註資料、訓練、測試)即可完成一個AI應用開發,以低程式碼甚至零程式碼的方式大幅降低AI應用開發門檻。

當開發者需要深入到AI應用開發的各個子流程時,ModelArts提供了多項關鍵技術來幫助降本增效,並且降低門檻。

1)資料準備子流程

  • 智慧化資料增強:可根據跨域遷移自動生成新的可訓練資料,從而減少了資料採集和資料標註的工作量。
  • 智慧資料篩選,自動化過濾約40%的髒資料。以停車位識別為例,平臺可以自動篩除遮擋、過曝、過暗等影象,節省後續開發成本。
  • 智慧標註:1)支援基於半監督/主動學習的混合智慧標註,可以混合無標註和已標註資料進行訓練,減少主動學習所需的迭代次數,獲得5倍標註效率並提升標註精度。平臺還會自動生成優化建議,判斷難例樣本,建議採集更優化資料增強難例。2)支援互動式智慧標註,以目標檢測為例,僅需確認即可而無需畫包圍框,以影象分割為例,不需要手工通過多邊形的方式標註輪廓,而僅需標註少數幾個點就可以實現輪廓的自動識別。這種智慧的互動式能力使得標註量將大大降低。
  • 資料智慧分析,根據影象亮度、飽和度、解析度、複雜度、色彩等資訊給出分析建議。這將為後續訓練集和驗證集的對比分析、超參選擇提供量化依據。

2)演算法開發和選擇子流程

  • 演算法選擇:為了解決一個AI應用問題,大多數演算法工程師或者資料科學家大多不會從頭開發一個全新的演算法,而是選擇已有的演算法,進行快速實驗,然後不斷改進迭代。為了實現真正的普惠AI開發,使得AI演算法的選擇更加方便,ModelArts提供了幾十種高效能、高精度的預置演算法庫,可以直接使用而無需任何手工修改。大多數演算法的精度比開源版本高0.5%~6%,效能高30%~100%。部分預置演算法底層基於自研的EI-Backbone預訓練模型,在多項資料集上都可以使得精度有所提升。通過AI資產分享交易中心——AI Gallery,使用者可以購買或訂閱優秀的這些預置演算法資產,也可以上傳和貢獻新的預置演算法。
  • 演算法開發:如果已有預置演算法不能滿足要求,開發者可以使用ModelArts提供的Serveless化Notebook開發環境,相比於業界已有的開發環境,開發除錯成本可降低數倍,並且在Notebook中,ModelArts平臺預置了大量演算法開發樣例,開發者可以基於這些樣例進行二次開發。

3)模型訓練子流程

  • 訓練加速:ModelArts內建了訓練加速框架MoXing,底層對接了常用計算引擎(如MindSpore、TensorFlow、PyTorch等)通過一系列優化措施(資料、計算、訓練策略、優化器、分散式通訊等)來提升模型的訓練效能,最大可支援4096卡分散式訓練,訓練效能業界第一。平臺還實現了同一套演算法程式碼同時相容單機單卡和多機多卡,也支援在不同的AI裝置之間切換,使用者改一個配置項就可以從訓練模式變成驗證模式或預測模式。
  • 彈性訓練:當多個使用者共享訓練資源時,可以允許使用者的訓練作業在模型精度不變的前提下實現資源動態伸縮。這樣當整個叢集存在空閒時,就可以將已有訓練作業進行擴容,使訓練速度獲得成倍提升。使用者在ModelArts上訓練的時候有高效能、標準和經濟三種模式可供選擇。經濟模式會盡可能複用底層,成本可大幅下降。
  • 聯邦訓練:為了在訓練過程中保證資料安全,ModelArts還支援聯邦訓練方案,並提出自研的聯邦聚合演算法FedAMP,並通過自適應方式,使得有相似資料的使用者之間聯邦作用更強。

4)模型評估與調優子流程

  • 多元搜尋:開發者只需修改3行程式碼即可提升精度或效能,ModelArts還可以針對訓練時間較長的作業,實現快速調參策略,大幅縮減超參搜尋時間。並提供視覺化能力將多個搜尋結果按照各種指標排序便於開發者快速選擇。
  • 模型評估與智慧診斷:ModelArts可以自動針對模型的精度或效能給出調優建議。此外,針對模型的魯棒性,平臺內建了一些魯棒性對抗工具,能夠自動識別演算法存在的安全問題並給出改進和調優建議。

5)應用生成、評估與釋出子流程

  • 模型編排與推理框架:針對模型推理成本高、AI開發流程難以閉環的問題,ModelArts平臺引入了Serveless端邊雲混合部署和自研高效能推理框架。平臺底層推理框架可根據使用者描述的運算元自動生成推理圖;模型在雲端部署時,平臺支援自動彈性伸縮和動態載入,在邊緣部署時則支援一鍵下發。

6)應用維護子流程

  • 資料採集與難例診斷:AI模型上線後,ModelArts平臺可自動採集模型執行資料,識別並篩選出資料漂移,自動生成診斷建議。

整體上華為雲ModelArts關鍵技術總結如下:

華為雲ModelArts自發布以來,在園區、工業、城市、交通、家庭、水務、環保等領域獲得廣泛應用。ModelArts平臺可以很好地滿足全場景的AI應用需求,包括智慧感知、智慧認知和智慧決策等領域都有成熟的實踐。典型案例包括麵包店的自動麵包識別和結賬機器、OCR文字語義識別、遊戲AI(智慧對戰)、藥物生成等等。ModelArts端雲協同方案也已經在停車自主繳費等場景實踐落地。

HiLens:端雲協同多模態AI應用開發和實踐

人工智慧的發展正經歷從感知到認知,從單模到多模,從雲側到端雲協同的演進。華為雲人工智慧演算法專家夏飛博士分享了使用華為HiLens平臺開發端雲協同多模態AI應用和落地實踐。

華為HiLens 端雲協同多模態AI開發應用平臺,提供簡單易用的開發框架、開箱即用的開發環境、豐富的AI技能市場和雲上管理平臺,對接多種端側計算裝置。打通線上線下開發和部署流程,開發者只需在雲上完成一次多模態AI應用開發,既可以部署到雲側,也可以部署到端側和邊緣側,能夠很好地解決企業開發端雲協同AI應用的需求。HiLens平臺還能方便地接入多模態資料,並支援低程式碼開發流程,開發者只需簡單幾步即可完成端雲協同AI應用開發和部署。目前,HiLens已經在智慧門店、智慧家庭、智慧教育、智慧交通等端雲協同場景發揮作用。

ModelArts Pro在行業多模態AI開發的應用實踐

隨著行業AI落地逐步加速,在行業多模態AI開發中也面臨諸多挑戰,如行業業務複雜度高,AI應用開發需要豐富的行業經驗支援;定製程式碼工作量大,耗時長,無法快速業務上線;通用AI具有侷限性,不支援行業特定業務流程等。華為雲EI智慧體技術總監朱聲高博士分享瞭如何利用華為雲ModelArts Pro企業級AI應用開發套件加速AI場景化落地。

華為雲ModelArts Pro是專為企業級AI應用打造的專業開發平臺,平臺內以預置工作流和功能套件的形式,沉澱了行業AI應用實踐場景的Know-How,使企業實現零基礎、零程式碼快速AI開發。另外,企業也能根據需求靈活編排新的行業工作流,基於AI市場,使用者還可以互相分享不同行業場景的行業AI工作流。ModelArts Pro以“授人以漁”的方式助力企業構建AI能力,賦能不同行業的AI應用開發者,讓AI變得觸手可及。

面向物流、石油、零售、金融、醫療、交通等行業場景,華為雲基於領先演算法及行業知識,首批推出了ModelArts Pro文字識別、視覺、自然語言處理、知識圖譜等開發套件及端雲協同多模態AI應用開發套件HiLens,並在自助表單識別、食品種類識別、測井油氣層識別等業務場景中落地實踐,全面提升行業AI開發效率和行業落地效果,帶來全新的行業AI落地方式。

解決行業落地痛點,推進AI廣泛應用:華為雲攜手開發者共同迎接普惠AI時代

四位華為AI領域博士的深度分享,為開發者們全方位解析了華為全棧全場景AI開發平臺的諸多優勢與能力,並解決了企業在AI應用落地實踐過程中遇到的許多顧慮和難題。在華為AI計算框架、開發平臺和開發套件的支援下,企業可以快速針對當前業務需求開發AI應用,方便地嵌入已有的業務流程,並在短期內就能看到實際效果與收益回報。

基於計算機視覺、語音語義和決策優化三大AI領域長期的基礎研究和各行業的AI專案實踐,華為雲在AI技術領域持續創新,不斷推出適應市場需求的創新能力,並持續發力AI開發生態建設,與企業和開發者共同迎接普惠AI的全新時代。

 

點選關注,第一時間瞭解華為雲新鮮技