0
本文作者: 楊鯉萍 | 2019-11-19 18:06 |
雷鋒網(wǎng) AI 開(kāi)發(fā)者:2019 年 11 月 19 日,小米開(kāi)發(fā)者大會(huì)(MIDC,MI Developer Conference)在北京舉行,1 場(chǎng)主論壇+12 場(chǎng)分論壇,將呈現(xiàn) AIoT+5G 等主題為「智能新時(shí)代」的多個(gè)領(lǐng)域最新技術(shù);同時(shí),這也是一場(chǎng)開(kāi)源盛會(huì)。
大會(huì)現(xiàn)場(chǎng),小米集團(tuán)副總裁、技術(shù)委員會(huì)主席崔寶秋不僅正式發(fā)布了支持更豐富的異構(gòu)計(jì)算算子、降低跨設(shè)備運(yùn)行性能損失的自研移動(dòng)端深度學(xué)習(xí)框架 MACE 0.12.0 升級(jí)版;也發(fā)布了小米自用 NLP 技術(shù) MiNLP 1.2;還宣布了 Pegasus 1.12 已在 GitHub 上線的消息。因此,雷鋒網(wǎng) AI 開(kāi)發(fā)者將開(kāi)源內(nèi)容整理編輯如下。
據(jù)了解,MACE 是專(zhuān)門(mén)為移動(dòng)設(shè)備優(yōu)化的深度學(xué)習(xí)模型預(yù)測(cè)框架,MACE 提供工具和文檔,幫助用戶(hù)將深度學(xué)習(xí)模型部署到移動(dòng)電話、平板電腦、個(gè)人電腦和物聯(lián)網(wǎng)設(shè)備上。
通過(guò)這一框架,小米可在移動(dòng)端布局各類(lèi)深度學(xué)習(xí)應(yīng)用和算法,包括計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別等。據(jù)小米不完全統(tǒng)計(jì),MACE 每天被調(diào)用 5000 萬(wàn)次。
MACE 從設(shè)計(jì)之初,便針對(duì)移動(dòng)設(shè)備的特點(diǎn)進(jìn)行了專(zhuān)門(mén)的優(yōu)化,例如:
速度 在框架底層,針對(duì) ARM CPU 進(jìn)行了 NEON 指令級(jí)優(yōu)化,針對(duì)移動(dòng)端 GPU,實(shí)現(xiàn)了高效的 OpenCL 內(nèi)核代碼。針對(duì)高通 DSP,集成了 nnlib 計(jì)算庫(kù)進(jìn)行 HVX 加速。同時(shí)在算法層面,采用 Winograd 算法對(duì)卷積進(jìn)行加速,從而契合在移動(dòng)端進(jìn)行計(jì)算的模型整體所需的預(yù)測(cè)延遲高要求。
功耗 框架針對(duì) ARM 處理器的 big.LITTLE 架構(gòu),提供了高性能,低功耗等多種組合配置。針對(duì) Adreno GPU,提供了不同的功耗性能選項(xiàng),使得開(kāi)發(fā)者能夠?qū)π阅芎凸倪M(jìn)行靈活的調(diào)整,從而解決移動(dòng)端對(duì)功耗非常敏感這一問(wèn)題。
系統(tǒng)響應(yīng) 對(duì)于 GPU 計(jì)算模式,框架底層對(duì) OpenCL 內(nèi)核自適應(yīng)的進(jìn)行分拆調(diào)度,保證 GPU 渲染任務(wù)能夠更好的進(jìn)行搶占調(diào)度,從而保證系統(tǒng)的流暢度。
內(nèi)存占用 通過(guò)對(duì)模型的算子進(jìn)行依賴(lài)分析,引入內(nèi)存復(fù)用技術(shù),大大減少內(nèi)存的占用。
更多詳細(xì)可參考《小米開(kāi)源自研移動(dòng)端深度學(xué)習(xí)框架MACE》:
MACE 計(jì)算框架的整體結(jié)構(gòu)
而現(xiàn)在,MACE 支持的應(yīng)用場(chǎng)景大大增多,包括:AI 單攝、圖片風(fēng)格化、場(chǎng)景識(shí)別、圖像超分辨率、翻譯以及語(yǔ)音等。它針對(duì)移動(dòng)芯片特性進(jìn)行了大量?jī)?yōu)化,目前在小米手機(jī)上的人像模式、場(chǎng)景識(shí)別功能中已廣泛應(yīng)用。
用 MACE Model Zoo 中的 fast style transfer 模型在手機(jī)端生成的風(fēng)格化圖片
這次的升級(jí),MACE 0.12.0 主要從以下四個(gè)方面入手,使其在實(shí)際應(yīng)用中有了更大優(yōu)勢(shì):
更豐富的異構(gòu)計(jì)算算子
降低跨設(shè)備運(yùn)行性能損失
新增 Kaldi 語(yǔ)音識(shí)別算子支持
新增 CMake 支持
其中,框架已支持的語(yǔ)音識(shí)別系統(tǒng) Kaldi 是由 Daniel Povey(日前剛出任小米集團(tuán)語(yǔ)音首席科學(xué)家)主導(dǎo)開(kāi)發(fā)的開(kāi)源語(yǔ)音識(shí)別系統(tǒng),在眾多語(yǔ)音識(shí)別測(cè)試和應(yīng)用中有廣泛的使用。
據(jù)介紹,MACE 已經(jīng)支持大部分 Kaldi 系統(tǒng)內(nèi)組件,以及 ONNX 形式的的 Kaldi 模型。此外,項(xiàng)目還提供了 Kaldi-onnx 轉(zhuǎn)換工具。
值得注意的是,小米也在大會(huì)上公布了 MACE 近期(未來(lái)一兩個(gè)月)的規(guī)劃:
一是即將開(kāi)源 MACE-Kit(人臉檢測(cè)、人臉識(shí)別、語(yǔ)音識(shí)別、目標(biāo)檢測(cè)端到端 SDK);
二是新增微控制器支持(全面支持手機(jī)與 IoT 設(shè)備超低功耗推理場(chǎng)景);
崔寶秋也表示,在未來(lái)小米將繼續(xù)加大在 Kaldi 上的投入,幫助打造一個(gè)國(guó)際化的開(kāi)源社區(qū),進(jìn)一步引領(lǐng)開(kāi)源的語(yǔ)音識(shí)別技術(shù)。
Github 地址:
https://github.com/XiaoMi/mace
文檔地址:
https://mace.readthedocs.io/en/latest/
MACE Model Zoo 項(xiàng)目地址:
MiNLP 1.2
今年年初,小米 MiNLP1.0 正式發(fā)布,該平臺(tái)是小米基于聲學(xué)自主深耕平臺(tái),在小米開(kāi)發(fā)者大會(huì)上,崔寶秋表示小米 MiNLP 平臺(tái)每天調(diào)用次數(shù)達(dá)到 60 億次,然后正式發(fā)布 MiNLP 1.2。
新版 MiNLP 1.2 平臺(tái)相較之前主要有兩個(gè)重大更新:
調(diào)用模式從本地調(diào)用到支持云端、本地、移動(dòng)端三端調(diào)用;
分析功能從詞法分析拓展到句法和語(yǔ)義分析;
另外,新版平臺(tái)也可以吸收和集成當(dāng)前的前沿進(jìn)展,并進(jìn)行技術(shù)創(chuàng)新;同時(shí),新版平臺(tái)所支持的業(yè)務(wù)也進(jìn)行了全面拓展,目前可支持公司的多項(xiàng)業(yè)務(wù)。
Pegasus 1.12
Pegasus 是一個(gè)分布式 Key-Value 存儲(chǔ)系統(tǒng),最初是用于彌補(bǔ) HBase 在可用性和性能上的不足。
Pegasus 系統(tǒng)的 Server 端完全采用 C++ 語(yǔ)言開(kāi)發(fā),從而避免了使用 Java 所帶來(lái)的 GC 影響和虛擬機(jī)開(kāi)銷(xiāo);同時(shí),它也使用了 PacificA 協(xié)議支持強(qiáng)一致性,使用了 RocksDB 作為單機(jī)存儲(chǔ)引擎。由于不依賴(lài)外部文件系統(tǒng),Pegasus 的 IO 路徑更短,延遲通常更加穩(wěn)定可控。
模型設(shè)計(jì)上,Pegasus 則采用了哈希分片進(jìn)行數(shù)據(jù)的拆分,分片(Partition)是系統(tǒng)內(nèi)部數(shù)據(jù)遷移的最小單元,每一分片內(nèi)的數(shù)據(jù)有序存儲(chǔ),各個(gè)分片之間數(shù)據(jù)隔離,每個(gè)分片對(duì)應(yīng)一個(gè)單獨(dú)的 RocksDB 實(shí)例。
它也可看做是 HBase 和 Redis 的結(jié)合體,保證了高的可用度,也具有好的伸縮性。如果業(yè)務(wù)對(duì)性能的要求不是太高(譬如 P99 要求在 1 毫秒以?xún)?nèi)),那么 Pegasus 將是個(gè)不錯(cuò)的選擇。
對(duì)于升級(jí)后的 Pegasus 1.12,其性能變化主要有三點(diǎn),包括:
提供 HTTP 接口,以獲取集群元信息;
提供更好的多租戶(hù)支持能力;
支持接入 Prometheus 監(jiān)控系統(tǒng);
目前,Pegasus 1.12 則在提供一系列豐富的功能支持,如:快照冷備份、表的軟刪除、表級(jí)寫(xiě)限流等的基礎(chǔ)上,有了更完善的高可用、高性能、強(qiáng)一致、易伸縮等性能。
Pegasus 1.12 Github 地址:
https://github.com/XiaoMi/pegasus
更多關(guān)于 Pegasus
雷鋒網(wǎng) AI 開(kāi)發(fā)者
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。