在開發(fā)智能實時應(yīng)用時,你可能經(jīng)常會通過數(shù)據(jù)平臺來分析和解密大數(shù)據(jù)中的模式和洞察。這些應(yīng)用所依賴的后端架構(gòu)常常會是分布式、可容錯和可橫向擴展的大數(shù)據(jù)處理技術(shù)。但也有一些情況下,壓縮表現(xiàn)形式也是有用的,甚至是必須的。移動設(shè)備和(物聯(lián)網(wǎng)里的)傳感器的興起帶來了把計算從云頂移向邊緣的軟件和設(shè)備。另外內(nèi)存計算也趨向于更快,造成很多流行的(分布式)系統(tǒng)也把數(shù)據(jù)緩存起來進行運算操作。
為了能更好地說明這一觀點,讓我來介紹兩個最近的案例。通過它們來展現(xiàn)高效的壓縮表現(xiàn)形式的重要性。一個案例是移動計算領(lǐng)域的,另外一個則是來自于目前非常流行的分布式計算框架。
深度神經(jīng)網(wǎng)絡(luò)和智能移動應(yīng)用
斯坦福大學(xué)CVA(并發(fā)的極大系統(tǒng)集成架構(gòu))研究組的韓松(Song Han)在他最近的一次報告里介紹了一個幫助在移動設(shè)備上優(yōu)化深度神經(jīng)網(wǎng)絡(luò)的研究。深度神經(jīng)網(wǎng)絡(luò)在最近取得了長足的進步,并在計算機視覺、語音識別和機器翻譯等領(lǐng)域取得了非常好的效果。同時移動計算平臺的流行也意味著很多移動應(yīng)用也希望獲得這一能力(深度神經(jīng)網(wǎng)絡(luò))。但挑戰(zhàn)是深度學(xué)習(xí)的模型一般都很大,從而很難成為移動應(yīng)用(因為要被下載到移動設(shè)備上,還要經(jīng)常更新)。如果是采用基于云的解決方案,則對于特定的應(yīng)用和行業(yè),網(wǎng)絡(luò)延遲和隱私又會成為問題。
一種解決方案就是顯著地降低深度學(xué)習(xí)模型的大小。CVA的研究人員最近提出了一個由三個步驟組成的壓縮深度神經(jīng)網(wǎng)絡(luò)的通用模式:
- 裁剪不重要的連接;
- 量化網(wǎng)絡(luò)并對權(quán)重進行強化;
- 最后使用哈夫曼編碼進行編碼。

圖1:壓縮神經(jīng)網(wǎng)絡(luò)尺寸的模式比較樣圖。本·駱易家授權(quán)使用
初期試驗的結(jié)果顯示他們的壓縮模式可把神經(jīng)網(wǎng)絡(luò)的大小減少35到50倍,而壓縮后的神經(jīng)網(wǎng)絡(luò)的準確度和最初的網(wǎng)絡(luò)的準確度差不多。CVA的研究人員還為壓縮深度神經(jīng)網(wǎng)絡(luò)設(shè)計了配套的高能效的ASIC加速器,這也預(yù)示著為未來的智能移動應(yīng)用所特別設(shè)計的下一代軟硬件。
Succinct:在Apache Spark里搜索和點查詢壓縮過的數(shù)據(jù)
Succinct是一個“壓縮”的數(shù)據(jù)存儲方式??梢宰尯芏帱c查詢方法(搜索、計數(shù)、求范圍、隨機查詢)直接對輸入數(shù)據(jù)的壓縮模式進行操作。Succinct使用的壓縮技術(shù)在實際應(yīng)用中可以獲得和gzip差不多的壓縮率,同時不需要二級索引、數(shù)據(jù)掃描或解壓縮等技術(shù)來支持上述的操作。Succinct并不保存數(shù)據(jù)文件本身,僅僅是壓縮后的形式。通過讓用戶直接對壓縮過的數(shù)據(jù)直接進行操作,Succinct同時具有低延遲和第存儲空間兩大優(yōu)點。
圖2:定量比較數(shù)據(jù)掃描、數(shù)據(jù)索引和Succinct。因為Succinct是用壓縮方式存儲數(shù)據(jù),并直接對壓縮后的形式進行操作,它可以在內(nèi)存里存放并使用大的多的數(shù)據(jù)。
作為斯坦福AMPLab實驗室的一個研究項目,Succinct已經(jīng)在2015年年底作為Apache Spark的一部分發(fā)布了。這意味著Spark的使用者可以利用Succinct來對文件進行壓縮,并可以直接使用搜索查詢(包括對壓縮的RDD進行正則表達式查詢)、計數(shù)和范圍查詢。另外,已經(jīng)基于Succinct的文件(非結(jié)構(gòu)化)應(yīng)用接口開發(fā)了新的抽象,這就可以把Spark作為文本或鍵值對型的存儲,并使用現(xiàn)有的DataFrame的API來做搜索、計數(shù)、范圍查詢以及隨機查詢。
擁有了這些新的能力放大了Apache Spark的軟件棧,從而可以開發(fā)出很多有趣的數(shù)據(jù)應(yīng)用。
初步和ElasticSearch的比較結(jié)果顯示了很大的希望。同時對用戶更重要的是Succinct是一個活躍的項目。Succinct團隊已經(jīng)計劃在未來的版本中添加很多新的增強功能,包括Succinct Graphs(支持查詢壓縮的圖)、在壓縮的數(shù)據(jù)上支持SQL,以及對于數(shù)據(jù)預(yù)處理和壓縮的改進(目前是每核每小時壓縮4GB數(shù)據(jù))。他們還正在進行一個研究性質(zhì)的項目,叫做Succinct Encryption(Succinct加密,支持對壓縮和加密的數(shù)據(jù)的查詢)。
相關(guān)內(nèi)容
- 在即將來到的Strata+Hadoop World大會圣何塞站的新興技術(shù)日上,卡努?古拉蒂(Kanu Gulati)將會介紹《數(shù)據(jù)分析中硬件加速的機會》報告。
- 《大數(shù)據(jù):高效地收集和處理》,安娜?吉爾伯特(Anna Gilbert)在Strata+Hadoop World大會上針對壓縮傳感的演講。
- 《做(幾乎)不可能的事》,泰德?唐寧(Ted Dunning)在Strata+Hadoop World大會上針對t-digest和近似算法的演講。
- 死硬數(shù)據(jù)科學(xué)家,Strata+Hadoop World 2015圣何塞大會的完整視頻剪輯。
本·羅瑞卡(Ben Lorica)
本·羅瑞卡是O'Reilly的首席數(shù)據(jù)科學(xué)家和關(guān)于數(shù)據(jù)方面的內(nèi)容策略主管。在多個領(lǐng)域里(包括直銷市場、消費者和市場研究、精準廣告、文本挖掘和金融工程),他曾經(jīng)進行了商業(yè)智能、數(shù)據(jù)挖掘、機器學(xué)習(xí)和統(tǒng)計分析的工作。他曾效力于投資管理公司、互聯(lián)網(wǎng)創(chuàng)業(yè)企業(yè)和金融服務(wù)公司。
圖2:定量比較數(shù)據(jù)掃描、數(shù)據(jù)索引和Succinct。因為Succinct是用壓縮方式存儲數(shù)據(jù),并直接對壓縮后的形式進行操作,它可以在內(nèi)存里存放并使用大的多的數(shù)據(jù)。
