快手聯手英特爾提升KGNN 平臺大規模實時動態圖訓練效率
在面向短視頻推薦和社交推薦等的應用場景中,推薦系統需要對海量、快速動態變化的圖像進行分析與處理,這不僅要求推薦算法能夠在不斷變化的動態圖上挖掘更深層次的對象聯系,也對推薦系統的基礎設施,特別是內存性能提出了更高的要求。針對推薦業務數據量大、類型跨度廣泛、實時性要求高等特點,北京快手科技有限公司(以下簡稱:快手)開發了算法平臺 KGNN,能夠在不斷變化的動態圖上挖掘更深層次的對象聯系(拓撲/特征關系)。目前 KGNN 平臺結合快手多個業務場景實現模型落地, 在發現頁觸發,用戶推薦場景,電商推薦等場景為線上業務帶來了顯著收益,并在繼續迭代以提供更多的模型/更快速易用的工具等。
為了提升平臺性能,KGNN 使用英特爾® 傲騰™ 持久內存來替代傳統的 DRAM 內存,實現了單機內存的 TB 級擴展,可以支持點規模 10 億級別、邊規模百億級別的超級大圖, 從而能夠提供更精準的推薦。
KGNN:支持超大規模異構實時圖平臺
為了解決傳統推薦算法很難挖掘高階交互歷史信息的問題,圖神經網絡(Graph Neural Network,GNN)在近年來受到廣泛關注。GNN 使用節點特征作為初始嵌入,可以在這里加入用戶特征、物品特征,并引入了高階交互歷史信息。企業希望通過 GNN 模型, 能夠在動態圖上挖掘更深層次的對象聯系,提供更好的推薦效果。
基于 GNN 模型,快手算法平臺 KGNN 應運而生。KGNN 平臺致力于提供一個通用動態GNN 訓練框架,快速運行各種 GNN 模型。該平臺支持超大規模圖(點規模 10 億級別,邊規模百億級別)的動態圖神經網絡訓練,可以支持快手主 App 發現頁一類的超大流量場景實時訓練,并提供豐富的圖像操作功能。此外,這一平臺還支持復用,具有簡單易用的算法管道和完善的周邊設施工具及靈活的定制化接口,并可與 Tensorflow生態深度結合,從而可幫助用戶大幅節省在打造模型和訓練系統組件等方面花費的時間。圖 1 為快手 KGNN 平臺整體的執行流程圖。
在 KGNN 平臺中,其中基于物理圖存儲層的異構圖存儲層負責提供超大規模異構屬性圖的存儲和讀寫服務,并能夠按照不同業務線的不同拓撲結構,實現更合理的節點分布,大幅度減少跨節點通訊造成的性能損失。此外,該存儲層還支持水平擴展以適應不同的訓練數據量場景,并提供多種帶權采樣、遍歷、負采樣等算子,以滿足不同模型的交互需求。同時,這一存儲層也針對 GNN 場景做了針對性設計,支持邊表過期等多種機制。

圖 1. KGNN 整體訓練流程
解決方案:英特爾傲騰持久內存助力 KGNN 的實現
由于 KGNN 平臺需要對于大量快速變化的超大規模圖片進行實時訓練,因此對于異構圖存儲層的讀寫采樣能力以及數據吞吐能力提出了極高的要求,傳統解決方案是使用高性能的DRAM 內存來拓展異構圖存儲,滿足讀寫采樣對于性能的要求。但是,企業級 DRAM 內存的單條容量往往只有 32 GB, 再加上服務器的內存擴展插槽的限制,單機服務器可擴展內存的最大容量受到極大限制。如果要滿足對超大規模動態圖的處理需求,需要對圖進行大量分片,不僅影響訓練性能,也會限制多機擴展性。同時,由于動態全局帶權負采樣管理、動態高階負采樣等復雜算法會針對各種實例進行很多低效操作,對性能造成比較大影響,導致這些算法難以實現。
使用英特爾傲騰持久內存來替代傳統的 DRAM 內存可以解決上述挑戰。英特爾傲騰持久內存提供了融合高速、高性價比、大容量、持久數據保護、高級加密等優勢于一體的內存選項。不同于傳統的 DRAM 內存,它集大容量、經濟性和持久性于一身,讀寫帶寬比 NVMe 設備高數倍,并大幅降低了延時問題。
英特爾傲騰持久內存提供了兩種不同的操作模式: 內存模式(Memory Mode)和應用直接訪問模式(App Direct Mode)。在內存模式中,它與普通的易失性(非持久性)系統存儲器完全一樣,但成本更低,能在保持系統預算的同時實現更高容量。英特爾傲騰持久內存模塊的容量有 128 GB、256 GB 和 512 GB 幾個版本,遠超 DRAM 內存,能夠在單臺服務器中提供 TB 級別的內存總容量。
快手 KGNN 平臺使用了英特爾傲騰持久內存的 App Direct 模式,在這種模式下,應用程序和操作系統會有兩種可用的內存。系統將決定是從 DRAM 還是英特爾傲騰持久內存中寫入或讀取數據。要求最低延遲且不需要永久數據存儲的操作可以在 DRAM 上執行,必須長期保留的大型數據結構和數據將由英特爾傲騰持久內存進行存儲。在此模式下,即使系統關閉電源,數據仍保留在內存中。
快手 KGNN 平臺的異構圖存儲層針對英特爾傲騰持久內存進行了針對性優化,能夠提供更高性能的讀寫采樣以及利用非易失性特征提供快速恢復等高可用能力,提高了整體流程的吞吐和穩定性。

