如何有效處理大規模用戶數據進行廣告推薦?對于互聯網企業的發展和進步至關重要。這也是為何快手成立西雅圖實驗室并實現新一代GPU廣告模型訓練平臺的原因之一。快手新創建的“Persia”GPU廣告模型訓練平臺比起傳統CPU訓練平臺,單機訓練速度提升可達幾百倍,在約一小時內即可訓練百T級別數據量,并能通過設計算法得到相對于傳統訓練平臺精度更高的模型,對企業收入、計算資源的節約和新模型開發效率產生直觀的提升。
大模型GPU分布式運算存儲
近年來,GPU訓練已在圖像識別、文字處理等應用上取得巨大成功。GPU訓練以其在卷積等數學運算上的獨特效率優勢,極大地提升了訓練機器學習模型,尤其是深度神經網絡的速度。然而,在廣告模型中,由于大量的稀疏樣本存在(比如用戶id),每個id在模型中都會有對應的Embedding向量,因此廣告模型常常體積十分巨大,以至于單GPU無法存下模型。目前往往將模型存在內存中,由CPU進行這部分巨大的Embedding層的運算操作。這既限制了訓練的速度,又導致實際生產中無法使用比較復雜的模型——因為使用復雜模型會導致對給定輸入CPU計算時間過長,無法及時響應請求。
“Persia”系統實現了多GPU分散存儲模型,每個GPU只存儲模型一部分,并進行多卡協作查找Embedding向量訓練模型的模式。這既解決了CPU運算速度過慢的問題,又解決了單GPU顯存無法存下模型的問題。當模型大小可以放入單個GPU時,“Persia”也支持切換為目前在圖像識別等任務中流行的AllReduce分布訓練模式。據研究人員透露,對于一個8GPU的計算機,單機數據處理速度可達原CPU平臺單機的640倍。
由于普遍使用的傳統異步SGD有梯度的延遲問題,若有n臺計算機參與計算,每臺計算機的梯度的計算實際上基于n個梯度更新之前的模型。在數學上,對于第t步的模型xt,傳統異步SGD則更新為:
xt+1←xt ? learning rate × g(xt?τt),
其中g(xt?τt) 是訓練樣本的損失函數在τt個更新之前的模型上的 梯度。而τt的大小一般與計算機數量成正比:當計算機數量增多,xt?τt與xt相差就越大,不可避免地導致模型質量的降低。“Persia”的訓練模式解決了這種梯度延遲的問題,因此模型質量也有所提升。
同時,“Persia”訓練系統還支持對Embedding運算在GPU上進行負載均衡,使用“貪心算法”將不同Embedding均勻分散在不同GPU上,以達到均勻利用GPU的目的。給定k個 GPU,當模型具有m個Embedding層:e1, e2, …, em,對應負載分別為l1, l2, …, lm,“Persia”將會嘗試將Embedding分為k組S1, S2, …, Sk,并分別存放在對應GPU上,使得每組∑i∈Sjli, ?j大致相等。
訓練數據分布式實時處理
快手“Persia”的高速GPU訓練,需要大量數據實時輸入到訓練機中,由于不同模型對樣本的需求不同,對于每個新實驗需要的數據格式可能也不同。快手“Persia”系統具備基于Hadoop集群的實時數據處理系統,可以應不同實驗需求從HDFS中使用任意多計算機分布式讀取數據進行多級個性化處理傳送到訓練機。傳輸使用高效消息隊列,并設置多級緩存。傳輸過程實時進行壓縮以節約帶寬資源。
未來:分布式多機訓練
未來,快手“Persia”系統即將展開分布式多GPU計算機訓練。有別于成熟的計算機視覺等任務,由于在廣告任務中模型大小大為增加,傳統分布式訓練方式面臨計算機之間的同步瓶頸會使訓練效率大為降低。“Persia”系統將支持通訊代價更小,并且系統容災能力更強的去中心化梯度壓縮訓練算法。
快手FeDA智能決策實驗室負責人劉霽介紹,該算法結合新興的異步去中心化訓練 (Asynchronous decentralized parallel stochastic gradient descent, ICML 2018)和梯度壓縮補償算法(Doublesqueeze: parallel stochastic gradient descent with double-pass error-compensated compression, ICML 2019), 并有嚴格理論保證。據預計,快手“Persia”系統在多機情景下在單機基礎上將有數倍到數十倍效率提升。
-
cpu
+關注
關注
68文章
10855瀏覽量
211590 -
gpu
+關注
關注
28文章
4729瀏覽量
128892 -
機器學習
+關注
關注
66文章
8407瀏覽量
132567
原文標題:單機訓練速度提升高達640倍,快手開發GPU廣告模型訓練平臺
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論