MindSpore技术理解(下)
MindSpore技術(shù)理解(下)
4 GraphEngine
由于深度學(xué)習(xí)算法需要進(jìn)行大量的計(jì)算,很多公司都設(shè)計(jì)了自己的深度學(xué)習(xí)專用處理器(如谷歌的張量處理器、阿里巴巴的含光等),華為也發(fā)布了自主設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)處理單元(Neural Processing Unit,NPU)——昇騰系列芯片。可以借助 GE 在 GPU、CPU、昇騰系列芯片上操作 MindSpore 定義的模型。 如圖 1 所示,GE 位于 ME 和設(shè)備之間。GE 將 ME 的輸出數(shù)據(jù)流圖作為輸入,在 GE 內(nèi)部執(zhí)行某些 圖處理操作,以實(shí)現(xiàn)昇騰系列芯片的高效操作。GE 可以直接訪問(wèn)所有底層組件,負(fù)責(zé)圖形管理、資 源分配和設(shè)備交互。
-
前端交互
GE 內(nèi)部初始化一個(gè)會(huì)話,與 ME 的會(huì)話通信,以獲取待添加的圖。為了避免直接訪問(wèn)前端的數(shù)據(jù)結(jié)構(gòu),在發(fā)送前使用 protobuf 實(shí)現(xiàn)序列化。GE 內(nèi)部采用協(xié)同響應(yīng)的反序列化,這一過(guò)程 保證了數(shù)據(jù)完全解耦。 -
圖編譯器
GE 最基本也是最重要的功能是圖形管理,包括圖形處理和圖形生命周期管理。GE 內(nèi)執(zhí)行一系列圖形處理操作,以實(shí)現(xiàn)對(duì)設(shè)備的有效操作。
首先,對(duì)變量和特征映射的所有形狀進(jìn)行推斷,以便以后進(jìn)行內(nèi)存分配。設(shè)備中的物理計(jì)算核在 GE 中對(duì)應(yīng)不同的抽象引擎,根據(jù)引擎是否支 持算子以及引擎上的成本(有的算子只能在特定的引擎上運(yùn)行,所以分配引擎時(shí)要看引擎是否 支持算子,如果多個(gè)引擎都支持該算子,則看每個(gè)引擎上的成本),圖中的每一個(gè)算子都被分配 到一個(gè)最優(yōu)的引擎。
然后,根據(jù)分配的引擎,將整個(gè)圖分解為若干個(gè)子圖。某些算子被添加到 子圖中,作為圖邊標(biāo)記。這樣的一個(gè)分區(qū)使以后的優(yōu)化和編譯更加高效。
根據(jù)分配的不同引擎,每個(gè)子圖采用不同的優(yōu)化過(guò)程。該方法刪除了部分冗余算子,將部分算子組合為一個(gè)大算子,進(jìn)一步減少了運(yùn)算量。專門(mén)設(shè)計(jì)了一種新穎的數(shù)據(jù)布局格式,以便 在昇騰系列芯片上實(shí)現(xiàn)更快的操作。將原始張量沿 C 軸切分為若干 C0(例如 C0=16),并將其 轉(zhuǎn)換為如 4 2.圖 6 所示的 5D 格式,從而確保更快地在昇騰系列芯片上獲取硬件。
-
執(zhí)行和插件
圖形編譯和資源分配是在高度優(yōu)化的圖形上完成的。GE 在考慮內(nèi)存復(fù)用的基礎(chǔ)上進(jìn)行內(nèi)存申請(qǐng),同時(shí)根據(jù)圖內(nèi)信息進(jìn)行流和同步信號(hào)的分配。事件作為不同流之間的同步信號(hào),保證正確的任務(wù)執(zhí)行順序。每個(gè)算子被編譯為一個(gè)或多個(gè)任務(wù),同一個(gè)算子編譯出來(lái)的任務(wù)被綁定到同一條流上,不同流上的任務(wù)可以并行執(zhí)行。根據(jù)不同節(jié)點(diǎn)之間的控制依賴關(guān)系,可以導(dǎo)出圖中所有節(jié)點(diǎn)的時(shí)序關(guān)系。不同流可以并行執(zhí)行,同一流中的算子之間串行操作。因此,根據(jù)順序關(guān)系信息選擇適當(dāng)?shù)牧鞣峙洳呗?#xff0c;從而保證節(jié)點(diǎn)之間的完全并行計(jì)算,而且不存在控制依賴關(guān)系。算子加載到對(duì)應(yīng)的引擎上執(zhí)行。GE 還提供 GE Plugins 作為外部插件,以便擴(kuò)展 GE 的特 性。GE 只定義了外部插件模塊的注冊(cè)接口,具體功能在每個(gè)插件中實(shí)現(xiàn),這樣的設(shè)計(jì)保證了 GE 的可行性和靈活性。
5 MindData
5.1 數(shù)據(jù)處理
數(shù)據(jù)處理是一個(gè)單獨(dú)的異步流水線,它為張量饋入模型做好準(zhǔn)備。在流水線內(nèi),數(shù)據(jù)被組織成一系 列具有不同列的行,所有列都用列名標(biāo)識(shí),并且可以獨(dú)立訪問(wèn)。流水線總是從一個(gè)源數(shù)據(jù)集算子開(kāi) 始,該算子從磁盤(pán)(如 MindDataset)讀取數(shù)據(jù),并包含選擇 shuffling 和 sharding 策略的標(biāo)記。為 了訪問(wèn)流水線中的數(shù)據(jù),可使用迭代器(Python 訪問(wèn))或設(shè)備隊(duì)列(直接發(fā)送到加速器設(shè)備)。
數(shù)據(jù)處理的體系結(jié)構(gòu)本質(zhì)上是流水線且并行的,管道的運(yùn)行默認(rèn)是異步的,但用戶也可以在圖中插 入同步點(diǎn),以便流水線算子能夠?qū)崟r(shí)反饋循環(huán)。未來(lái),流水線將進(jìn)行動(dòng)態(tài)調(diào)整,以充分利用所有可 用的資源,包括用于圖像處理的硬件加速器或用于緩存的可用內(nèi)存,用戶只需配置默認(rèn)參數(shù)以獲得 良好的性能,而無(wú)須進(jìn)行手動(dòng)調(diào)優(yōu)。
為了讓用戶實(shí)現(xiàn)快速遷移,數(shù)據(jù)處理支持用戶已有的 Python 數(shù)據(jù)增強(qiáng)作為自定義算子以 pyfunc 方 式接入,同時(shí)現(xiàn)有的 Python 數(shù)據(jù)集類可以作為參數(shù)傳遞給 GeneratorDataset 接入。不斷涌現(xiàn)的新 網(wǎng)絡(luò)對(duì)數(shù)據(jù)處理的靈活性提出了新要求。數(shù)據(jù)處理支持使用用戶自定義的函數(shù)(或調(diào)度)來(lái)更改參 數(shù),例如 mini-batch 大小;還支持用戶對(duì)整個(gè) mini-batch 進(jìn)行自定義轉(zhuǎn)換,以進(jìn)行 mini-batch 級(jí)的圖像大小或多行操作(如圖像混合)。為了獲得更多樣的增強(qiáng),每個(gè)樣本的增強(qiáng)可以從一個(gè)數(shù)據(jù)增強(qiáng) 操作列表中隨機(jī)選擇。另外,可以通過(guò)外部搜索(即 Fast AutoAugment)在候選數(shù)據(jù)增強(qiáng)操作列表 中進(jìn)行選擇,最近關(guān)于 randomAugment 和 uniformAugment 的研究表明,對(duì)很多數(shù)據(jù)集來(lái)說(shuō),只 隨機(jī)從大量數(shù)據(jù)增強(qiáng)策略中選擇合適的,不采用耗費(fèi)大量搜索時(shí)間的自動(dòng)數(shù)據(jù)增強(qiáng)方法,同樣能獲 得很好的結(jié)果。在訓(xùn)練中收集的度量的反饋(如 loss)也可以傳回至數(shù)據(jù)集,以在數(shù)據(jù)處理中執(zhí)行 動(dòng)態(tài)調(diào)整,如 Adversrial AutoAugment 中所示。
5.2 MindRecord MindRecord
數(shù)據(jù)集格式將用戶的訓(xùn)練數(shù)據(jù)按不同類型、不同頁(yè)面進(jìn)行存儲(chǔ),建立輕量化、高效的索引,并提供一套接口,方便用戶將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 MindRecord 格式,然后使用 MindDataset 將訓(xùn) 練數(shù)據(jù)讀入數(shù)據(jù)集。同時(shí),可以快速?gòu)臄?shù)據(jù)集讀取重要的元數(shù)據(jù)(即數(shù)據(jù)集大小或數(shù)據(jù)布局)以提 高性能或簡(jiǎn)化用戶訪問(wèn)。MindRecord 能夠支持小塊數(shù)據(jù)的高效順序 I/O,還可以根據(jù)用例需要支持高效的隨機(jī)行訪問(wèn)和下沉過(guò)濾。隨著新用例的出現(xiàn),進(jìn)一步優(yōu)化的功能會(huì)下沉到該數(shù)據(jù)集。
5.3 MindInsight MindInsight 提供訓(xùn)練看板、溯源、性能分析和調(diào)試器的功能。這些功能可以幫助開(kāi)發(fā)者在訓(xùn)練模型 的過(guò)程中發(fā)現(xiàn)模型訓(xùn)練過(guò)程中出現(xiàn)的偏差,發(fā)現(xiàn)超參、數(shù)據(jù)增強(qiáng)等因素的影響,并對(duì)模型進(jìn)行調(diào)試 和性能分析。通過(guò) MindInsight,開(kāi)發(fā)者可以更好地觀察和理解訓(xùn)練過(guò)程,這樣可以提升模型優(yōu)化效率并優(yōu)化開(kāi)發(fā)者體驗(yàn)。
MindInsight 架構(gòu)如 5.3 圖 7 所示。
MindInsight 以模型訓(xùn)練中生成的日志文件作為輸入。通過(guò)文件解析、信息提取、數(shù)據(jù)緩存、圖表繪 制等一系列過(guò)程,將二進(jìn)制訓(xùn)練信息轉(zhuǎn)換成易于理解的圖表,并展示在網(wǎng)頁(yè)上。
5.3.1 訓(xùn)練看板 MindInsight
支持訓(xùn)練過(guò)程可視化。訓(xùn)練看板支持在頁(yè)面上查看訓(xùn)練過(guò)程。訓(xùn)練看板包括訓(xùn)練標(biāo)量信 息、參數(shù)分布圖、計(jì)算圖、數(shù)據(jù)圖、數(shù)據(jù)抽樣等模塊。 訓(xùn)練看板是 MindInsight 在訓(xùn)練過(guò)程呈現(xiàn)方式上的創(chuàng)新。通過(guò)在一個(gè)頁(yè)面中集成多種類型的數(shù)據(jù),用 戶只需要打開(kāi)訓(xùn)練看板就能概覽訓(xùn)練情況。
5.3.1 圖 8 展示了訓(xùn)練看板的一個(gè)示例。
5.3.2 溯源 MindInsight 還支持溯源可視化。
通過(guò)將多個(gè)訓(xùn)練的溯源信息整合到表格和圖形中,用戶可以輕松選 擇最優(yōu)的數(shù)據(jù)處理流水線和超參設(shè)置。溯源可視化包括模型溯源可視化和數(shù)據(jù)溯源可視化。模型溯 源函數(shù)可以記錄模型訓(xùn)練的關(guān)鍵參數(shù),如損失函數(shù)、優(yōu)化器、迭代次數(shù)、精度等。MindInsight 中顯示多次訓(xùn)練的超參和評(píng)估指標(biāo),幫助用戶選擇最優(yōu)超參。未來(lái),將逐步引入輔助超參推薦,幫助用 戶快速優(yōu)化超參。
圖 9 展示了模型溯源可視化的一個(gè)示例。數(shù)據(jù)溯源可視化可以記錄每次模型訓(xùn)練的數(shù)據(jù)處理流水線。多次訓(xùn)練的數(shù)據(jù)處理模式顯示在 MindInsight 上,幫助用戶選擇最優(yōu)的數(shù)據(jù)處理流水線。
圖 10 展示了數(shù)據(jù)溯源可視化的一個(gè)示例。
5.3.3 性能分析
為了滿足工程師對(duì)神經(jīng)網(wǎng)絡(luò)性能優(yōu)化的要求,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了性能分析工具。它可以打開(kāi) MindSpore 神經(jīng)網(wǎng)絡(luò)的執(zhí)行過(guò)程,收集各算子的時(shí)間、內(nèi)存等數(shù)據(jù)。MindInsight 會(huì)進(jìn)一步對(duì)性能數(shù) 據(jù)進(jìn)行整理、分析,呈現(xiàn)多維度、多層次的性能分析結(jié)果。這為神經(jīng)網(wǎng)絡(luò)性能優(yōu)化提供了方向。
性能數(shù)據(jù)展示維度包括:
-
迭代軌跡 迭代軌跡將神經(jīng)網(wǎng)絡(luò)的執(zhí)行分解為多個(gè)階段,包括數(shù)據(jù)讀取、前向和反向計(jì)算、Allreduce 等, 工程師可以快速發(fā)現(xiàn)哪個(gè)階段是目前的性能瓶頸。
-
算子性能 算子性能將聚合并整理算子執(zhí)行時(shí)間的數(shù)據(jù),這樣工程師可以很容易找出耗時(shí)的算子。
-
時(shí)間軸 時(shí)間軸可以顯示芯片側(cè)執(zhí)行流和執(zhí)行任務(wù)的狀態(tài),幫助工程師進(jìn)行細(xì)粒度的性能分析。
-
MindData Profiling 可以幫助用戶定位和分析訓(xùn)練數(shù)據(jù)獲取過(guò)程中的瓶頸,工程師可以通過(guò)提高瓶頸算子的線程數(shù) 等方法來(lái)提高性能。
5.3.4 調(diào)試器
神經(jīng)網(wǎng)絡(luò)訓(xùn)練中經(jīng)常出現(xiàn)數(shù)值誤差情況,如無(wú)窮大等,用戶希望分析訓(xùn)練無(wú)法收斂的原因。但是, 由于計(jì)算被封裝為黑盒,以圖的方式執(zhí)行,工程師很難定位其中的錯(cuò)誤。MindInsight 調(diào)試器是圖模 式下訓(xùn)練調(diào)試的工具,用戶可以在訓(xùn)練過(guò)程中查看圖的內(nèi)部結(jié)構(gòu)以及節(jié)點(diǎn)的輸入/輸出,例如查看一 個(gè)張量的值,查看圖中的節(jié)點(diǎn)對(duì)應(yīng)的 Python 代碼等。此外,用戶還可以選擇一組節(jié)點(diǎn)設(shè)置條件斷點(diǎn), 實(shí)時(shí)監(jiān)控節(jié)點(diǎn)的計(jì)算結(jié)果。
6 MindArmour
6.1 對(duì)抗性攻擊防御
對(duì)抗性攻擊[26,27]對(duì)機(jī)器學(xué)習(xí)模型安全的威脅日益嚴(yán)重。攻擊者可以通過(guò)向原始樣本添加人類不易感 知的小擾動(dòng)來(lái)欺騙機(jī)器學(xué)習(xí)模型[28,29]。為了防御對(duì)抗性攻擊,MA 提供了攻擊(對(duì)抗樣本生成)、 防御(對(duì)抗樣本檢測(cè)和對(duì)抗性訓(xùn)練)、評(píng)估(模型魯棒性評(píng)估和可視化)等功能。 給定模型和輸入數(shù)據(jù),攻擊模塊提供簡(jiǎn)單的 API,能夠在黑盒和白盒攻擊場(chǎng)景下生成相應(yīng)的對(duì)抗樣 本。這些生成的對(duì)抗樣本被輸入防御模塊,以提高機(jī)器學(xué)習(xí)模型的泛化能力和魯棒性。防御模塊還 實(shí)現(xiàn)了多種檢測(cè)算法,能夠根據(jù)惡意內(nèi)容或攻擊行為來(lái)區(qū)分對(duì)抗樣本和正常樣本。評(píng)估模塊提供了 多種評(píng)估指標(biāo),開(kāi)發(fā)者能夠輕松地評(píng)估和可視化模型的魯棒性。
6.2 隱私保護(hù)人工智能 隱私保護(hù)也是人工智能應(yīng)用的一個(gè)重要課題。MA 考慮了機(jī)器學(xué)習(xí)中的隱私保護(hù)問(wèn)題,并提供了相 應(yīng)的隱私保護(hù)功能。針對(duì)已訓(xùn)練模型可能會(huì)泄露訓(xùn)練數(shù)據(jù)集中的敏感信息問(wèn)題[30,31],MA 實(shí)現(xiàn)了一 系列差分隱私優(yōu)化器,自動(dòng)將噪聲加入反向計(jì)算生成的梯度中,從而為已訓(xùn)練模型提供差分隱私保 障。特別地,優(yōu)化器根據(jù)訓(xùn)練過(guò)程自適應(yīng)地加入噪聲,能夠在相同的隱私預(yù)算下實(shí)現(xiàn)更好的模型可 用性。同時(shí)提供了監(jiān)測(cè)模塊,能夠?qū)τ?xùn)練過(guò)程中的隱私預(yù)算消耗進(jìn)行動(dòng)態(tài)監(jiān)測(cè)。用戶可以像使用普 通優(yōu)化器一樣使用這些差分隱私優(yōu)化器。
7 端云協(xié)同架構(gòu)
MindSpore 旨在構(gòu)建一個(gè)從端側(cè)到云側(cè)全場(chǎng)景覆蓋的人工智能框架,將支持“端云”協(xié)同能力,包 括模型優(yōu)化、端側(cè)訓(xùn)練和推理、聯(lián)邦學(xué)習(xí)等過(guò)程,如圖 11 所示。
-
模型生成與優(yōu)化工具包 移動(dòng)和邊緣設(shè)備通常資源有限,如電源和內(nèi)存。為了幫助用戶利用有限的資源部署模型, MindSpore 將支持一系列優(yōu)化技術(shù),如模型自適應(yīng)生成、量化策略等,如圖 11 左側(cè)所示。模 型自適應(yīng)生成是指應(yīng)用神經(jīng)架構(gòu)搜索(Neural Architecture Search,NAS[32])技術(shù)來(lái)生成在不 同設(shè)備下時(shí)延、精度、模型大小均滿足需求的模型。量化策略是指通過(guò)以更少位數(shù)的數(shù)據(jù)類型 來(lái)近似表示 32 位有限范圍浮點(diǎn)數(shù)據(jù)類型的過(guò)程,MindSpore 支持訓(xùn)練后量化和量化感知訓(xùn)練。
-
端側(cè)訓(xùn)練和聯(lián)邦學(xué)習(xí) 雖然在大型數(shù)據(jù)集上訓(xùn)練的深度學(xué)習(xí)模型在一定程度上是通用的,但是在某些場(chǎng)景中,這些模 型仍然不適用于用戶自己的數(shù)據(jù)或個(gè)性化任務(wù)。 MindSpore 計(jì)劃提供端側(cè)訓(xùn)練方案,允許用戶訓(xùn)練自己的個(gè)性化模型,或?qū)υO(shè)備上現(xiàn)有的模型 進(jìn)行微調(diào),同時(shí)避免了數(shù)據(jù)隱私、帶寬限制和網(wǎng)絡(luò)連接等問(wèn)題。端側(cè)將提供多種訓(xùn)練策略,如 初始化訓(xùn)練策略、遷移學(xué)習(xí)、增量學(xué)習(xí)等。MindSpore 還將支持聯(lián)邦學(xué)習(xí),通過(guò)向云側(cè)發(fā)送模 型更新/梯度來(lái)共享不同的數(shù)據(jù),如圖 11 所示。基于聯(lián)邦學(xué)習(xí),模型可以學(xué)習(xí)更多的通用知識(shí)。
-
移動(dòng)和邊緣設(shè)備部署 MindSpore 提供輕量級(jí)的計(jì)算引擎,支持模型在設(shè)備上高效執(zhí)行。在將預(yù)先訓(xùn)練好的模型部署 到設(shè)備側(cè)時(shí),通常需要進(jìn)行模型轉(zhuǎn)換。然而,這個(gè)過(guò)程可能導(dǎo)致性能降低和精度損失。在 MindSpore 中,端側(cè)推理模式能夠兼容云上訓(xùn)練好的模型,因此,在設(shè)備上部署已經(jīng)訓(xùn)練好的 模型時(shí),無(wú)須進(jìn)行轉(zhuǎn)換,這樣避免了潛在的性能損失。此外,MindSpore 還內(nèi)置了針對(duì)設(shè)備的 各種自動(dòng)優(yōu)化,例如圖和算子融合、精細(xì)復(fù)雜的內(nèi)存管理、硬件加速等,如圖 11 右側(cè)所示。
8 評(píng)估
在本節(jié)中,我們?cè)u(píng)估了 MindSpore 在自動(dòng)并行方面的性能,還在華為昇騰系列芯片集群上進(jìn)行了實(shí) 驗(yàn),并與當(dāng)前主流的深度學(xué)習(xí)框架進(jìn)行了性能對(duì)比。結(jié)果表明,我們的系統(tǒng)具有以下特點(diǎn):(
1)高 通量;
(2)加速比隨著集群的增加保持穩(wěn)定。此外,我們提供了幾種模型的推理性能,并獲得了比 主流的深度學(xué)習(xí)框架更好的性能。
8.1 自動(dòng)并行 我們?cè)谝粋€(gè)有 8 臺(tái)設(shè)備的昇騰服務(wù)器上進(jìn)行了實(shí)驗(yàn)。使用標(biāo)準(zhǔn)的 ResNet50,分別在原始數(shù)據(jù)并行 和自動(dòng)并行下訓(xùn)練。原始數(shù)據(jù)并行和自動(dòng)并行的比較結(jié)果如圖 12 所示,分類數(shù)目從 1K 到 1024K 左右。我們觀察到當(dāng)分類數(shù)目小于 32K 時(shí),兩種模式的迭代次數(shù)幾乎相同,因?yàn)樵撍惴ㄕ业搅藬?shù)據(jù) 并行(Data-Parallelism,DP)策略。當(dāng)分類數(shù)目超過(guò) 64K 后,自動(dòng)并行模式相比數(shù)據(jù)并行模式, 在性能上有了較大提升。這是因?yàn)楫?dāng)分類數(shù)目超過(guò) 64K,該算法返回的策略是混合并行(Hybrid Parallelism,HP)(表示模型頭部的算子是數(shù)據(jù)并行的,而 MatMul 算子是模型并行的,如圖 3 所示)。 這一過(guò)程節(jié)省了很大的通信開(kāi)銷,因?yàn)槟P筒⑿斜苊饬?MatMul 算子中由可學(xué)習(xí)參數(shù)同步引起的大 量 AllReduce。 當(dāng)分類數(shù)目大于 256K 時(shí),由于“內(nèi)存溢出”(Out of Memory,OOM)失敗,數(shù)據(jù)并行模式甚至不 能運(yùn)行,而自動(dòng)并行模式下,ResNet50 訓(xùn)練成功,迭代時(shí)間略有增加。
8.2 性能測(cè)試
8.2.1 訓(xùn)練性能
在昇騰系列芯片的集群上完成了 ResNet50 和 BERT-large 模型的訓(xùn)練,并與 TensorFlow 進(jìn)行 了對(duì)比。TensorFlow 使用 NVIDIA DGX-2(16x V100 32G),我們通過(guò)配置不同的 AI 設(shè)備數(shù)來(lái)對(duì)比 MindSpore 和 TensorFlow 的訓(xùn)練性能。如圖 13 和圖 14 所示,隨著 AI 設(shè)備數(shù)的增加,MindSpore 可以獲得比 TensorFlow 更大的吞吐量。 如圖 15 所示,使用昇騰系列芯片的 MindSpore 在訓(xùn)練 ResNet-50v1.5 和 BERT-large 時(shí)都可以獲 得超過(guò) 93%的加速比。而使用 GPU 的 TensorFlow 在訓(xùn)練 ResNet50 時(shí)只能達(dá)到 79%的加速比, 在訓(xùn)練 BERT-large 時(shí)只能達(dá)到 86%的加速比。
8.2.2 推理性能
還使用了不同的輕量級(jí)模型在華為 Mate 30 手機(jī)上進(jìn)行了推理實(shí)驗(yàn),如表 2 所示。在 CPU 上 執(zhí)行,并將推理延遲與 TensorFlow 進(jìn)行比較。結(jié)果表明,MindSpore 比 TensorFlow 具有更短的推 理時(shí)延。 表 2 用 MindSpore 和 TensorFlow Lite 在華為 Mate 30 手機(jī)進(jìn)行推理的性能比較。
9 結(jié)論及未來(lái)工作方向
在本文中,介紹了新的深度學(xué)習(xí)框架——MindSpore,重點(diǎn)介紹了 MindSpore 的四個(gè)重要組成 部分:ME、GE、MD 和 MA 以及 MindSpore 的幾個(gè)新特性,即自動(dòng)并行、自動(dòng)微分和端邊云協(xié)同 訓(xùn)練,這使 MindSpore 能夠?qū)崿F(xiàn)易開(kāi)發(fā)、高效執(zhí)行、全場(chǎng)景覆蓋三大目標(biāo)。此外,MindSpore 還提 供可視化和防御工具,使訓(xùn)練過(guò)程對(duì)各種對(duì)抗性攻擊都可見(jiàn),并且能夠抵抗這些攻擊。2020 年 3 月 28 日華為發(fā)布了 MindSpore 的第一個(gè)版本,現(xiàn)在,MindSpore 已經(jīng)成功與昇騰系列芯片適配,并應(yīng) 用于華為的各種產(chǎn)品,從智能手機(jī)到云。今后,我們計(jì)劃從幾個(gè)方面改進(jìn)現(xiàn)有的 MindSpore 系統(tǒng)。 對(duì)于 ME 部分,我們希望考慮拓?fù)涓兄恼{(diào)度,以滿足多節(jié)點(diǎn)集群中不同的通信需求;對(duì)于 GE,我 們將嘗試進(jìn)一步利用昇騰系列芯片來(lái)優(yōu)化計(jì)算圖;對(duì)于 MD,我們將為人工智能工程師提供更靈活 的工具來(lái)處理和增強(qiáng)不同類型的數(shù)據(jù);對(duì)于 MA,我們將嘗試在 CV/NLP 領(lǐng)域防御各種對(duì)抗性攻擊。
參考文獻(xiàn)
[1] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems, pages 1097–1105, 2012.
[2] Geoffrey Hinton, Li Deng, Dong Yu, George Dahl, Abdel-rahman Mohamed, Navdeep Jaitly, Andrew Se- nior, Vincent Vanhoucke, Patrick Nguyen, Brian Kings- bury, et al. Deep neural networks for acoustic modeling in speech recognition. IEEE Signal processing maga- zine, 29, 2012.
[3] Mnih Volodymyr, Kavukcuoglu Koray, Silver David, A Rusu Andrei, and Veness Joel. Human-level control through deep reinforcement learning. Nature, 518(7540):529–533, 2015.
[4] Yoshua Bengio, Réjean Ducharme, Pascal Vincent, and Christian Jauvin. A neural probabilistic language model. Journal of machine learning research, 3(Feb):1137– 1155, 2003.
[5] Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, et al. Ten- sorflow: Large-scale machine learning on heterogeneous distributed systems. arXiv preprint arXiv:1603.04467, 2016.
[6] Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan, Edward Yang, Zachary DeVito, Zeming Lin, Alban Desmaison, Luca Antiga, and Adam Lerer. Auto- matic differentiation in pytorch. 2017.
[7] Tianqi Chen, Mu Li, Yutian Li, Min Lin, Naiyan Wang, Minjie Wang, Tianjun Xiao, Bing Xu, Chiyuan Zhang, and Zheng Zhang. Mxnet: A flexible and efficient ma- chine learning library for heterogeneous distributed sys- tems. arXiv preprint arXiv:1512.01274, 2015.
[8] Graham Neubig, Chris Dyer, Yoav Goldberg, Austin Matthews, Waleed Ammar, Antonios Anastasopoulos, Miguel Ballesteros, David Chiang, Daniel Clothiaux, Trevor Cohn, et al. Dynet: The dynamic neural network toolkit. arXiv preprint arXiv:1701.03980, 2017.
[9] Seiya Tokui, Kenta Oono, Shohei Hido, and Justin Clay- ton. Chainer: a next-generation open source frame- work for deep learning. In Proceedings of workshop on machine learning systems (LearningSys) in the twenty- ninth annual conference on neural information process- ing systems (NIPS), volume 5, pages 1–6, 2015.
[10] Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadar- rama, and Trevor Darrell. Caffe: Convolutional archi- tecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia, pages 675–678. ACM, 2014.
[11] Cynthia Dwork and Jing Lei. Differential privacy and robust statistics. In Proceedings of the forty-first annual ACM symposium on Theory of computing, pages 371– 380, 2009.
[12] Ran Gilad-Bachrach, Nathan Dowlin, Kim Laine, Kristin Lauter, Michael Naehrig, and John Wernsing. Cryptonets: Applying neural networks to encrypted data with high throughput and accuracy. In International Conference on Machine Learning, pages 201–210, 2016.
[13] Luca Melis, Congzheng Song, Emiliano De Cristofaro, and Vitaly Shmatikov. Exploiting unintended feature leakage in collaborative learning. In 2019 IEEE Sym- posium on Security and Privacy (SP), pages 691–706. IEEE, 2019.
[14] Lingchen Zhao, Qian Wang, Qin Zou, Yan Zhang, and Yanjiao Chen. Privacy-preserving collaborative deep learning with unreliable participants. IEEE Transactions on Information Forensics and Security, 15:1486–1500, 2019.
[15] Cormac Flanagan, Amr Sabry, Bruce F Duba, and Matthias Felleisen. The essence of compiling with con- tinuations. In Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and im- plementation, pages 237–247, 1993.
[16] Bart van Merrienboer, Olivier Breuleux, Arnaud Berg- eron, and Pascal Lamblin. Automatic differentiation in ml: Where we are and where we should be going. In Advances in neural information processing systems, pages 8757–8767, 2018.
[17] Yann LeCun et al. Lenet-5, convolutional neural net- works. URL: http://yann. lecun. com/exdb/lenet, 20:5, 2015.
[18] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirec- tional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018. [19] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, and Ilya Sutskever. Language models are unsupervised multitask learners. OpenAI Blog, 1(8), 2019.
[20] Mohammad Shoeybi, Mostofa Patwary, Raul Puri, Patrick LeGresley, Jared Casper, and Bryan Catanzaro. Megatron-lm: Training multi-billion parameter language models using gpu model parallelism. arXiv preprint arXiv:1909.08053, 2019.
[21] Noam Shazeer, Youlong Cheng, Niki Parmar, Dustin Tran, Ashish Vaswani, Penporn Koanantakool, Peter Hawkins, HyoukJoong Lee, Mingsheng Hong, Cliff Young, Ryan Sepassi, and Blake Hechtman. Mesh- tensorflow: Deep learning for supercomputers. In Advances in Neural Information Processing Systems (NeurIPS), pages 10414–10423. Curran Associates, Inc., 2018.
[22] Zhihao Jia, Sina Lin, Charles R. Qi, and Alex Aiken. Ex- ploring hidden dimensions in accelerating convolutional neural networks. In Proceedings of the 35th Interna- tional Conference on Machine Learning (ICML), pages 2274–2283. PMLR, 2018.
[23] Zhihao Jia, Matei Zaharia, and Alex Aiken. Beyond data and model parallelism for deep neural networks. In Pro- ceedings of the 2nd Conference on Machine Learning and Systems (MLSys). ACM, 2019.
[24] Minjie Wang, Chien-chin Huang, and Jinyang Li. Sup- porting very large models using automatic dataflow graph partitioning. In Proceedings of the Fourteenth EuroSys Conference (EuroSys). ACM, 2019.
[25] Linghao Song, Jiachen Mao, Youwei Zhuo, Xuehai Qian, Hai Li, and Yiran Chen. Hypar: Towards hybrid par- allelism for deep learning accelerator array. In 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA), pages 56–68. IEEE, 2019.
[26] Ian J Goodfellow, Jonathon Shlens, and Christian Szegedy. Explaining and harnessing adversarial exam- ples. arXiv preprint arXiv:1412.6572, 2014.
[27] Naveed Akhtar and Ajmal Mian. Threat of adversarial attacks on deep learning in computer vision: A survey. IEEE Access, 6:14410–14430, 2018.
[28] Alexey Kurakin, Ian Goodfellow, and Samy Bengio. Ad- versarial examples in the physical world. arXiv preprint arXiv:1607.02533, 2016.
[29] Nicholas Carlini and David Wagner. Towards evaluating the robustness of neural networks. In 2017 ieee sympo- sium on security and privacy (sp), pages 39–57. IEEE, 2017.
[30] Matt Fredrikson, Somesh Jha, and Thomas Ristenpart. Model inversion attacks that exploit confidence infor- mation and basic countermeasures. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, pages 1322–1333, 2015.
[31] Reza Shokri, Marco Stronati, Congzheng Song, and Vi- taly Shmatikov. Membership inference attacks against machine learning models. In 2017 IEEE Symposium on Security and Privacy (SP), pages 3–18. IEEE, 2017. [32] Thomas Elsken, Jan Hendrik Metzen, and Frank Hutter. Neural architecture search: A survey. arXiv preprint arXiv:1808.05377, 2018.
總結(jié)
以上是生活随笔為你收集整理的MindSpore技术理解(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MindSpore技术理解(上)
- 下一篇: MindSpore张量mindspore