1、問題與挑戰


推薦系統中的用户(User)、物品(Item)及上下文(Context)特徵具有高度異構性,其物理含義和量綱差異顯著。為將這些特徵有效引入深度神經網絡(DNN),須通過Embedding技術將其映射為統一的低維稠密向量表示,從而解決特徵間的語義鴻溝並提升模型泛化能力。為提升推薦系統的整體推薦效果,滿足用户個性化推薦的需求,加速互聯網電商企業快速變現。如下圖所示:近10年來推薦模型的參數量呈指數級增長,2016年YouTube及Alibaba-XDL等早期模型參數量級僅億級(\~10\^9),其中Embedding表佔比超90%。到2022年Persia模型參數規模突破百萬億級(10¹⁴),7年間增長萬倍,Embedding表已成為系統內存消耗的絕對主體(佔比>98%)對存儲帶來了巨大的挑戰。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_緩存

傳統模型(如矩陣分解、深度CTR模型)的 Embedding 表嚴重依賴離散型 ID 特徵(例如用户 ID、物品 ID)。在電商場景下,用户與物品的 ID 總量可達數億甚至十億規模,每個 ID 都需要分配一個獨立的嵌入向量。這種全量預分配的機制導致顯存利用率低下:即便低頻 ID 很少被訪問,仍會持續佔用固定大小的存儲空間,從而造成顯著的"靜態存儲冗餘"。此外,由於不同特徵域之間缺乏參數共享機制(例如"用户性別"與"用户 ID"需分別存儲於不同的 Embedding 表),推薦模型的參數量會隨 ID 數量的增長呈指數級膨脹。與自然語言處理中規模通常在十萬級別的大語言模型靜態詞表相比,推薦系統所面對的實際上是動態變化、規模達億級的"詞表",訓練難度與複雜度顯著更高。

GPT-3在1-2個月內使用數千個GPU在300B個tokens上進行訓練(GPT3 Brown,2020)。最大的互聯網平台每天服務數十億活躍用户,這些用户每天與數十億帖子、圖片和視頻進行互動。在極端情況下,用户序列的長度可達到100萬(Twin-lifelong Chang,2023)。語言模型在1-2個月內處理的令牌數量相比,推薦系統需要每天處理更多數量級的令牌。因此,高昂的計算與存儲成本也成為制約大規模序列建模技術在推薦系統中落地的關鍵瓶頸之一。

如下表所示:傳統推薦模型的核心思想是通過學習低維稠密向量(Emb_dim:64/128)來表徵用户和物品之間的相關性,其存儲開銷與用户數量及物品數量呈線性增長關係。雖然其Emb_dim維度較小,但在詞表size較大時(千億級),仍然需要較大的存儲空間(TB級)。生成式推薦模型的Embedding模塊在功能上與傳統模型類似,但因其採用序列化、統一化的特徵處理方法,具備更強大的特徵空間表示能力,通常需要更高的Embedding維度(Emb_dim:4096)以捕捉更豐富的語義信息。如表所示,在一般詞表size的情況下,存儲需求已達到了TB級。此外,生成式推薦模型通常基於大規模預訓練語言模型(如Transformer架構)構建其稠密網絡層。這類模型的參數量並不直接隨用户或物品數量變化,但其本身已極為龐大,例如部分生成式推薦模型的參數量可達萬億級別。因此,儘管兩類模型在結構設計和增長邏輯上存在差異,它們都對計算基礎設施的存儲容量和計算效率提出了嚴峻挑戰。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_推薦系統_02

01_萬億級推薦系統嵌入表的技術挑戰與現狀_推薦系統_03

綜上,推薦系統的在演進歷程中,Embedding Table(嵌入表)作為特徵表示的核心載體,其容量設計經歷了從靜態膨脹動態壓縮 的根本性轉變。這一變革並非簡單的技術優化,而是數據範式、模型架構與硬件約束三重力量驅動的必然結果。如何應對這些數據力量的驅動,高效的利用算力,提升轉化率成為當今業界(尤其是頭部互聯網公司)丞待解決的重點難題。

