0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AI框架的演進趨勢以及MindSpore的構想

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 15:23 ? 次閱讀
轉載自:知乎
作者:金雪鋒

MindSpore在3月底開源后,一直忙于功能完善和內外部的應用推廣,現(xiàn)在終于有點時間可以停下來結合MindSpore的實踐和團隊一起總結對AI框架的一些思考,希望對大家有所幫助,也有助于大家去了解MindSpore,更加歡迎大家一起探討。

計劃開一個專欄,有一系列的文章,初步主題規(guī)劃包括:

  1. AI框架的演進趨勢和MindSpore的構想
  2. AI框架的圖層IR的分析
  3. 動靜態(tài)圖統(tǒng)一的思考
  4. 端邊云的框架如何統(tǒng)一
  5. 圖算融合的設計思考
  6. 自動算子生成可行嗎?
  7. 如果自研一個AI編程語言,應該長什么樣?
  8. 如何成為分布式并行原生的AI框架?
  9. AI與科學計算怎么結合?
  10. AI框架怎么使能AI責任?

…….等等

內容比較多,全部寫完要很長時間,希望自己有足夠的耐心堅持下去。

本篇是一個總體的介紹,主要是分析AI框架的發(fā)展趨勢,介紹一下MindSpore的構想

1、未來AI框架的發(fā)展趨勢是什么

AI框架的發(fā)展個人認為可以大致分為3個階段:

第一階段的代表是torch、theano以及Caffe,奠定了基于Python、自動微分、計算圖等基本設計思路。

第二階段的代表是TensorFlow、PyTorch,一個通過分布式訓練、多樣的部署能力在工業(yè)界廣泛使用,另外一個是提供動態(tài)圖能力,在靈活性上吸引了大量的研究者和算法工程師。

第三階段的方向是什么?目前看還沒有定型,我們看到Google也有多條技術路徑在探索,包括TF2.0,JAX、MLIR、Swift for TF等;有些在做動態(tài)圖和靜態(tài)圖的統(tǒng)一,有些在構建統(tǒng)一的IR基礎設施,還有些在探索新的表達方式等,總之還是百花齊放的狀態(tài)。

不管AI框架未來的發(fā)展方向是什么,AI框架的驅動力還是相對清晰,我們認為AI框架的驅動力主要是5個-“ABCDE”:

  • Application+Bigdata:AI框架的Application就是AI的模型和算法,Bigdata就是AI模型需要的數(shù)據(jù)
  • Chip:AI的芯片,代表AI的算法發(fā)展
  • Developer:AI的算法研究者和算法工程師
  • Enterprise:AI部署和AI責任

下面,我們想通過對AI框架的驅動因素的分析來討論一下AI框架的發(fā)展方向。

從應用和數(shù)據(jù)角度看AI框架的挑戰(zhàn)

  • 模型和數(shù)據(jù)的規(guī)模和復雜度持續(xù)提升

今年5月,OpenAI發(fā)布GPT-3模型,千億參數(shù)量,數(shù)據(jù)集(處理前)45T,訓練一次的成本號稱接近500萬美金,超大模型不僅僅是算法和算力成本的挑戰(zhàn),同時對AI框架的挑戰(zhàn)也是巨大,主要體現(xiàn)在三點,性能墻(內存、通信、計算利用率)、效率墻以及精度墻:

  1. 性能墻:大模型下,GPU和NPU的單卡(內存一般只有32G)肯定裝不下整個模型,傳統(tǒng)的數(shù)據(jù)并行是不夠的,未來內存復用、混合并行(數(shù)據(jù)并行/模型并行/pipeline并行)等技術的使用將會是常態(tài),同時,混合并行的切分策略尋優(yōu)是很困難的,不同的切分產生的通信量差異巨大,計算利用率也很不一樣,比如pipeline并行往往在計算利用率存在較大的挑戰(zhàn),算子切分的并行在通信量的挑戰(zhàn)會很大,這些都需要AI框架來支持;最后在大規(guī)模并行訓練系統(tǒng)中,當性能要求越來越高時,數(shù)據(jù)預處理也會成為一個瓶頸,比如我們在ResNet50性能調優(yōu)時發(fā)現(xiàn),當單Step跑到17~18ms的時候,host數(shù)據(jù)處理的時間就跟不上了。
  2. 效率墻:混合并行策略如果讓算法工程師來手工確定的,這個門檻就會很高,既要懂算法,又要懂系統(tǒng),怎么做到自動并行是關鍵。
  3. 精度墻:大規(guī)模模型訓練天生就是一個大Batchsize的訓練,怎么更好的收斂,達到精度要求,都是一個大的挑戰(zhàn)。

