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