2、業界解決方案


推薦系統中大部分參數開銷集中在嵌入表,千億級向量規模帶來數量巨大的NPU存儲需求。按下表千億量級計算,全部存入HBM中需要745百張卡。按照當前單張顯卡的價格預估(GPU每張顯卡約1600美元),每TB參數訓練純HBM方案成本約20,000美元,而DDR4 每TB成本3,000美元、DDR5 每TB成本5,000美元。如何在顯存資源有限的情況下,有效地利用計算機其他存儲資源的同時訓練效率又能有所保障即"存的下"並"訓得快"成為當今業界熱點研究方向。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_推薦系統_04

《Toward 100TB Recommendation Models with Embedding Offloading》這篇論文通過少量的性能代價來換取大容量的存儲空間,給業界提供了新的解決思路。主要做法是將全量的Embedding表卸載到Host側並結合Cache和預取的方式來提升訪存命中率和掩蓋計算和通信。此外,還利用Meta高性能的算子開源庫FBGEMM GPU和TorchRec通過局部感知分片和迭代規劃方法,能夠自動優化緩存大小並生成高效的分片方案。實現了Embedding表的37倍模型規模擴展 ,達到100TB模型 規模,訓練速度僅下降26% ((603k-445k)/603k)。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_緩存_05

該方案的主要貢獻如下:

1、多級緩存 :Embedding模塊實現了Table Batched Embedding (TBE) 技術,當Embedding容量超出GPU內存限制,將Embedding表放置於主機內存(DDR)。如下圖所示:為能夠高效的對主機側Embedding表進行訪問,TBE通過使用統一虛擬地址訪問主機內存中的Embedding表,同時將Embedding頁固定以防止遷移。此外,由於Embedding不能全量的加載到HBM側且TBE在主機內存上的訪問性能受限於 GPU 與 CPU 之間的通信連接(例如 PCIe),因此TBE 提供了cache機制 將部分頻繁被訪問的key加載到cache中,提升訪存命中率。緩存中的key更新策略可使用最近最少使用(LRU)算法進行驅逐。 Embedding模塊通過實現Table Batched Embedding (TBE) 技術,將多個Embedding表的查找操作合併執行,極大提升了GPU的計算效率。為了突破單卡GPU內存對模型容量的限制,系統採用了分級存儲 策略:將完整的Embedding表存放於主機內存,同時在GPU內存中維護一個動態緩存 。通過高效的數據換入換出 機制,確保訓練時GPU能快速訪問到當前所需的熱點數據,從而實現了用有限顯存支撐超大規模稀疏模型訓練的目標。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_生成式_06

2、預取與流水線相互結合實現掩蓋 :預取操作在 TBE 前向傳播之前,將下一次迭代的嵌入加載到緩存中。 如果某些行無法預取,TBE 會在前向和反向傳播過程中直接訪問主機內存。為了確保預取過程不被暴露,其在訓練流水線中增加了一個預取階段,並使其在獨立流上運行,以實現與其他 GPU 操作的重疊。預取流水線需要確保batch i+1的行不會驅逐batch i的現有行。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_生成式_07

預取和Pipline結合需要綜合考慮當前batch和預取batch之間的cache衝突,需要為當前訓練batch所需的key預留緩存資源。若當前批次(batch i)中某個key的預取因緩存容量不足失敗,該key將直接由主機內存加載以供訓練。此時,若下一批次(batch i+1)嘗試預取同一key,會因該行key可能正在被batch i的反向傳播更新,而引發緩存讀寫競態。為確保一致性,必須要求batch i+1的預取操作在batch i的嵌入反向傳播開始前完成。基於此約束,當前方案中預取的size設置為1,HBM側的內存申請空間一般不少於兩個batch。