除了上面講的三點外,超大規(guī)模的訓練還面臨其他的挑戰(zhàn),比如大規(guī)模集群的可用性、尾部時延、動態(tài)調度等等。

  • 框架的負載從單一的深度學習模型向通用的張量可微計算演進

目前主要看到三個方向:

1)DNN與傳統(tǒng)機器學習結合,比如深度概率學習、圖神經網(wǎng)絡等,這一塊基本上業(yè)界的AI框架都已經支持。

2)AI與科學計算結合,看到業(yè)界在探索三個方向,一是AI建模替代傳統(tǒng)的計算模型,這個方向剛剛起步,進展還不是很多;二是AI求解,模型還是傳統(tǒng)的科學計算模型,但是使用神經網(wǎng)絡的方法來求解,這個方向已經有一定的進展,目前看到不少基礎的科學計算方程已經有對應的AI求解方法,比如PINNs、PINN-Net等,當然現(xiàn)在挑戰(zhàn)還很大,特別是在精度收斂方面,如果要在AI框架上AI求解科學計算模型,最大的挑戰(zhàn)主要在前端表達和高性能的高階微分;三是使用框架來加速方程的求解,就是科學計算的模型和方法都不變,但是與深度學習使用同一個框架來求解,其實就是把框架看成面向張量計算的分布式框架。

3)計算圖形相關的,類似Taichi這樣的語言和框架,提供可微物理引擎、可微渲染引擎等

從AI的芯片發(fā)展趨勢看AI框架的挑戰(zhàn)

AI芯片主要是兩種形態(tài),一種是基于SIMT的GPU,另外一種是類SIMD的NPU,隨著NVIDIA A100的發(fā)布,我們看到兩種芯片架構在相互借鑒,相互融合:

  1. 大算力還是要靠SIMD(SIMT的靈活性雖然強,但是芯片的面積/功耗挑戰(zhàn)太大),Tensor Core的規(guī)模越來越大;
  2. 片內片間高速互聯(lián);
  3. 多硅片,大內存封裝,x倍體積(特別是推理芯片)。

AI芯片的持續(xù)演進對AI框架也提出了許多關鍵的挑戰(zhàn):

  1. 優(yōu)化與硬件耦合度提升,圖算編譯一體化:圖層融合優(yōu)化已經趨于收斂,需要和算子層聯(lián)動優(yōu)化,子圖級和算子級的界限打破,基于Graph tuning的整體優(yōu)化是目前的熱點;
  2. 多樣的執(zhí)行方式:圖下沉模式和單算子調用模式混合,不同的情況下,可能采用不同的方式;
  3. 可編程性挑戰(zhàn)變大:由于有了大量的SIMD加速指令,不在是單純的SIMT編程模型,異構編程的挑戰(zhàn)變大

從算法工程師和開發(fā)者的角度看AI框架的趨勢

  • 新的AI編程語言嘗試突破Python的限制

目前看到有代表性主要是Julia和Swift for TensorFlow

Julia的歷史較早,目前在科學計算領域已經有不錯的應用基礎,當前結合這些領域的積累,逐步進入AI和深度學習領域,宣稱的特點是動態(tài)語言的特征,靜態(tài)語言的性能,和Python比,比較有特色的地方包括:

  1. MATLAB的張量原生表達
  2. 多態(tài)的能力+動態(tài)類型推導/特化

3. IR的反射機制

所謂的IR反射機制是指,Julia的IR可以讓開發(fā)者做二次加工,以Julia的機器學習庫Flux+Zygote為例:

Flux是一個Julia上的擴展庫,定義基本的算子,如conv,pooling,bn等等,方便開發(fā)者基于Flux去定義機器學習模型;

Zygote基于Julia提供的IR反射機制實現(xiàn)了源到源的自動微分,在這個過程中,是不要改變Julia本身的。

與Julia相比,Swift for TensorFlow則完全是另外一套思路,他試圖從工業(yè)級開發(fā)的角度來找到差異化,包括靜態(tài)類型、高性能、與端側結合的易部署等。

從目前看盡管Julia和Swift都有些特色,但是短期內還很難撼動Python在AI領域的地位。

  • AI編譯器成為框架的競爭焦點