圖 2. 基于英特爾傲騰持久內存的 KGNN 平臺架構
英特爾傲騰持久內存化解了存儲性能與容量的瓶頸,能夠以 2 臺服務器提供 4TB 的容量,可以實現點規模 10 億級別、邊規模百億級別的大規模實時動態圖的處理,減少分圖,從而支持處理更復雜的算法,獲取更好的推薦效果。
此外,高階采樣在分布式情況下需要處理各種異常情況,代碼復雜度高,容易出錯,而且如果出現異常,則會對流水線化執行造成沖擊。此外,英特爾傲騰持久內存下高階采樣的不同階段之間可以并行化,而分布式情況下一般只能等每一跳結束后才能進入下一輪。在實際業務圖復雜的情況下,英特爾傲騰持久內存預估會有至少 5-10 倍的性能提升。
在穩定性與可用性方面,針對大規模實時動態圖訓練過程,一旦某些分片因為宕機而自動停止訓練,就必須等待所有分片重啟,從而會損失大量訓練實時精度。盡管可以通過 Check Point(校驗點)機制來挽回部分損失,但是重啟會導致整體多分片必須退回到同一個 Check Point,其終端恢復的時間預計會高達 12 小時。在線學習場景下,一旦出現此類可用性問題,快手還需要讓訓練消費回退,防止出現訓練穿越的問題, 這使得在線學習的效果損失非常大。
英特爾傲騰持久內存可以減少分片,同時其具備持久內存的特性,在宕機之后數據不會消失,從而將恢復時間從 12 小時降低到 2 分鐘,恢復時間減少 99% 以上。
效果:更高性能、更低 TCO、更高可用性
得益于英特爾傲騰持久內存的卓越特性,快手 KGNN 平臺的性能實現了顯著提升,能夠更有效地應對算法推薦應用所帶來的挑戰:
提升實時動態圖處理的性能:英特爾傲騰持久內存提供了更大的單機存儲容量,能夠顯著降低超大實時動態圖分片所帶來的性能影響。測試數據顯示,英特爾傲騰持久內存可帶來立竿見影的性能提升,同時也能支持更多復雜算法。
降低算法推薦系統 TCO:與 DRAM 內存相比,同等容量的英特爾傲騰持久內存采購價格更低。此外,英特爾傲騰持久內存提供有更高的單模塊容量,使得快手可以大幅降低實現TB 級存儲容量所需要的服務器節點,顯著節省 TCO。
故障恢復時間更低:基于英特爾傲騰持久內存的快手 KGNN 平臺實現了更低的恢復時間,這有利于快手提升 KGNN 平臺的穩定性與可用性,降低運維負擔。
展望:生態助力數據價值挖掘
快手 KGNN 的選型與優化實踐證明,英特爾傲騰持久內存能夠在內存容量要求高的場景中扮演重要角色,在單位成本內提供更有競爭力的性能。目前,快手 KGNN 還在繼續迭代中, 進一步推動在英特爾傲騰持久內存方面的應用探索,應對推薦場景給算法、算力等帶來的挑戰。
除了英特爾傲騰持久內存之外,英特爾還將與快手在技術、產品、應用和生態建設等多個層面開展合作,共同驗證前沿硬件及軟件技術在用戶推薦等場景中的落地與優化。雙方將基于端到端的數據分析與人工智能解決方案,挖掘海量數據中蘊藏的價值,驅動大數據分析和人工智能創新,為用戶帶來更加個性化、智慧化的應用體驗。
關于快手
快手是面向普通人記錄和分享生活的短視頻社交平臺。以 “擁抱每一種生活”,用有溫度的科技提升每個人獨特的幸福感為核心使命。截至 2020 年 6 月 30 日,快手整體日活用戶 3.02 億,庫存短視頻數量超過 260 億條,是全球領先的線上生活分享社區。
關于英特爾
英特爾(NASDAQ:INTC)作為行業引領者,創造改變世界的技術,推動全球進步并讓生活豐富多彩。在摩爾定律的啟 迪下,我們不斷致力于推進半導體設計與制造,幫助我們的客戶應對最重大的挑戰。通過將智能融入云、網絡、邊緣和各種計算設備,我們釋放數據潛能,助力商業和社會變得更美好。如需了解英特爾創新的更多信息,請訪問英特爾中國新聞中心 newsroom.intel.cn 以及官方網站 intel.cn。