MSRA 系統研究員陳程:MMdnn 如何讓模型在不同深度學習框架間轉換?

雷鋒網 AI 研習社按:在深度學習領域,有許多深度學習框架可以讓開發者和研究者用於設計模型,每個框架具備各自獨特的網絡結構定義和模型保存格式。AI 工程師和研究者希望自己的模型能夠在不同的框架之間轉換,但框架之間的差距阻礙了模型之間的交互操作。

今年年初,微軟開源了 MMdnn,這是一套用於轉換、可視化深度神經網絡模型的綜合性解決方案。MMdnn 中的「MM」代表模型管理,「dnn」的意思是深度神經網絡,它能夠通過中間表徵格式讓訓練模型在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 等深度學習框架之間轉換,幫助開發者實現模型在不同框架之間的交互。

根據微軟的官方描述,MMdnn 主要有以下特徵:

  • 模型文件轉換器,不同的框架間轉換 DNN 模型

  • 模型代碼片段生成器,生成適合不同框架的代碼

  • 模型可視化,DNN 網絡結構和框架參數可視化

  • 模型兼容性測試(正在進行中)

除了 MMdnn,微軟還推出了多個深度學習框架的「旅行伴侶」,比如深度學習框架的通用語言 repo 1.0 以及和多個公司聯合提出的深度學習聯合標準 ONNX。在這些深度學習「旅行伴侶」的幫助下,AI 開發者在不同框架之間輕鬆運用專業知識,實現不同開源社區之間的合作。

不過,對於使用不同平台和不同編程語言的開發者來講,微軟的深度學習框架「旅行伴侶」如何滿足他們的需求?這些AI 開發工具未來會新增哪些功能?微軟還會推出哪些工具幫助 AI 開發者構建應用?雷鋒網 AI 研習社採訪了微軟亞洲研究院系統組研究員陳程,請他為 AI 開發者解答上述疑問。

陳程簡介:微軟亞洲研究院系統研究組副研究員,研究領域包括存儲、分佈式系統、分佈式計算和機器學習系統。曾經參與必應(Bing)搜索引擎 Per Document Index Service 存儲系統、分佈式系統開發框架 rDSN、分佈式計算平台 TuX² 的研發工作,以及深度學習框架的優化和開發。

以下是雷鋒網 AI 研習社採訪內容:

1.微軟推出可以在多個深度學習框架的開源庫 MMdnn 的初衷是什麼?

這個項目起源於我們內部開發人員和研究人員的交流。深度學習框架的多樣性讓許多開發人員面臨一個實際問題,就是如何在不同深度學習框架間轉換訓練代碼和模型文件。因此,我們參考 FFMpeg (一個廣泛使用的視頻、音頻解碼和轉換的自由軟件) 的設計思路,做了這樣一個針對深度學習框架界的項目,來增強不同深度學習框架的互操作性。這是一套實驗性的開源代碼,希望更多人可以一起來完善這個工作,並基於此開發更多新的功能。

2.MMdnn 可在多個深度學習框架間轉換,那麼 MMdnn 是如何應對不同平台開發者的需求?

MMdnn 最開始的設計就考慮了跨平台的需求, MMdnn 不僅可以在 Windows 開發環境下使用,也可以在 Linux 開發環境下使用。MMdnn 使用 Python 作為主要的開發語言,可視化的部分採用 JavaScript,這兩種語言都可以跨平台使用。

3.目前市面上有很多模型結構可視化工具,MMdnn 模型可視化工具有哪些特別之處?

MMdnn 提供的是一個統一的模型可視化工具,用一致的方式可視化其所支持的模型格式:Caffe、Keras、TensorFlow、MXNet、CNTK(CoreML 和 PyTorch 正在開發中)。用戶可以通過該功能了解網絡結構以及用於檢查網絡結構轉換結果是否正確。MMdnn 同時提供一個網頁版的服務 (vis.mmdnn.com),更加方便用戶使用。

4.你認為 MMdnn 還有哪些地方需要改進?未來的版本迭代方向是怎樣的?

MMdnn 正在快速開發中,目前主要的規劃有:

  1. 完善文檔和開發指南,方便用戶使用,以及幫助有興趣的開發者來一起共同工作;

  2. 支持更多的模型種類,比如語義分割、物體檢測、行為識別,以及自然語言處理方面的模型;

  3. 進一步提高 MMdnn 的易用性,例如將其主要功能做成一種服務,用戶可以在線轉換模型而不需要再下載使用;

  4. 推進模型可視化工具和可視化模型編輯工具的開發;

  5. 利用 MMdnn 進行模型結構分析和探索相關的研究工作。

5.同樣是幫助開發者和數據科學家更加方便地使用不同的深度學習框架,MMdnn、ONNX、repo 1.0 的差異和特點在哪裡?

MMdnn 專註於提供一個簡單易用的工具,以最小的開銷幫助開發者和數據科學家在不同深度學習框架之間相互操作。

ONNX 是微軟聯合多個相關公司一起推動的深度學習模型標準。該標準可以更好的為軟件和硬件廠商間提供更好的可交互性。多家公司的支持也利於推動不同框架內部的互操作支持。MMdnn 也將支持 ONNX 格式。

Repo 1.0 目前主要的工作是構建一個跨平台、跨架構、跨硬件的基準測試環境,讓開發者和研究人員根據自己的需求,選擇最恰當的平台、硬件和深度學習框架。

6.除了開源大量的 AI 工具,微軟還通過哪些方式幫助開發者構建 AI 應用?

我們為了幫助開發者更快捷地開發、部署、優化 AI 應用,正在研究並也已經陸續推出了一系列的深度學習平台和工具,比如:

針對開發階段,微軟提供 Visual Studio Tools forAI(https://www.visualstudio.com/zh-hans/downloads/ai-tools-vs/)和Visual Studio Code Tools for AI (https://www.visualstudio.com/zh-hans/downloads/ai-tools-vscode/),讓開發者更容易地在本地和遠程甚至在Azure上開發和調試深度學習程序。同時更加方便的開發 Windows UWP 和 Android 及 iOS 下深度學習相關的應用;

在微軟的 Azure 雲計算平台上,微軟通過 Azure Machine Learning 和 Azure Batch AI 服務為廣大開發者提供深度學習訓練的 GPU 計算平台和任務管理服務。

微軟也通過 Cognitive Services(微軟認知服務)和 Bot Framework 為開發者提供高階的人工智能 API 和開發框架。

除了上述的 MMdnn、Repo 1.0 和 ONNX 這三種深度學習框架「旅行伴侶」,微軟在 5 月 7 號的Build 開發者大會上也發佈了不少與 AI 相關的產品,同時也宣布更新了一系列新的 AI 開發工具。在微軟一系列AI工具的加持下,不論是高階的 AI 開發者還是剛入門的 AI 新手,都能更加便捷地把 AI 融入到他們自己的商業模式和應用產品中。

有關 MMdnn 的詳細信息請訪問 Github 官方頁面以及陳程 Github 個人站


想在手機閱讀更多Android 開發資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems