作為2億日活、日均千萬級短視頻上傳、強調(diào)社區(qū)普惠的短視頻APP,快手推薦系統(tǒng)所需解決的技術(shù)挑戰(zhàn)是世界級的。近日,快手在國內(nèi)率先應(yīng)用持久內(nèi)存重新設(shè)計了基于異構(gòu)存儲結(jié)構(gòu)的推薦系統(tǒng),率先采用英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存。在快手推薦系統(tǒng)高吞吐量大數(shù)據(jù)量請求的場景下,使用持久內(nèi)存可以降低存儲成本,減少故障恢復(fù)時間,提高系統(tǒng)可靠性。故障恢復(fù)時間從小時級別降低到分鐘級,也為改善大規(guī)模深度機器學習系統(tǒng)在改進千億級別數(shù)據(jù)量的處理能力上開辟了新的探索方向。
業(yè)界超大規(guī)模實時在線短視頻推薦系統(tǒng)
如何在承載高峰期每秒數(shù)十萬并發(fā)調(diào)用量的同時,從上百億級別的短視頻庫中,通過千億參數(shù)級別的深度模型將內(nèi)容展現(xiàn)給用戶?快手推薦團隊設(shè)計了基于異構(gòu)設(shè)備的先進推薦系統(tǒng),其中遇到問題的復(fù)雜程度極富挑戰(zhàn)。
目前快手推薦系統(tǒng)采用的是計算與存儲分離的架構(gòu)模式(如下圖所示)。推薦系統(tǒng)中的存儲型服務(wù)主要是用來存儲和實時更新上億規(guī)模的用戶畫像、數(shù)十億規(guī)模的短視頻特征、以及千億規(guī)模的排序模型參數(shù)。計算型服務(wù)主要進行的是視頻召回檢索、推薦模型預(yù)估和推薦策略計算。
【快手推薦系統(tǒng)采用計算和存儲分離的架構(gòu)】
2018年到2019年上半年,快手推薦架構(gòu)團隊的主要工作集中在利用異構(gòu)混合計算的方式,提升推薦系統(tǒng)中模型預(yù)估和召回檢索等計算密集型業(yè)務(wù)的性能。通過利用異構(gòu)計算的改造,產(chǎn)生了數(shù)倍的性能提升,鼓舞了快手推薦架構(gòu)團隊向異構(gòu)系統(tǒng)設(shè)計中更難的存儲問題進發(fā)。
一直以來,快手推薦團隊致力于推薦系統(tǒng)架構(gòu)調(diào)整,力求在日益增長的用戶量沖擊下,使推薦系統(tǒng)高可用的前提下,實時、高效、精準地向用戶推薦優(yōu)質(zhì)內(nèi)容。
新機遇:軟硬結(jié)合極致優(yōu)化,探索異構(gòu)存儲
持久內(nèi)存是介于DRAM和SSD間的新存儲層級,不僅能提供接近DRAM的延遲,同時還提供持久化和更大容量的存儲空間,這為推薦系統(tǒng)中不同場景的可行性分析和架構(gòu)設(shè)計提供了思路。
相比于傳統(tǒng)的內(nèi)存加硬盤的兩級存儲,新存儲設(shè)備的推出,現(xiàn)代服務(wù)器可以利用的存儲層級越來越多,利用多層級存儲的軟件系統(tǒng)設(shè)計也變得越來越復(fù)雜。每種存儲設(shè)備有不同的性能特性和容量大小限制,越快的設(shè)備的單位容量成本越高。例如使用內(nèi)存插槽的英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存,依據(jù)讀寫粒度的不同,讀寫帶寬雖小于傳統(tǒng)內(nèi)存,但寫入數(shù)據(jù)具有持久性,且容量遠大于傳統(tǒng)內(nèi)存。如何結(jié)合不同層級的存儲設(shè)計在大規(guī)模推薦場景下性價比最優(yōu)的存儲系統(tǒng)成為一個巨大機遇和挑戰(zhàn)。
【新一代服務(wù)器的存儲層級結(jié)構(gòu)】
快手聯(lián)合英特爾,國內(nèi)業(yè)界率先落地采用英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存的異構(gòu)存儲到推薦系統(tǒng)
基于多層級異構(gòu)存儲設(shè)備,快手推薦團隊聯(lián)合系統(tǒng)運營部硬件選型研發(fā)團隊針對推薦系統(tǒng)中的不同場景進行了可行性分析和架構(gòu)設(shè)計的調(diào)研。針對持久內(nèi)存的特性,對分布式索引和參數(shù)服務(wù)器中的KV存儲進行了重新設(shè)計。
【基于持久性內(nèi)存的KV系統(tǒng)設(shè)計示意圖】,注:AEP指代英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存
該設(shè)計主要通過為KV存儲增加MemPool組件,針對不同訪問類型來決定系統(tǒng)是訪問DRAM緩存,還是直接讀取持久內(nèi)存。比如說,在推薦模型預(yù)估的參數(shù)服務(wù)器這個場景中,由于模型中神經(jīng)網(wǎng)絡(luò)大小與Embedding Table相比很小,所以神經(jīng)網(wǎng)絡(luò)也會被MemPool直接分配進入DRAM來提高預(yù)估的性能。
除此之外,推薦團隊還對KV系統(tǒng)進行了調(diào)優(yōu):
對于數(shù)據(jù)讀取場景采用NUMA節(jié)點綁定的方式使得持久內(nèi)存訪問不跨NUMA節(jié)點,從而獲得更好的讀寫性能;采用ZeroCopy技術(shù)對內(nèi)存和持久內(nèi)存進行訪問;使用無鎖技術(shù),減少臨界區(qū)中對持久內(nèi)存的訪問來提高性能。經(jīng)過上述的技術(shù)改進,我們將基于持久內(nèi)存的索引系統(tǒng)用真實的線上請求數(shù)據(jù)進行模擬壓測。測試結(jié)果如下:
【基于持久性內(nèi)存索引系統(tǒng)的壓力測試結(jié)果】
基于異構(gòu)存儲的索引系統(tǒng)幾乎達到純DRAM的索引系統(tǒng)相同的性能指標,但總體擁有成本降低30%。同時異構(gòu)存儲的索引系統(tǒng)能夠提供分鐘級別的故障恢復(fù)速度,比之前小時級別的恢復(fù)提升了百倍恢復(fù)速度。英特爾專家介紹,快手是國內(nèi)率先在推薦系統(tǒng)領(lǐng)域中引入并使用基于持久內(nèi)存的異構(gòu)存儲的互聯(lián)網(wǎng)公司,這種創(chuàng)新實踐的技術(shù)能力讓我們側(cè)目。
快手推薦打造業(yè)界頂級、戰(zhàn)斗力強悍的技術(shù)團隊
通過工程、算法結(jié)合,數(shù)據(jù)驅(qū)動的手段,讓快手推薦系統(tǒng)更高效、更精準、更穩(wěn)定地為快手數(shù)億用戶服務(wù),記錄每一個人的生活點滴,并讓每一個人的記錄都能引起共鳴。推薦架構(gòu)團隊的成員都來自國內(nèi)知名大學、甚至國際知名大學,如CMU、清華、北大、中科大等著名院校的畢業(yè)生。團隊每個成員都追求技術(shù)極致,具備一流的分布式高并發(fā)服務(wù)的開發(fā)能力,比如在線分布式索引支持每天千億級別的視頻請求、機器學習平臺支持千億級別的推薦模型在線學習和在線預(yù)估、在線服務(wù)為數(shù)億用戶提供99.99%的可用性。
- QQ:61149512