騰訊把微信正在用的圖計(jì)算框架開(kāi)源了,十億級(jí)節(jié)點(diǎn)圖計(jì)算時(shí)間從天級(jí)縮短到分鐘級(jí)
乾明 編輯整理
量子位 報(bào)道 | 公眾號(hào) QbitAI
看樣子,鵝廠搞開(kāi)源好像“上頭”了。
11月14日,騰訊又把微信等眾多核心業(yè)務(wù)在用的圖計(jì)算框架開(kāi)源了。
這也是他們?cè)诙潭桃恢軆?nèi)開(kāi)源的第5個(gè)大項(xiàng)目。
這個(gè)新項(xiàng)目名為Plato,騰訊介紹稱,可滿足十億級(jí)節(jié)點(diǎn)的超大規(guī)模圖計(jì)算需求。
與其他圖計(jì)算框架相比,將算法計(jì)算時(shí)間從天級(jí)縮短到分鐘級(jí),而且性能也全面領(lǐng)先,原本動(dòng)輒需要數(shù)百臺(tái)服務(wù)器的計(jì)算,現(xiàn)在最少只需要十臺(tái)服務(wù)器。
Plato團(tuán)隊(duì)負(fù)責(zé)人于東海說(shuō),Plato已經(jīng)用在了騰訊內(nèi)部包括微信在內(nèi)的眾多核心業(yè)務(wù)中,尤其是為騰訊超大規(guī)模社交網(wǎng)絡(luò)圖數(shù)據(jù)的各類計(jì)算提供支撐。
圖計(jì)算的“圖”并不是指普通的圖像和照片,而是用于表示對(duì)象之間關(guān)聯(lián)關(guān)系的一種抽象數(shù)據(jù)結(jié)構(gòu),圖計(jì)算就是以圖作為數(shù)據(jù)模型來(lái)表達(dá)問(wèn)題并予以解決的過(guò)程。
圖計(jì)算可以將不同來(lái)源、不同類型的數(shù)據(jù)融合到同一個(gè)圖里進(jìn)行分析,得到原本獨(dú)立分析難以發(fā)現(xiàn)的結(jié)果,因此成為社交網(wǎng)絡(luò)、推薦系統(tǒng)、網(wǎng)絡(luò)安全、文本檢索和生物醫(yī)療等領(lǐng)域至關(guān)重要的數(shù)據(jù)分析和挖掘工具。
騰訊自主研發(fā)的圖計(jì)算框架
Plato來(lái)自于騰訊內(nèi)部圖計(jì)算TGraph團(tuán)隊(duì),是他們整合內(nèi)部資源自主研發(fā)的一款高性能圖計(jì)算框架。
之所以取名Plato,是為了致敬偉大的數(shù)學(xué)家柏拉圖。目前,騰訊云大數(shù)據(jù)團(tuán)隊(duì)也正在封裝Plato,即將對(duì)所有開(kāi)發(fā)者開(kāi)放使用。
騰訊介紹稱,目前Plato主要提供兩大核心能力:騰訊數(shù)據(jù)量級(jí)下的離線圖計(jì)算,騰訊數(shù)據(jù)量級(jí)下的圖表示學(xué)習(xí)。
同時(shí)Plato天然適配Kubernetes、YARN等資源調(diào)度平臺(tái),并提供支持主流文件系統(tǒng)的多種接口,能為開(kāi)發(fā)者提供更友好的運(yùn)行環(huán)境。‘
架構(gòu)設(shè)計(jì)上,Plato框架的核心是自適應(yīng)圖計(jì)算引擎,它能夠根據(jù)不同類型的圖算法,提供多種計(jì)算模式供開(kāi)發(fā)者靈活選擇,包括自適應(yīng)計(jì)算模式、共享內(nèi)存計(jì)算模式和流水線計(jì)算模式等。
另外,還設(shè)計(jì)了良好的接口支持接入新的計(jì)算通信模式。
△Plato整體架構(gòu)圖
在計(jì)算引擎之上,Plato還為算法設(shè)計(jì)者或具體的業(yè)務(wù)提供多層次接口:從底層的API,到圖算法庫(kù),再到為具體業(yè)務(wù)量身打造的“解決方案”——圖工具集。
通過(guò)這些應(yīng)用層的接口和工具,Plato可以把離線計(jì)算結(jié)果與其他機(jī)器學(xué)習(xí)算法相結(jié)合,共同支撐頂層的不同業(yè)務(wù)。
目前,Plato的算法庫(kù)中的圖特征、節(jié)點(diǎn)中心性指標(biāo)、連通圖和社團(tuán)識(shí)別等多種算法都已經(jīng)開(kāi)源,未來(lái)還將進(jìn)一步開(kāi)源更多的算法。
鵝廠開(kāi)源“上頭”了
近年來(lái),騰訊對(duì)開(kāi)源的重視程度越來(lái)越高,開(kāi)源項(xiàng)目越來(lái)越多。
就在上周的Techo開(kāi)發(fā)者大會(huì)上,騰訊一口氣開(kāi)源了TubeMQ、Tencent Kona JDK、TBase、TKEStack等四個(gè)項(xiàng)目。
到現(xiàn)在,騰訊已經(jīng)在Github上已經(jīng)開(kāi)源了86個(gè)項(xiàng)目,超過(guò)1000個(gè)貢獻(xiàn)者參與了開(kāi)源貢獻(xiàn),標(biāo)星超過(guò)25萬(wàn),在Github全球公司貢獻(xiàn)榜上,也已經(jīng)擠進(jìn)了前十。
Plato開(kāi)源地址:
https://github.com/tencent/plato