AI編譯器目前看到有三個方向在發(fā)力,第一類是致力于動靜態(tài)圖統(tǒng)一的AI JIT能力,比如TorchScript、JAX等;第二類是偏向于面向芯片的優(yōu)化,如XLA、TVM;第三類是想做AI編譯器的基礎設施,MLIR希望是提供MetaIR,成為構建AI編譯器的基礎,Relay/TVM則是想把編譯器接口開放出去支撐第三方框架。不過我們看到這三個方向都還存在比較大的挑戰(zhàn)。

AI JIT:Python的靈活性和動態(tài)性太強,動態(tài)shape好搞定,但是動態(tài)Type就難了,更不用說Python里面有大量非常靈活的數(shù)據(jù)結構的用法,一個動態(tài)圖想無縫的轉到靜態(tài)圖的確不是一件很容易的事情。

編譯加速:目前主要還是基于Pattern的算子融合和基于模板的算子生成技術,這里的瓶頸在于算子生成技術,因為算子融合的組合條件太多,基于模板無法做到完全枚舉,要提升整個編譯加速的泛化能力,下一個需要攻克的技術就是不需要模板的自動算子生成技術。

AI編譯器的基礎設施:MLIR在設計理念上確實是先進和宏大的,MLIR目標通過Dialect的擴展來支持各種領域編譯器,包括AI編譯器(圖層和算子層)。從進展看,MLIR在TF Lite的應用最快,主要是用作模型轉換工具。我們需要思考的是,MLIR帶來的好處究竟是什么?我想MLIR本身并不會打來框架性能和易用性的提升,主要還是重用和歸一,如LLVM的基礎結構CFG+BB、大量的優(yōu)化等,問題是這些重用是否有利于AI圖層和算子層的編譯,個人的觀點,對于算子層來說MLIR+LLVM肯定是適用的,對于圖層就未必,LLVM雖然統(tǒng)一了許多編程語言的編譯器,但是優(yōu)勢領域還是集中在靜態(tài)編譯領域,在JIT和VM領域,LLVM的優(yōu)勢并不明顯,CFG+BB這樣的基礎架構未必適合需要自動微分/JIT這樣的AI圖層編譯器。

從AI的部署看AI框架的挑戰(zhàn)

從AI部署看,我們看到三個趨勢:

  1. 大模型在端側的部署,特別是語言型的模型
  2. 端云協(xié)同的場景逐步開始應用,這里主要有兩類,一類是云側訓練,端側做在線finetuning的增量學習,第二類是聯(lián)邦學習。
  3. AI無處不在,在IoT那些資源受限的設備上進行AI模型的部署。

目前看AI框架主要是兩個挑戰(zhàn):

  1. AI框架在云側和端側能否做到架構上的統(tǒng)一,這里的統(tǒng)一主要是指IR格式,只有這樣才能做到云側訓練出來的模型,在端側可以平滑的進行增量學習,并方便地進行聯(lián)邦學習。
  2. AI框架能否做到可大可小,比如小到K級的底噪,能夠內置到IoT的設備里。

從AI的責任看AI框架的挑戰(zhàn)

AI的責任涉及的范圍非常廣,包括安全、隱私、公平、透明、可解釋。

作為AI業(yè)務的承載,AI框架需要具備使能AI責任的能力,目前AI框架需要解決的幾個挑戰(zhàn):

1、對于AI責任的各個方面,缺乏通用的分析方法和度量體系,缺乏場景感知的自動化度量方法。

2、AI模型魯棒性、隱私保護技術、密態(tài)AI在實際場景下對模型性能影響較大。

3、AI的可解釋性還缺乏理論和算法支撐,難以給出人類友好的推理結果解釋。

2、MindSpore的構想

MindSpore作為一個新興的框架,大家經常問的一個問題是他的差異化在哪里?

結合前面分析的AI框架的驅動力和挑戰(zhàn),我們希望MindSpore在5個方向上引領AI框架的演進:

  • Beyond AI:從深度學習框架演進到通用張量可微計算框架

MindSpore會提供一個更通用的AI編譯器,為支持更多的應用類型提供可能性。

  • 分布式并行原生(Scale out):從手工并行演進到自動并行

MindSpore在支持大規(guī)模訓練方面除了性能和擴展性好外,更重要的是想降低這一塊的門檻,讓分布式訓練變得更加簡單。

  • 圖算深度融合(Scale up):從圖算分離優(yōu)化演進到圖算聯(lián)合優(yōu)化

MindSpore提供圖算聯(lián)合優(yōu)化、自動算子生成、深度圖優(yōu)化等關鍵技術,充分發(fā)揮AI芯片的算力。

  • 全場景AI:從端云分離架構演進到端云統(tǒng)一架構

