Facebook2019的DLRM

Deep Learning Recommendation Model for Personalization and Recommendation Systems

模型結構:dense特徵,經過bottom MLP的變換,得到一個embedding; 和類別特徵的embedding們,兩兩之間做向量點乘(類似FM的思想),得到的很多乘積串成一個向量,輸入到top MLP裏面,最後過sigmoid得到點擊概率;

結合了2種並行:

Model並行:類別Embedding佔內存太大,所以存放在多個device上;

Data並行:top MLP的參數量小,所以每個device上都複製一份,但是處理不同的訓練數據;

butterfly all-to-all:

input裏的每個Device,放的是自己那部分的embedding們,3種顏色各表示1/3的mini-batch的embedding們;

output裏的每個Device,放的是自己這1/3個mini-batch所需的所有embedding們;

Data並行那裏,每個Device上的梯度都要AllReduce一把,同步更新所有Device上的MLP模型參數;

 

Facebook用的是自研的2socket-CPU+8卡GPU一體機;似乎沒有使用多機分佈式;

實驗了全部使用CPU和全部使用GPU,但是沒有說明白最優的組合應該是哪部分使用CPU哪部分使用GPU(也許考慮到跟機型有關?)

使用Adagrad比SGD要好0.5%左右;使用Adagrad時,DLRM比DCN只有微弱優勢(0.2%?);就這效果,也敢自稱state-of-the-art?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章