3、分片策略優化:大Embedding表場景下,雙級緩存方案的Cache Size(緩存大小)設計與HBM存儲容量之間存在緊密的協同優化關係,核心目標是在有限HBM容量約束下最大化緩存命中率,其動態平衡關係受分片策略影響,需在內存容量和性能之間做一個平衡。 好的分片策略需要提前統計Embedding表的局部信息,包括多個批次數據中活躍的key數量確定有效緩存大小、離線統計不同cacheSize下緩存未命中率情況獲取最佳cacheSize等。緩存設置過小會使得預取操作失效(cacheSize存放不下預取數據導致加載數據時還得從host讀取),緩存設置過大會導致緩存淘汰(如LFU算法)的計算開銷顯著上升,可能抵消命中率收益。因此,本方案中將最小緩存大小定義為兩個批次Embedding的活躍數據集來同時容納正在訓練的批次和正在預取的批次。此外,分片策略還得平衡各rank間的預取時間,避免慢節點拖慢整個同步訓練過程。為此,預取操作的持續時間需要提前被估算,該時間通過Embedding的LoopUp次數、緩存未命中率及計算預取數據量和GPU與主機之間的數據量和帶寬來綜合評估。 綜上,業界普遍採用上述思想並通過高效的算法(bin-packing)在計算節點間進行分片。即使總緩存大小滿足內存限制,方案可能無法分區,或者使用較少緩存預算可能產生整體更優的佈局。由於bin-packing算法中的非線性,我們觀察到緩存預算與方案成本之間存在非平滑關係。還可以通過一種自動搜索方法,利用無梯度優化算法探索多種緩存預算,以選擇最優方案。

綜上,業界普遍採用上述思想並通過高效的算法(bin-packing)在計算節點間進行分片。即使總緩存大小滿足內存限制,方案可能無法分區,或者使用較少緩存預算可能產生整體更優的佈局。由於bin-packing算法中的非線性,我們觀察到緩存預算與方案成本之間存在非平滑關係。還可以通過一種自動搜索方法,利用無梯度優化算法探索多種緩存預算,以選擇最優方案。

3、 業界方案落地實踐


美團MTGR框架是美團自主研發的面向下一代推薦系統的生成式推薦模型框架,基於Meta的TorchRec大規模推薦系統訓練庫構建。其核心理念在於將推薦系統從傳統的"匹配"或"排序"模式升級為"生成"模式,能夠高效支持千億級參數、每樣本100GFLOPs甚至更高計算複雜度的大規模模型分佈式訓練。

01_萬億級推薦系統嵌入表的技術挑戰與現狀_緩存_08

如上圖所示,系統框架分為三層:

  • 底層(TorchRec增強):TorchRec是Meta開源的稀疏模型訓練框架,美團對其進行了功能擴展,包括支持動態哈希表、梯度累積和通信優化,以滿足實際業務需求。針對生成式推薦模型中可能出現的較大稠密模塊,框架借鑑了大語言模型社區的並行方案(如FSDP和Megatron)以提供支持。
  • 中間層(MTGR-Training):該層是框架的核心,對訓練流程進行了全面封裝,涵蓋離線與流式數據讀取、訓練與評估流程管理、斷點續訓、離在線一致性校驗、熱啓動等功能,同時通過簡潔的模型定義接口降低用户使用門檻。
  • 上層(算法模型層):各業務線可基於框架提供的接口靈活定義個性化推薦模型,實現業務適配。

在性能優化方面,系統通過以下措施提升效率與可擴展性:

  • 分佈式嵌入層:支持TB級嵌入表與千億級參數規模,確保大規模稀疏特徵的高效處理。
  • 高性能數據加載:優化稀疏特徵處理流水線,提升數據讀取與預處理效率。
  • 混合並行策略:結合數據並行、模型並行與流水線並行,充分發揮分佈式訓練優勢。
  • 內存優化機制:通過動態嵌入緩存、梯度壓縮等技術,有效管理內存資源,降低訓練開銷。

這一設計使MTGR框架能夠高效支撐生成式推薦模型的訓練與部署,推動推薦系統技術升級。這一新的架構,成功在美團核心的外賣首頁推薦場景落地。對比基準模型,單樣本前向推理FLOPs提升65倍,離線CTCVR GAUC + 2.88pp,外賣首頁列表訂單量+1.22%(近2年迭代單次優化最大收益),PV_CTR + 1.31%。