MindSpore的云側框架和端側框架做到統(tǒng)一架構,方便云端訓練/端側finetuing或者端云協(xié)同的聯(lián)邦學習

  • 企業(yè)級可信能力:從消費級AI演進到企業(yè)級AI

MindSpore會內置對抗性訓練、差分隱私、密態(tài)AI、聯(lián)邦學習以及可解釋AI等能力。

當然,軟件架構都是持續(xù)演進的,很少有技術能夠做到獨門絕技,MindSpore也希望和業(yè)界其他框架在正確的方向上一起進步。

同時,MindSpore社區(qū)也對外發(fā)布了10大課題,邀請開發(fā)者一起參與創(chuàng)新。具體參見鏈接:https://github.com/mindspore-ai/community/tree/master/working-groups/research

最后,簡單介紹一下MindSpore的高層設計

MindSpore主要分為四層:

  1. MindSpore Extend:這個是MindSpore的擴展包,現(xiàn)在的數(shù)量還比較少,希望未來有更多的開發(fā)者來一起貢獻和構建
  2. MindSpore的表達層:MindExpress是基于Python的前端表達,未來我們也計劃陸續(xù)提供C/C++、Java等不同的前端;MindSpore也在考慮自研編程語言前端-倉頡,目前還處于預研階段;同時,我們內部也在做與Julia這些第三方前端的對接工作,引入更多的第三方生態(tài)。
  3. MindSpore的編譯優(yōu)化層:MindCompiler是我們圖層的核心編譯器,主要基于端云統(tǒng)一的MindIR實現(xiàn)三大功能,包括硬件無關的優(yōu)化(類型推導/自動微分/表達式化簡等)、硬件相關優(yōu)化(自動并行、內存優(yōu)化、圖算融合、流水線執(zhí)行等)、部署推理相關的優(yōu)化(量化/剪枝等);MindAKG是MindSpore的自動算子生成編譯器,目前還在持續(xù)完善中。
  4. MindSpore全場景運行時:這里含云側、端側以及更小的IoT。

同時MindSpore也提供了面向AI責任的MindArmour,以及面向數(shù)據(jù)處理/可視化/可解釋的MindData。

MindSpore是一個新生的開源項目,今年3月底剛開源,本文介紹的構想更偏向MindSpore的規(guī)劃,其中有不少功能還沒有完善,許多功能還不好用,甚至還有些功能處于前期研究階段,希望開發(fā)者們能一起參與MindSpore社區(qū),多提問題和意見,共建MindSpore社區(qū)。

MindSpore官網(wǎng):https://www.mindspore.cn/

MindSpore論壇https://bbs.huaweicloud.com/forum/forum-1076-1.html

代碼倉地址:

Gitee-https://gitee.com/mindspore/mindspore

GitHub-https://github.com/mindspore-ai/mindspore

官方QQ群: 871543426

推薦專欄文章

更多嵌入式AI算法部署等請關注極術嵌入式AI專欄。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3531

    瀏覽量

    128981
  • 人工智能
    +關注

    關注

    1789

    文章

    46316

    瀏覽量

    236480
