KGNN 整體訓練流程
解決方案:英特爾傲騰持久內存助力 KGNN 的實現(xiàn)
由于 KGNN 平臺需要對于大量快速變化的超大規(guī)模圖片進行實時訓練,因此對于異構圖存儲層的讀寫采樣能力以及數(shù)據(jù)吞吐能力提出了極高的要求,傳統(tǒng)解決方案是使用高性能的DRAM 內存來拓展異構圖存儲,滿足讀寫采樣對于性能的要求。但是,企業(yè)級 DRAM 內存的單條容量往往只有 32 GB, 再加上服務器的內存擴展插槽的限制,單機服務器可擴展內存的最大容量受到極大限制。如果要滿足對超大規(guī)模動態(tài)圖的處理需求,需要對圖進行大量分片,不僅影響訓練性能,也會限制多機擴展性。同時,由于動態(tài)全局帶權負采樣管理、動態(tài)高階負采樣等復雜算法會針對各種實例進行很多低效操作,對性能造成比較大影響,導致這些算法難以實現(xiàn)。
使用英特爾傲騰持久內存來替代傳統(tǒng)的 DRAM 內存可以解決上述挑戰(zhàn)。英特爾傲騰持久內存提供了融合高速、高性價比、大容量、持久數(shù)據(jù)保護、高級加密等優(yōu)勢于一體的內存選項。不同于傳統(tǒng)的 DRAM 內存,它集大容量、經濟性和持久性于一身,讀寫帶寬比 NVMe 設備高數(shù)倍,并大幅降低了延時問題。
英特爾傲騰持久內存提供了兩種不同的操作模式:內存模式(Memory Mode)和應用直接訪問模式(App DirectMode)。在內存模式中,它與普通的易失性(非持久性)系統(tǒng)存儲器完全一樣,但成本更低,能在保持系統(tǒng)預算的同時實現(xiàn)更高容量。英特爾傲騰持久內存模塊的容量有 128 GB、256 GB 和 512GB 幾個版本,遠超 DRAM 內存,能夠在單臺服務器中提供TB 級別的內存總容量。
快手 KGNN 平臺使用了英特爾傲騰持久內存的 App Direct 模式,在這種模式下,應用程序和操作系統(tǒng)會有兩種可用的內存。系統(tǒng)將決定是從 DRAM 還是英特爾傲騰持久內存中寫入或讀取數(shù)據(jù)。要求最低延遲且不需要永久數(shù)據(jù)存儲的操作可以在 DRAM 上執(zhí)行,必須長期保留的大型數(shù)據(jù)結構和數(shù)據(jù)將由英特爾傲騰持久內存進行存儲。在此模式下,即使系統(tǒng)關閉電源,數(shù)據(jù)仍保留在內存中。
快手 KGNN 平臺的異構圖存儲層針對英特爾傲騰持久內存進行了針對性優(yōu)化,能夠提供更高性能的讀寫采樣以及利用非易失性特征提供快速恢復等高可用能力,提高了整體流程的吞吐和穩(wěn)定性。
基于英特爾傲騰持久內存的 KGNN 平臺架構
英特爾傲騰持久內存化解了存儲性能與容量的瓶頸,能夠以 2 臺服務器提供 4TB 的容量,可以實現(xiàn)點規(guī)模 10 億級別、邊規(guī)模百億級別的大規(guī)模實時動態(tài)圖的處理,減少分圖,從而支持處理更復雜的算法,獲取更好的推薦效果。
此外,高階采樣在分布式情況下需要處理各種異常情況,代碼復雜度高,容易出錯,而且如果出現(xiàn)異常,則會對流水線化執(zhí)行造成沖擊。此外,英特爾傲騰持久內存下高階采樣的不同階段之間可以并行化,而分布式情況下一般只能等每一跳結束后才能進入下一輪。在實際業(yè)務圖復雜的情況下,英特爾傲騰持久內存預估會有至少 5-10 倍的性能提升。
在穩(wěn)定性與可用性方面,針對大規(guī)模實時動態(tài)圖訓練過程,一旦某些分片因為宕機而自動停止訓練,就必須等待所有分片重啟,從而會損失大量訓練實時精度。盡管可以通過 Check Point(校驗點)機制來挽回部分損失,但是重啟會導致整體多分片必須退回到同一個 Check Point,其終端恢復的時間預計會高達 12 小時。在線學習場景下,一旦出現(xiàn)此類可用性問題,快手還需要讓訓練消費回退,防止出現(xiàn)訓練穿越的問題,這使得在線學習的效果損失非常大。
英特爾傲騰持久內存可以減少分片,同時其具備持久內存的特性,在宕機之后數(shù)據(jù)不會消失,從而將恢復時間從 12 小時降低到 2 分鐘,恢復時間減少 99% 以上。
效果:更高性能、更低 TCO、更高可用性
得益于英特爾傲騰持久內存的卓越特性,快手 KGNN 平臺的性能實現(xiàn)了顯著提升,能夠更有效地應對算法推薦應用所帶來的挑戰(zhàn):
1、提升實時動態(tài)圖處理的性能:英特爾傲騰持久內存提供了更大的單機存儲容量,能夠顯著降低超大實時動態(tài)圖分片所帶來的性能影響。測試數(shù)據(jù)顯示,英特爾傲騰持久內存可帶來立竿見影的性能提升,同時也能支持更多復雜算法。
2、降低算法推薦系統(tǒng) TCO:與 DRAM 內存相比,同等容量的英特爾傲騰持久內存采購價格更低。此外,英特爾傲騰持久內存提供有更高的單模塊容量,使得快手可以大幅降低實現(xiàn)TB 級存儲容量所需要的服務器節(jié)點,顯著節(jié)省 TCO。
3、故障恢復時間更低:基于英特爾傲騰持久內存的快手KGNN 平臺實現(xiàn)了更低的恢復時間,這有利于快手提升 KGNN 平臺的穩(wěn)定性與可用性,降低運維負擔。
展望:生態(tài)助力數(shù)據(jù)價值挖掘
快手 KGNN 的選型與優(yōu)化實踐證明,英特爾傲騰持久內存能夠在內存容量要求高的場景中扮演重要角色,在單位成本內提供更有競爭力的性能。目前,快手 KGNN 還在繼續(xù)迭代中, 進一步推動在英特爾傲騰持久內存方面的應用探索,應對推薦場景給算法、算力等帶來的挑戰(zhàn)。
除了英特爾傲騰持久內存之外,英特爾還將與快手在技術、產品、應用和生態(tài)建設等多個層面開展合作,共同驗證前沿硬件及軟件技術在用戶推薦等場景中的落地與優(yōu)化。雙方將基于端到端的數(shù)據(jù)分析與人工智能解決方案,挖掘海量數(shù)據(jù)中蘊藏的價值,驅動大數(shù)據(jù)分析和人工智能創(chuàng)新,為用戶帶來更加個性化、智慧化的應用體驗。