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