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