收藏 人收藏

    評論

    相關推薦

    RISC-V如何支持不同的AI和機器學習框架和庫?

    RISC-V如何支持不同的AI和機器學習框架和庫?還請壇友們多多指教一下。
    發(fā)表于 10-10 22:24

    探索手機震動馬達的種類與應用:技術演進與市場趨勢

    手機震動馬達,作為手機中不可或缺的一個組件,扮演著提醒、通知和反饋的重要角色。然而,隨著技術的不斷發(fā)展和市場需求的變化,手機震動馬達也在不斷演進和多樣化。本文將深入分析手機震動馬達的種類、技術特點以及應用場景,為讀者呈現(xiàn)手機震動馬達領域的最新動態(tài)。
    的頭像 發(fā)表于 09-19 15:06 ?208次閱讀
    探索手機震動馬達的種類與應用:技術<b class='flag-5'>演進</b>與市場<b class='flag-5'>趨勢</b>

    中國AI長卷(二):框架立基

    AI框架可以看到,更強的產業(yè)化能力,就是中國AI的底色
    的頭像 發(fā)表于 07-24 12:27 ?2496次閱讀
    中國<b class='flag-5'>AI</b>長卷(二):<b class='flag-5'>框架</b>立基

    英偉達推出Flextron AI框架:賦能靈活高效的AI模型部署

    在人工智能與機器學習領域,隨著技術的不斷演進,模型的高效部署與適應性成為研究的新熱點。近日,英偉達與德克薩斯大學奧斯汀分校攜手宣布了一項重大突破——推出了一種名為FLEXTRON的新型靈活模型架構及訓練后優(yōu)化框架,這一創(chuàng)新成果為AI
    的頭像 發(fā)表于 07-18 15:22 ?2511次閱讀

    ai大模型和ai框架的關系是什么

    AI大模型和AI框架是人工智能領域中兩個重要的概念,它們之間的關系密切且復雜。 AI大模型的定義和特點 AI大模型是指具有大量參數(shù)的深度學習
    的頭像 發(fā)表于 07-16 10:07 ?3.7w次閱讀

    AI大模型與AI框架的關系

    多個領域取得顯著成果。而AI框架則是為開發(fā)和訓練AI模型提供的一套標準接口、特性庫和工具包,它集成了算法的封裝、數(shù)據(jù)的調用以及計算資源的使用,是AI
    的頭像 發(fā)表于 07-15 11:42 ?729次閱讀

    GPT的定義和演進歷程

    GPT,全稱Generative Pretrained Transformer,是OpenAI公司在自然語言處理(NLP)領域的一項重大創(chuàng)新。這一模型不僅推動了AI技術的邊界,還深刻影響了我們與機器交互的方式。本文將從GPT的定義、來源、演進歷程
    的頭像 發(fā)表于 07-10 10:41 ?748次閱讀

    CubeIDE生成的代碼框架會卡在MX_X_CUBE_AI_Process()函數(shù)中是怎么回事?

    當我將網(wǎng)絡模型部署到STM32F407VGT6中時,CubeIDE生成的代碼框架會卡在MX_X_CUBE_AI_Process()函數(shù)中是怎么回事?CUbeAI庫的版本是9.0。期待您的回復,謝謝
    發(fā)表于 05-30 06:11

    開發(fā)者手機 AI - 目標識別 demo

    識別demo: JS實現(xiàn)UI界面的功能; Native接口及實現(xiàn)主要為JS提供接口進行AI推理。通過Native方式完成推理的前處理、推理以及后處理,這里通過調用opencv、MindSpore
    發(fā)表于 04-11 16:14

    AI推理框架軟件ONNX Runtime正式支持龍架構

    近日,知名AI推理框架開源社區(qū)ONNX Runtime正式發(fā)布支持龍架構的版本1.17.0。
    的頭像 發(fā)表于 03-12 12:23 ?502次閱讀
    <b class='flag-5'>AI</b>推理<b class='flag-5'>框架</b>軟件ONNX Runtime正式支持龍架構

    基于AI框架的智能工廠設計

    在當今的智能制造業(yè)中,智能化和數(shù)字化的發(fā)展已經成為制造業(yè)的主要趨勢。隨著人工智能(AI)技術的不斷發(fā)展和進步,智能制造的智慧工廠已經成為制造業(yè)的一個重要發(fā)展方向。
    發(fā)表于 01-26 15:18 ?776次閱讀
    基于<b class='flag-5'>AI</b><b class='flag-5'>框架</b>的智能工廠設計

    Nullmax揭秘BEV-AI技術架構加速量產方案演進

    12月19日,Nullmax首席科學家成二康博士應邀出席2023全球自動駕駛峰會(GADS 2023),在自動駕駛BEV感知技術論壇上發(fā)表《BEV-AI技術架構 – 量產方案演進》主題報告,透過Nullmax量產方案演進路線圖,
    的頭像 發(fā)表于 12-22 14:46 ?1053次閱讀

    駕馭創(chuàng)造的力量: 生成式 AI 時代的 MLOps 演進

    以下文章來源于谷歌云服務,作者 Google Cloud 駕馭創(chuàng)造的力量: 生成式?AI?時代的?MLOps?演進? MLOps 是一種將機器學習模型從實驗室推向生產的系統(tǒng)方法,它能夠通過全面
    的頭像 發(fā)表于 12-21 18:05 ?291次閱讀

    HarmonyOS:使用MindSpore Lite引擎進行模型推理

    使用 MindSpore Lite 推理框架時,需要釋放已經創(chuàng)建的模型。 // 釋放模型 OH_AI_ModelDestroy(&model); 調測驗證 編寫 CMakeLists.txt
    發(fā)表于 12-14 11:41

    無線數(shù)傳通信產品的設計構想

    電子發(fā)燒友網(wǎng)站提供《無線數(shù)傳通信產品的設計構想.pdf》資料免費下載
    發(fā)表于 11-08 09:16 ?0次下載
    無線數(shù)傳通信產品的設計<b class='flag-5'>構想</b>