騰訊開源進化 8 年,進入爆發(fā)期!
繼剛剛連續(xù)開源 TubeMQ、Tencent Kona JDK、TBase、TKEStack 四款重點開源項目后,騰訊開源再次迎來重磅項目!北京時間 11 月 14 日,騰訊正式宣布開源高性能圖計算框架 Plato,這是在短短一周之內(nèi),騰訊開源的第五個重大項目。
據(jù)騰訊官方介紹,Plato 是騰訊內(nèi)部圖計算 TGraph 團隊整合內(nèi)部資源自主研發(fā)的一款高性能圖計算框架,取名 Plato 是為了致敬偉大的數(shù)學(xué)家柏拉圖,目前騰訊云大數(shù)據(jù)團隊正在封裝 Plato,即將對所有開發(fā)者開放使用。
相對于目前全球范圍內(nèi)其它的圖計算框架,Plato 可滿足十億級節(jié)點的超大規(guī)模圖計算需求,將算法計算時間從天級縮短到分鐘級,性能全面領(lǐng)先領(lǐng)先于其它主流分布式圖計算框架,并且打破了原本動輒需要數(shù)百臺服務(wù)器的資源瓶頸,現(xiàn)在,最少只需要十臺服務(wù)器即可完成計算。
騰訊 Plato 團隊負(fù)責(zé)人于東海表示:“Plato 已經(jīng)賦能騰訊內(nèi)部包括微信在內(nèi)的眾多核心業(yè)務(wù),尤其是為騰訊超大規(guī)模社交網(wǎng)絡(luò)圖數(shù)據(jù)的各類計算提供支撐,解決了現(xiàn)有其他計算框架無法在有限資源和有限時間內(nèi)完成計算的難點。Plato 不僅為騰訊創(chuàng)造了巨大的業(yè)務(wù)價值,開源后還將持續(xù)推動圖計算技術(shù)和行業(yè)的協(xié)同發(fā)展,加速創(chuàng)新?!?/p>
詳解騰訊高性能圖計算開源框架 Plato
實際上,圖計算的“圖”并不是指普通的圖像和照片,而是用于表示對象之間關(guān)聯(lián)關(guān)系的一種抽象數(shù)據(jù)結(jié)構(gòu),圖計算就是以圖作為數(shù)據(jù)模型來表達(dá)問題并予以解決的過程。圖計算可以將不同來源、不同類型的數(shù)據(jù)融合到同一個圖里進行分析,得到原本獨立分析難以發(fā)現(xiàn)的結(jié)果,因此成為社交網(wǎng)絡(luò)、推薦系統(tǒng)、網(wǎng)絡(luò)安全、文本檢索和生物醫(yī)療等領(lǐng)域至關(guān)重要的數(shù)據(jù)分析和挖掘工具。
據(jù)了解,Plato 的計算性能方面極其強悍,比目前市場上最為領(lǐng)先的圖計算框架 Spark GraphX 還高出 1-2 個數(shù)量級,它將算法計算時間從天級縮短到分鐘級,性能提升數(shù)十倍,也標(biāo)志著圖計算全面進入分鐘級時代。
另外一個巨大優(yōu)勢是,Plato 在內(nèi)存消耗方面遠(yuǎn)小于主流的圖計算框架,比 Spark GraphX 減少 1-2 個數(shù)量級,僅需 10 臺服務(wù)器左右的中小規(guī)模集群,即可完成超大規(guī)模圖計算,相比此前動輒需要數(shù)百臺服務(wù)器的限制,資源壓力和計算成本都得到了極大降低。
目前,Plato 主要提供兩大核心能力:騰訊數(shù)據(jù)量級下的離線圖計算和騰訊數(shù)據(jù)量級下的圖表示學(xué)習(xí)。
同時,Plato 天然適配 Kubernetes、YARN 等資源調(diào)度平臺,并提供支持主流文件系統(tǒng)的多種接口,能為開發(fā)者提供更友好的運行環(huán)境。
架構(gòu)設(shè)計上,Plato 框架的核心是自適應(yīng)圖計算引擎,它能夠根據(jù)不同類型的圖算法,提供多種計算模式供開發(fā)者靈活選擇,包括自適應(yīng)計算模式、共享內(nèi)存計算模式和流水線計算模式等。另外,還設(shè)計了良好的接口支持接入新的計算通信模式。
在計算引擎之上,Plato 為算法設(shè)計者或具體的業(yè)務(wù)提供多層次接口:從底層的 API,到圖算法庫,再到為具體業(yè)務(wù)量身打造的“解決方案”——圖工具集。通過這些應(yīng)用層的接口和工具,Plato 還可以把離線計算結(jié)果與其他機器學(xué)習(xí)算法相結(jié)合,共同支撐頂層的不同業(yè)務(wù)。
值得一提的是,目前 Plato 的算法庫中的圖特征、節(jié)點中心性指標(biāo)、連通圖和社團識別等多種算法都已經(jīng)開源,未來還將進一步開源更多的算法。
性能對比
據(jù)騰訊官方介紹,Plato 的計算性能遙遙領(lǐng)先于主流的分布式圖計算框架。下圖選取了 Plato 與 Spark GraphX 在 PageRank 和 LPA 這兩個 benchmark 算法的性能對比,可以看到,Plato 的性能比 Spark GraphX 高出 1-2 個數(shù)量級。
除了計算性能不足,內(nèi)存占用過大也是限制大規(guī)模圖計算的主要因素。Plato 的另一個巨大優(yōu)勢則是它的內(nèi)存開銷遠(yuǎn)小于主流圖計算框架。從下圖看到,Plato 的內(nèi)存消耗比 Spark GraphX 減少了 1-2 個數(shù)量級,為超大規(guī)模圖計算創(chuàng)造了更大的想象空間。
Plato 不僅在 benchmark 算法中獨樹一幟,在真實的業(yè)務(wù)算法中也同樣成效卓著。在騰訊數(shù)據(jù)量級下,Plato 的計算性能也非常優(yōu)秀。下圖給出了 Plato 在騰訊數(shù)據(jù)量級下的共同類計算、Node2Vec、LINE、GraphSage 等典型業(yè)務(wù)算法的性能。
騰訊開源 8 年進化:86 個項目,GitHub 排名前十
從 2011 年騰訊在內(nèi)部提倡以公共組件的形式共享和復(fù)用代碼、2012 年發(fā)布第一個對外開源項目到今天,騰訊開源已經(jīng)走過了 8 年,也已取得豐碩成果。截止目前,騰訊已經(jīng)在 GitHub 上已經(jīng)開源了 86 個項目,超過 1000 個貢獻(xiàn)者參與了開源貢獻(xiàn),擁有超過 25 萬個 Star 數(shù),在 GitHub 全球公司貢獻(xiàn)榜上排名前十。
同時,騰訊業(yè)已加入 Linux、Apache 等 9 大開源基金會,成為最高級別會員,并向 Linux、Apache、LF AI 等開源基金會捐贈 3 大優(yōu)秀開源項目。2018 年,騰訊將高性能 RPC 開發(fā)框架 TARS,及其輕量化名字服務(wù)方案 TSeer 捐贈給 Linux 基金會,將業(yè)界領(lǐng)先的深度學(xué)習(xí)框架 Angel 捐贈給 Linux 旗下專注人工智能的 LF AI 基金會;2019 年,騰訊新發(fā)布的萬億級分布式消息中間件 TubeMQ 捐贈給 Apache 基金會,成為官方認(rèn)可的 Incubator 項目。
總結(jié)來看,騰訊通過“三步走”的開源計劃,通過代碼開放和社區(qū)運營,不斷深化騰訊已有的技術(shù)能力,向協(xié)同開放和社區(qū)開放治理的縱深方向發(fā)展。
具體來說,第一步是內(nèi)部開源協(xié)同。首先拉通內(nèi)部項目和組織,通過部門小團隊作戰(zhàn)或跨部門大團隊作戰(zhàn)的方式協(xié)同推進,以優(yōu)化資源配置的方式集中優(yōu)勢尋求技術(shù)突破,并建立起篩選機制將代碼開放出來。
第二步是外部代碼開放。優(yōu)化設(shè)計與代碼結(jié)構(gòu),不斷拓展落地場景,有效利用外部貢獻(xiàn)者資源實現(xiàn)資源整合,構(gòu)建技術(shù)影響力。
第三步是社區(qū)開放治理,在這一階段,注重大規(guī)模技術(shù)推廣與應(yīng)用、開發(fā)者生態(tài)體系構(gòu)建、社區(qū)領(lǐng)袖與領(lǐng)導(dǎo)力培養(yǎng)、全社會研發(fā)資源的優(yōu)化配置四個方面。
對于騰訊為什么如此重視開源治理,騰訊開源聯(lián)盟(TOSA)主席、騰訊技術(shù)工程事業(yè)群數(shù)據(jù)平臺部大數(shù)據(jù)海量存儲與海量計算負(fù)責(zé)人堵俊平在接受 CSDN(ID:CSDNnews)采訪時談到了至關(guān)重要的兩點:「第一點,騰訊對于開源的態(tài)度非常成熟,開源不是像其他公司開源出去大家贏得掌聲就結(jié)束了。開源代碼開放只是第一步,第二步是建立好的社區(qū),第三步是通過這個好的社區(qū)進行技術(shù)挖掘。給生態(tài)上的各個企業(yè)帶來一些回報,這是很長期的過程,不是一次代碼開放就解決的。第二點,騰訊是做社交起家的,很擅長于做人與人之間的連接,開源能夠做成功和騰訊包容和溝通是離不開的,這就是為什么我們比較重視這一點?!?/p>
聯(lián)系客服