Kaldi 之父加盟後的小米開發者大會:亮眼 AI 開源項目逐一盤點

雷鋒網 AI 開發者:2019 年 11 月 19 日,小米開發者大會(MIDC,MI Developer Conference)在北京舉行,1 場主論壇+12 場分論壇,將呈現 AIoT+5G 等主題為「智能新時代」的多個領域最新技術;同時,這也是一場開源盛會。

大會現場,小米集團副總裁、技術委員會主席崔寶秋不僅正式發佈了支持更豐富的異構計算算子、降低跨設備運行性能損失的自研移動端深度學習框架 MACE 0.12.0 升級版;也發佈了小米自用 NLP 技術 MiNLP 1.2;還宣佈了 Pegasus 1.12 已在 GitHub 上線的消息。因此,雷鋒網 AI 開發者將開源內容整理編輯如下。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

更豐富算子,更低性能損失

據瞭解,MACE 是專門為移動設備優化的深度學習模型預測框架,MACE 提供工具和文檔,幫助用戶將深度學習模型部署到移動電話、平板電腦、個人電腦和物聯網設備上。

通過這一框架,小米可在移動端佈局各類深度學習應用和算法,包括計算機視覺、語音識別等。據小米不完全統計,MACE 每天被調用 5000 萬次。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

MACE 從設計之初,便針對移動設備的特點進行了專門的優化,例如:

  • 速度在框架底層,針對 ARM CPU 進行了 NEON 指令級優化,針對移動端 GPU,實現了高效的 OpenCL 內核代碼。針對高通 DSP,集成了 nnlib 計算庫進行 HVX 加速。同時在算法層面,採用 Winograd 算法對卷積進行加速,從而契合在移動端進行計算的模型整體所需的預測延遲高要求。

  • 功耗框架針對 ARM 處理器的 big.LITTLE 架構,提供了高性能,低功耗等多種組合配置。針對 Adreno GPU,提供了不同的功耗性能選項,使得開發者能夠對性能和功耗進行靈活的調整,從而解決移動端對功耗非常敏感這一問題。

  • 系統響應對於 GPU 計算模式,框架底層對 OpenCL 內核自適應的進行分拆調度,保證 GPU 渲染任務能夠更好的進行搶佔調度,從而保證系統的流暢度。

  • 內存佔用通過對模型的算子進行依賴分析,引入內存複用技術,大大減少內存的佔用。

更多詳細可參考《小米開源自研移動端深度學習框架MACE》:

https://www.leiphone.com/news/201806/5PYJx9sVJDURvwpj.html

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

MACE 計算框架的整體結構

而現在,MACE 支持的應用場景大大增多,包括:AI 單攝、圖片風格化、場景識別、圖像超分辨率、翻譯以及語音等。它針對移動芯片特性進行了大量優化,目前在小米手機上的人像模式、場景識別功能中已廣泛應用。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

用 MACE Model Zoo 中的 fast style transfer 模型在手機端生成的風格化圖片

這次的升級,MACE 0.12.0 主要從以下四個方面入手,使其在實際應用中有了更大優勢:

  • 更豐富的異構計算算子

  • 降低跨設備運行性能損失

  • 新增 Kaldi 語音識別算子支持

  • 新增 CMake 支持

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

其中,框架已支持的語音識別系統 Kaldi 是由 Daniel Povey(日前剛出任小米集團語音首席科學家)主導開發的開源語音識別系統,在眾多語音識別測試和應用中有廣泛的使用。

據介紹,MACE 已經支持大部分 Kaldi 系統內組件,以及 ONNX 形式的的 Kaldi 模型。此外,項目還提供了 Kaldi-onnx 轉換工具。

值得注意的是,小米也在大會上公佈了 MACE 近期(未來一兩個月)的規劃:

  • 一是即將開源 MACE-Kit(人臉檢測、人臉識別、語音識別、目標檢測端到端 SDK);

  • 二是新增微控制器支持(全面支持手機與 IoT 設備超低功耗推理場景);

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

崔寶秋也表示,在未來小米將繼續加大在 Kaldi 上的投入,幫助打造一個國際化的開源社區,進一步引領開源的語音識別技術。

Github 地址:

https://github.com/XiaoMi/mace

文檔地址:

https://mace.readthedocs.io/en/latest/

MACE Model Zoo 項目地址:

https://github.com/XiaoMi/mace-models

Kaldi 之父加盟後的小米開發者大會:亮眼 AI 開源項目逐一盤點

其它開源內容

MiNLP 1.2

今年年初,小米 MiNLP1.0 正式發佈,該平臺是小米基於聲學自主深耕平臺,在小米開發者大會上,崔寶秋表示小米 MiNLP 平臺每天調用次數達到 60 億次,然後正式發佈 MiNLP 1.2。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

新版 MiNLP 1.2 平臺相較之前主要有兩個重大更新:

  • 調用模式從本地調用到支持雲端、本地、移動端三端調用;

  • 分析功能從詞法分析拓展到句法和語義分析;

另外,新版平臺也可以吸收和集成當前的前沿進展,並進行技術創新;同時,新版平臺所支持的業務也進行了全面拓展,目前可支持公司的多項業務。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

Pegasus 1.12

Pegasus 是一個分佈式 Key-Value 存儲系統,最初是用於彌補 HBase 在可用性和性能上的不足。

Pegasus 系統的 Server 端完全採用 C++ 語言開發,從而避免了使用 Java 所帶來的 GC 影響和虛擬機開銷;同時,它也使用了 PacificA 協議支持強一致性,使用了 RocksDB 作為單機存儲引擎。由於不依賴外部文件系統,Pegasus 的 IO 路徑更短,延遲通常更加穩定可控。

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

模型設計上,Pegasus 則採用了哈希分片進行數據的拆分,分片(Partition)是系統內部數據遷移的最小單元,每一分片內的數據有序存儲,各個分片之間數據隔離,每個分片對應一個單獨的 RocksDB 實例。

它也可看做是 HBase 和 Redis 的結合體,保證了高的可用度,也具有好的伸縮性。如果業務對性能的要求不是太高(譬如 P99 要求在 1 毫秒以內),那麼 Pegasus 將是個不錯的選擇。

對於升級後的 Pegasus 1.12,其性能變化主要有三點,包括:

  • 提供 HTTP 接口,以獲取集群元信息;

  • 提供更好的多租戶支持能力;

  • 支持接入 Prometheus 監控系統;

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

目前,Pegasus 1.12 則在提供一系列豐富的功能支持,如:快照冷備份、表的軟刪除、表級寫限流等的基礎上,有了更完善的高可用、高性能、強一致、易伸縮等性能。

Pegasus 1.12 Github 地址:

https://github.com/XiaoMi/pegasus

更多關於 Pegasus

https://pegasus-kv.github.io/overview/

雷鋒網 AI 開發者

雷鋒網年度評選——尋找19大行業的最佳AI落地實踐

創立於2017年的「AI最佳掘金案例年度榜單」,是業內首個人工智能商業案例評選活動。雷鋒網從商用維度出發,尋找人工智能在各個行業的最佳落地實踐。

第三屆評選已正式啟動,關注微信公眾號“雷鋒網”,回覆關鍵詞“榜單”參與報名。詳情可諮詢微信號:xqxq_xq

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点


分享到:


相關文章: