2
本文作者: 老王 | 2017-03-06 20:27 |
近日,深鑒科技的 ESE 語(yǔ)音識(shí)別引擎的論文在 FPGA 2017 獲得了唯一的最佳論文 ESE: Efficient Speech Recognition Engine with Sparse LSTM on FPGA。該項(xiàng)工作聚焦于使用 LSTM 進(jìn)行語(yǔ)音識(shí)別的場(chǎng)景,結(jié)合深度壓縮以及專用處理器架構(gòu),使得經(jīng)過(guò)壓縮的網(wǎng)絡(luò)在 FPGA 能夠?qū)崿F(xiàn)超越 Pascal Titan X GPU 一個(gè)數(shù)量級(jí)的能效比。論文中所描述的 ESE 語(yǔ)音識(shí)別引擎也是深鑒科技 RNN 處理器產(chǎn)品的原型。
深鑒科技是一家具備神經(jīng)網(wǎng)絡(luò)壓縮編譯工具鏈、深度學(xué)習(xí)處理器 DPU 設(shè)計(jì)、FPGA 開(kāi)發(fā)與系統(tǒng)優(yōu)化等技術(shù)能力的初創(chuàng)公司,團(tuán)隊(duì)一系列研究工作發(fā)表于 NIPS 2015,ICLR 2016,F(xiàn)PGA 2016,ISCA 2016,NIPS 2016 Workshop,F(xiàn)PGA 2017 等頂級(jí)會(huì)議,并與 DeepMind 共同獲得 ICLR 2016 最佳論文、NIPS 2016 Workshop on EMDNN 最佳論文提名。
深鑒科技于 2016 年 1 月設(shè)計(jì)出一套基于 DPU 的一整套深度學(xué)習(xí)硬件解決方案,包括 DPU 的芯片架構(gòu)、DPU 編譯器、硬件模塊(訂制的 PCB 板)三部分。
針對(duì) FPGA 2017 最佳論文以及深鑒科技,雷鋒網(wǎng)采訪了深鑒科技 CEO 姚頌。
雷鋒網(wǎng):絕大部分論文都是為了解決問(wèn)題,深鑒科技的這篇論文的核心靈感來(lái)自于哪里?
一直以來(lái),深度學(xué)習(xí)計(jì)算遇到的最大瓶頸其實(shí)是帶寬問(wèn)題,而非計(jì)算本身。為了實(shí)現(xiàn)高效的深度學(xué)習(xí)計(jì)算,我們必須在軟硬件同時(shí)進(jìn)行優(yōu)化,不僅算法上壓縮到更小,硬件上更要支持好壓縮后的深度學(xué)習(xí)算法。
為了解決帶寬問(wèn)題,GPU 的 Memory 從 DDR3 ,DDR4,一直升級(jí)到了 HBM。同時(shí),GPU 也從支持雙精度與單精度,即 64 個(gè)比特或者 32 個(gè)比特表示一個(gè)參數(shù),升級(jí)至支持 Int8 型變量,也即 8 比特表示一個(gè)變量。
我們一直在思考如何更優(yōu)化和高效地解決帶寬問(wèn)題,韓松(該論文的第一作者,深鑒科技聯(lián)合創(chuàng)始人)的研究方向是使用稀疏化方式讓深度學(xué)習(xí)更快、更準(zhǔn)、更輕量,該方式的優(yōu)點(diǎn)是降低了帶寬的需求。由于深度學(xué)習(xí)里的特征表示本身就是稀疏的,因此我們做一個(gè)直接的剪枝壓縮來(lái)減少帶寬的使用。韓松之前做過(guò)一項(xiàng)名為 EIE (Efficient Inference Engine)的研究并發(fā)表在 ISCA 2016 ,該項(xiàng)研究主要針對(duì)于卷積神經(jīng)網(wǎng)絡(luò)里的全連接層,但并不能適應(yīng)語(yǔ)音識(shí)別這樣的復(fù)雜場(chǎng)景。因此在結(jié)合實(shí)際應(yīng)用后,我們?cè)O(shè)計(jì)出一套更為實(shí)用化的 ESE 架構(gòu),針對(duì)語(yǔ)音識(shí)別和 RNN 做了非常多的修改,并且將它實(shí)用化了。
這些就是該論文靈感的來(lái)源。
雷鋒網(wǎng):這篇論文主要在哪些方面有著較大的突破?
在軟件和硬件兩個(gè)方面均有著一定的突破。
軟件方面,我們提出了 Load-balance-aware pruning。除了在純算法上追求壓縮率,還會(huì)考慮到最終要多核運(yùn)行并行加速的時(shí)候不同核心之間的負(fù)載均衡,這種加速差其實(shí)屬于最優(yōu)的方式。
在硬件方面,我剛才也提到韓松有一篇論文叫做 EIE 只能運(yùn)行卷積神經(jīng)網(wǎng)絡(luò)的 FC 層。我們考慮到 RNN 的狀態(tài)機(jī)會(huì)整體非常復(fù)雜,因?yàn)槔锩鏁?huì)有非常多個(gè)矩陣要運(yùn)轉(zhuǎn),不僅要支持多路用戶,還有里面的非線性函數(shù)都有非常大的區(qū)別。所以說(shuō)在整個(gè)硬件架構(gòu)過(guò)程做了一個(gè)重新設(shè)計(jì),能夠支持多路用戶,也能夠支持 RNN,如 LSTM 內(nèi)部多個(gè)矩陣的運(yùn)轉(zhuǎn)。這樣整個(gè)系統(tǒng)運(yùn)轉(zhuǎn)的(速度)都是高得多的一個(gè)架構(gòu)。
雷鋒網(wǎng):這個(gè)具體從幾方面提高了它在語(yǔ)音識(shí)別中的效率?
現(xiàn)在 ESE 是我們語(yǔ)音識(shí)別方案的基礎(chǔ),我們?cè)趯?shí)際產(chǎn)品上做了不少改進(jìn)。該方案的核心就是它能支持在大規(guī)模用戶的情況下大幅降低延遲。我們知道,GPU 的最大問(wèn)題是如果要具備非常好的性能,那就需要堆很多路的 batch。那么其實(shí)絕對(duì)的 latency 是變長(zhǎng)的。那我們能夠?qū)?latency 部分相對(duì)于個(gè)高端的 GPU 壓下來(lái)幾倍。于用戶而言,對(duì)方體驗(yàn)到的延遲也要短的多,體驗(yàn)就會(huì)更好。
其次,由于大規(guī)模的云計(jì)算對(duì)于成本、功耗是非常敏感的,這種情況下,我們的方案會(huì)明顯使得功耗降低,對(duì)整個(gè)運(yùn)行成本有著不錯(cuò)的影響。
另一方面,如果把延遲降低,其意味著這些實(shí)際使用的算法可以變得更加復(fù)雜。如 LSTM 原來(lái)是三層,現(xiàn)在我可以把它變?yōu)槲鍖?,甚至我的延遲會(huì)變得更低,使得語(yǔ)音識(shí)別的精確度得到更進(jìn)一步提升。
雷鋒網(wǎng):詳細(xì)講講 Deep Compression 和 ESE 的原理與作用
人類大腦其實(shí)是非常稀疏的,每個(gè)神經(jīng)元能連接其他神經(jīng)元的數(shù)量有限,而 Deep Compression 也正是受到了人類大腦的啟發(fā)。做這項(xiàng)工作時(shí)我們發(fā)現(xiàn)了一些人工神經(jīng)網(wǎng)絡(luò)里對(duì)結(jié)果影響不重要的權(quán)重,針對(duì)這該問(wèn)題的最簡(jiǎn)單做法就是如果這個(gè)權(quán)重的絕對(duì)值小于某個(gè)閾值,我就把它去掉,只保留絕對(duì)值較大權(quán)重對(duì)應(yīng)的這些連接。
而 ESE 的原理則更多是我們?cè)O(shè)計(jì)了一個(gè)非常高效的稀疏矩陣乘的 Kernel 。在此之上,我們又設(shè)計(jì)了一套完整的調(diào)度機(jī)制,能夠?qū)?RNN 中 LSTM 的多個(gè)矩陣進(jìn)行各高效調(diào)度。并且能夠支持在不同矩陣高速調(diào)度時(shí)形成一個(gè)流水線。在運(yùn)算當(dāng)前矩陣的時(shí)候調(diào)用下一個(gè)矩陣來(lái)片上運(yùn)行,并且能保持每個(gè)權(quán)重就每個(gè)矩陣的權(quán)重在片上存儲(chǔ)待的時(shí)間足夠長(zhǎng)。這樣做既可節(jié)省整個(gè)帶寬的需求,也可加快運(yùn)算速度。
雷鋒網(wǎng):剛也提到大腦的激活是非常稀疏的,當(dāng)深度學(xué)習(xí)的模型越來(lái)越大,那對(duì)模型參數(shù)有什么其他的壓縮辦法嗎?
韓松提出的 Deep Compression 其實(shí)就屬于模型壓縮很核心的方法。通常大家會(huì)用一些啟發(fā)式的算法去發(fā)現(xiàn)里面不重要的權(quán)重,并將它去除,然后再使用數(shù)據(jù)來(lái)進(jìn)行 re-train 時(shí)能夠把它的精確度恢復(fù)起來(lái)。其中絕對(duì)的閾值,做 re-train 時(shí)權(quán)重增長(zhǎng)的幅度均可用來(lái)作為啟發(fā)式算法的判別準(zhǔn)則。
由于神經(jīng)網(wǎng)絡(luò)中的特征表示比較稀疏,所以這樣一種非規(guī)則稀疏模型壓縮效果往往比大家設(shè)計(jì)一個(gè)小一些的模型效果更好:直接砍 channel 數(shù)量,或者一些數(shù)學(xué)上的分解方式。
其他模型壓縮的方法有 SVD、Winograd 分解、binary network 等,但相比而言 Deep Compression 整體的性價(jià)比會(huì)更高。
雷鋒網(wǎng):如何有效結(jié)合 Compressing CNN 和 Intepretating CNN 發(fā)揮它們的勢(shì)能?
對(duì)于可解釋性 CNN 我們暫時(shí)還沒(méi)有研究。對(duì)于壓縮后的 CNN 最大好處是性能會(huì)明顯變高,可把模型尺寸直接壓縮十倍,權(quán)重?cái)?shù)量可直接砍掉三倍,這也意味著性能直接以三倍的單位往上乘。與此同時(shí),我們用于存儲(chǔ)帶寬讀取的延遲會(huì)降低 10 倍,所以整體性能都有著非常大的提升。這也是我們一直提倡要在軟件和硬件上協(xié)同來(lái)進(jìn)行加速的原因。
雷鋒網(wǎng):英偉達(dá)提供的是芯片+解決方案,地平線機(jī)器人的產(chǎn)品定位是芯片+算法+解決方案+設(shè)備。深鑒科技的產(chǎn)品定位是什么?與地平線、寒武紀(jì)有哪些不同?
地平線余老師、楊銘師兄、黃暢師兄算法與軟件背景比較深厚,軟硬件團(tuán)隊(duì)整體實(shí)力非常強(qiáng),因此他們可能會(huì)從系統(tǒng)的角度來(lái)提供一個(gè)完整的功能級(jí)產(chǎn)品,包括算法上的優(yōu)化。
寒武紀(jì)的兩位陳老師在 CPU等芯片領(lǐng)域有很多的積累,更多會(huì)強(qiáng)調(diào)在芯片層面的優(yōu)化。而深鑒科技則是做軟硬協(xié)同加速,側(cè)重于 FPGA,我們希望用一些取巧的手段,比如在算法上用 Deep Compression 來(lái)做壓縮,然后在硬件上針對(duì)于壓縮后的神經(jīng)網(wǎng)絡(luò)做一些專用的處理架構(gòu)。
我們最核心的服務(wù)其實(shí)是一個(gè)平臺(tái):平臺(tái)的底層是我們的 DPU 架構(gòu),往上是由編譯器以及我們整個(gè) Deep Compression 構(gòu)成的開(kāi)發(fā)環(huán)境,這樣用戶可以用我們的環(huán)境來(lái)開(kāi)發(fā)自己的算法與應(yīng)用,在深鑒科技的 DPU 平臺(tái)上運(yùn)行,從這一點(diǎn)來(lái)說(shuō)有些類似于英偉達(dá)。
雷鋒網(wǎng):最近阿里、騰訊均推出的高性能異構(gòu)計(jì)算基礎(chǔ)設(shè)施 FPGA 云服務(wù)器,這對(duì)行業(yè)的影響有哪些?
其實(shí)這方面業(yè)界最領(lǐng)先的是 AWS。在 2016 年 12 月的 AWS 發(fā)布會(huì)上,亞馬遜公開(kāi)了AWS上新的 F1 instance :他們將 Xilinx 的 FPGA 放在了云服務(wù)中,大家可通過(guò)這樣的開(kāi)發(fā)環(huán)境在云中使用 FPGA。而騰訊和阿里那也是受到亞馬遜這個(gè)項(xiàng)目的影響才開(kāi)始把 FPGA 部署到他的云服務(wù)中。
我們知道 FPGA 的優(yōu)點(diǎn)在于,進(jìn)行 Inference 計(jì)算能相比于 GPU 更加高效,因此云端的業(yè)務(wù)大家可用 GPU 訓(xùn)練,而 FPGA 做 Inference 。AWS、騰訊、阿里都為業(yè)界帶了一個(gè)好頭,其影響類似于當(dāng)時(shí) TPU 問(wèn)世后極大地促進(jìn) FPGA 在深度學(xué)習(xí)領(lǐng)域的相關(guān)研究,同時(shí)也滲透到了產(chǎn)品開(kāi)發(fā)和整個(gè)行業(yè)的方方面面。我們也已經(jīng)顯著地看到各大公司受到啟發(fā),開(kāi)始越來(lái)越關(guān)注在能效、效率問(wèn)題,而不是簡(jiǎn)簡(jiǎn)單單地滿足我有這樣的一個(gè) AI 服務(wù)。
雷鋒網(wǎng):你們與客戶的具體合作形式是什么樣的?分別講講你們?yōu)榱愣戎强?、川大智能以及搜狗提供了哪些服?wù)。
前面的話,其實(shí)我已經(jīng)提到我們公司的定位:我們是一個(gè)平臺(tái)的提供者。所以對(duì)于一系列具有自己深度學(xué)習(xí)算法研發(fā)能力的公司,我們會(huì)提供我們的 DPU平臺(tái),以及編譯器與壓縮這樣一套開(kāi)發(fā)環(huán)境,供大家能夠在此基礎(chǔ)上搭建自己的算法以及解決方案。而對(duì)于像無(wú)人機(jī)行業(yè)的客戶,我們會(huì)提供針對(duì)于這個(gè)行業(yè)的算法、軟件、硬件一體的解決方案,能夠讓大家直接集成來(lái)打造自己的應(yīng)用。
雷鋒網(wǎng):就您所知,近一兩年海內(nèi)外有哪些與深鑒相似的公司和產(chǎn)品?在玩家逐漸變多的大環(huán)境下,如何保證自己處于有利地位?
AI 是整個(gè)半導(dǎo)體行業(yè)大家看到非常大的一個(gè)新增長(zhǎng)點(diǎn),所以從傳統(tǒng)半導(dǎo)體行業(yè)出來(lái),不管是做創(chuàng)業(yè)公司也好,還是要做往這個(gè)方向業(yè)務(wù)轉(zhuǎn)型的大公司,確實(shí)非常多。
深鑒科技之前提到,傳統(tǒng)并行計(jì)算的老工業(yè)經(jīng)驗(yàn)并不一定能夠很好的覆蓋掉 AI 上面計(jì)算的事情,我們始終堅(jiān)持一個(gè)觀點(diǎn)認(rèn)為帶寬一定是一個(gè)最核心的問(wèn)題需要解決。而傳統(tǒng)堆帶寬的方式一定會(huì)在造價(jià)和將來(lái)實(shí)際物理帶寬層面遇到一些瓶頸,所以深鑒科技把軟和硬結(jié)合在一起來(lái)做。先在軟件上做壓縮,然后在硬件上針對(duì)壓縮的神經(jīng)網(wǎng)絡(luò)做一個(gè)專用體系結(jié)構(gòu)的優(yōu)化。
目前在這條技術(shù)路線上的公司還非常之少,但陸續(xù)開(kāi)始有公司注入跟進(jìn)這個(gè)領(lǐng)域。而我們進(jìn)入很早,積累了非常多的 insight,如 FPGA2016 會(huì)議上提出來(lái)的基于嵌入式 FPGA 的 CNN 處理器方案、量化方案,已經(jīng)被諸多公司f ollow,今年 FPGA2017 會(huì)議大家都在 CNN 處理方案上進(jìn)行小幅優(yōu)化之時(shí),我們已經(jīng)走向了 LSTM。我們希望借由這樣的先發(fā)優(yōu)勢(shì),能夠圍繞稀疏化的處理思路,從算法、軟件、硬件協(xié)同設(shè)計(jì)多個(gè)方面逐漸建立起隱形的行業(yè)標(biāo)準(zhǔn)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。