微信正在用的深度學(xué)習(xí)框架開源!支持稀疏張量,基于C++開發(fā)
對于開發(fā)搜索、推薦等深度學(xué)習(xí)應(yīng)用更加友好。
魚羊 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
微信正用著的深度學(xué)習(xí)框架,現(xiàn)在你也可以上手試一試了。
就在最近,騰訊把這個名叫deepx_core的深度學(xué)習(xí)基礎(chǔ)庫正式對外開源。
相比于PyTorch、TensorFlow等流行深度學(xué)習(xí)框架,這位選手不僅具有通用性,還針對高維稀疏數(shù)據(jù)場景進(jìn)行了深度優(yōu)化。
也就是說,對于開發(fā)搜索、推薦、廣告這樣的深度學(xué)習(xí)應(yīng)用,會更加友好易用。
具體是怎么一回事,不妨一起來了解一下~
一個張量計算/深度學(xué)習(xí)基礎(chǔ)庫
根據(jù)項目介紹,deepx_core是一個通用的深度學(xué)習(xí)框架,使用C++11開發(fā)?;赿eepx_core,可以快速開發(fā)張量計算/機(jī)器學(xué)習(xí)/深度學(xué)習(xí)/強(qiáng)化學(xué)習(xí)/圖神經(jīng)網(wǎng)絡(luò)/無監(jiān)督學(xué)習(xí)等應(yīng)用。
關(guān)于deepx_core的特點,不妨先從張量說起。
張量是deepx的核心數(shù)據(jù)結(jié)構(gòu),有以下幾種類型。
其中,float_t是單精度浮點數(shù),int_t是64位無符號整數(shù)。
值得一提的是,稀疏張量一直是開源框架的痛點,但像搜索、推薦等算法應(yīng)用,其實都是高維稀疏數(shù)據(jù)場景。
為此,deepx_core設(shè)計并實現(xiàn)了稀疏張量和配套的operation,以原生的方式實現(xiàn)了稀疏模型。
在分布式訓(xùn)練場景下,稀疏張量均勻分布在多臺參數(shù)服務(wù)器上,模型規(guī)模能隨著參數(shù)服務(wù)器數(shù)量增加而線性擴(kuò)展。
deepx_core的另一個重要模塊,是計算圖。
具體而言,deepx_core提供了一個支持自動求導(dǎo)的靜態(tài)圖引擎,支持100+ operation,覆蓋幾乎所有網(wǎng)絡(luò)類型。
計算圖引擎通常用在各種深度學(xué)習(xí)任務(wù)中。而一個完整的深度學(xué)習(xí)應(yīng)用,主要包括以下模塊的開發(fā)和使用:
- 樣本解析器
- 特征抽取
- 計算圖
- 優(yōu)化器
在deepx_core中,樣本解析器和優(yōu)化器都是單獨的模塊。在內(nèi)置樣本解析器、優(yōu)化器無法滿足需求的情況下,都可以通過繼承來增加新的解析器、優(yōu)化器。
另外,因為基于C++開發(fā),deepx_core具有高性能和跨平臺的特點。
根據(jù)官方實驗數(shù)據(jù),基于deepx_core解決方案的性能普遍是開源框架的5-10倍。
安裝使用
如果你想親自試試這個新開源框架,那么需要先準(zhǔn)備一個支持C++11的編譯器來進(jìn)行編譯。
make -j8
再跑一下單元測試。
make -j8 test
然后安裝即可。
make -j8 install PREFIX=/where/you/want/to/install
已有落地應(yīng)用
最后,簡單介紹一下項目背后的開發(fā)團(tuán)隊。
deepx_core的開發(fā)者來自微信看一看算法平臺團(tuán)隊。
據(jù)介紹,在正式開源之前,deepx系列機(jī)器學(xué)習(xí)項目已經(jīng)在騰訊內(nèi)部經(jīng)過了3年多的迭代。
微信看一看、微信搜一搜、微信支付、微信表情、微信視頻號、微信小程序、微信讀書、QQ音樂、應(yīng)用寶、騰訊新聞、騰訊課堂、騰訊黑產(chǎn)打擊等排序/召回場景中,都已經(jīng)有deepx_core及其衍生項目的落地。
說起來,鵝廠近年來在開源方面確實沒少下功夫。
根據(jù)騰訊2020年度《騰訊研發(fā)大數(shù)據(jù)報告》,騰訊目前深度參與了數(shù)十個國際知名開源項目的貢獻(xiàn),并在OpenJDK、KVM等開源社區(qū)的貢獻(xiàn)榜上,攀至國內(nèi)第一。
辣么,你可曾用過鵝廠的開源項目?歡迎在評論區(qū)分享經(jīng)驗~
傳送門
項目地址:
https://github.com/Tencent/deepx_core
— 完 —