Fix citation error (#69)

This commit is contained in:
Yao Fu
2022-03-11 11:48:20 +00:00
committed by GitHub
parent 2398a82d7c
commit 5df16006a4
2 changed files with 18 additions and 86 deletions

View File

@@ -12,7 +12,7 @@
:width:`800px`
:label:`ch10-recommendation-models`
推荐模型以用户和内容的交互历史、用户属性、内容属性等特征作为输入对输入特征进行充分相互作用再将交互结果交由稠密深度神经网络来预测用户点击候选内容的可能性。【以xxx网络为例】。由于推荐模型的输入中包含大量无法直接进行矩阵运算的类别数据例如用户和商品标识符所以必须使用嵌入表将类别数据转换为数字向量形式。由于每种类别数据包含的每种情况都需要一个单独的嵌入项来表示而稠密深度神经网络的参数可以共享在大规模推荐模型中嵌入表占据了绝大部分内存 :cite:`MLSYS2021_979d472a, DBLP:journals/corr/abs-2003-05622`。举例说明假设一个推荐模型需要处理1亿条短视频内容而每条短视频对应的嵌入项为一个64维的32位浮点数向量那么仅该内容嵌入表就需要就需要占据大约24GB内存。如果考虑到用户标识符等其他嵌入表那么单个模型可以轻易占据近100GB内存。而在工业界生产环境中TB级的推荐模型 :cite:`DBLP:journals/corr/abs-2003-05622`也是非常常见的。
推荐模型以用户和内容的交互历史、用户属性、内容属性等特征作为输入对输入特征进行充分相互作用再将交互结果交由稠密深度神经网络来预测用户点击候选内容的可能性。【以xxx网络为例】。由于推荐模型的输入中包含大量无法直接进行矩阵运算的类别数据例如用户和商品标识符所以必须使用嵌入表将类别数据转换为数字向量形式。由于每种类别数据包含的每种情况都需要一个单独的嵌入项来表示而稠密深度神经网络的参数可以共享在大规模推荐模型中嵌入表占据了绝大部分内存 :cite:`MLSYS2021_979d472a, MLSYS2020_f7e6c855`。举例说明假设一个推荐模型需要处理1亿条短视频内容而每条短视频对应的嵌入项为一个64维的32位浮点数向量那么仅该内容嵌入表就需要就需要占据大约24GB内存。如果考虑到用户标识符等其他嵌入表那么单个模型可以轻易占据近100GB内存。而在工业界生产环境中TB级的推荐模型 :cite:`MLSYS2020_f7e6c855`也是非常常见的。
在实际的生产环境中,除了推荐模型本身,推荐系统通常包括:数据收集、数据处理、数据存储、模型训练、模型存储、模型评估、推理服务等多个子系统。如图 :numref:`ch10-abstract-recommendation-systems`所示,这些子系统之间分工协作、紧密配合,构成一个从用户反馈、到模型更新、再到新推荐结果生成的闭环。下一小节中将重点介绍模型训练、推理子系统的结构。
@@ -29,7 +29,7 @@
正如上文提到的,嵌入表占据了推荐模型绝大部分存储而其更新具有显著的稀疏性,因此推荐系统通常采用上一章介绍的参数服务器架构来存储模型。具体来讲,所有参数被分布存储在一组参数服务器上,而训练服务器一方面从数据存储模块拉取训练数据,另一方面根据训练数据从参数服务器上拉取对应的嵌入项和所有稠密神经网络参数。训练服务器本地更新之后将本地梯度或新的参数发送回参数服务器以更新全局参数。全局参数更新可以选择全同步,半同步,或异步更新。类似的,推理服务器在接到一批用户的推荐请求后,从参数服务器拉去相应的嵌入项和稠密神经网络参数来响应用户的请求。为了提升训练(推理)的吞吐,可以在训练(推理)服务器上缓存一部分参数。
为了避免训练服务器和参数服务器之间的通信限制训练吞吐率一些公司也在探索单机多GPU训练超大规模推荐系统。然而正如前文提到的即使是单个推荐模型的参数量1̃00GB也超出了目前最新的GPU显存。有鉴于此脸书公司的定制训练平台
-- ZionEX :cite:`DBLP:journals/corr/abs-2104-05158`
-- ZionEX :cite:`mudigere2021software`
利用计算设备之间的高速链接将多台设备的存储共享起来可以单机训练TB级推荐模型。然而对于更大规模的模型或中小型企业、实验室参数服务器架构依然是性价比最高的解决方案。
为了提升在发生故障的情况下的可用性,在线服务中的深度学习推荐模型通常都采用多副本分布式部署。同一个模型的多个副本通常会被部署在至少两个不同的地理区域内的多个数据中心中,如图 :numref:`ch10-recommendation-systems`,以应对大面积停电或者网络中断而导致整个地区的所有副本都不可用。除了容错方面的考虑,部署多个副本还有其他几点优势。首先,将模型部署在靠近用户的云服务器上可以提升响应速度。其次,部署多份副本也可以拓展模型推理服务的吞吐率。
@@ -55,9 +55,9 @@
- 云--边--端协同推荐系统。随着边缘设备的增加以及用户端设备性能逐渐增强,服务提供者可以通过将部分计算服务从云服务器下放至边缘服务器乃至用户的设备上来提高模型的反应速度。例如,有研究 :cite:`gong2020edgerec`探索了将模型的前几层下放至客户端上,并且利用用户的本地数据进行个性化训练以给出更加准确的推荐结果。当用户的兴趣发生改变时,客户端上的小模型可以实时地更新以响应用户的请求。除此之外,还可以借鉴联邦学习中的概念,例如有研究 :cite:`NEURIPS2020_a1d4c20b`探索了利用知识迁移的方法在云-端之间传递信息。在在线推荐系统中使用这种方法可以彻底解耦云上的大模型与客户端的小模型。
- 异构硬件多级存储。前文提到GPU显存无法装下完整的模型参数一些现有的系统 :cite:`DBLP:journals/corr/abs-2003-05622`为了充分利用GPU的计算优势采用多级缓存的思想将部分参数分级存储于显存、主存和固态硬盘上。在他们提出的这个分级系统中主要解决了缓存策略和异构硬件的适配问题。然而在设计类似的存储系统时还应该考虑到机器学习模型内在的一些访存特征以进一步优化。Kraken :cite:`9355295`这篇工作讨论了利用机器学习模型的特征对嵌入项的哈希表的存储进行优化的方法。此外,新型硬件的发展为解决大规模推荐模型的高效存储提供了新的可能。比如非易失存储可以作为主存的扩展,进一步提升系统可以支持的模型尺寸。然而目前还没有见到专门为在线机器学习优化的非易失存储系统。另外也有工作 :cite:`MLSYS2021_ec895663`讨论了利用FPGA加速嵌入表的访存并且相比于CPU服务器取得了非常显著的效果。
- 异构硬件多级存储。前文提到GPU显存无法装下完整的模型参数一些现有的系统 :cite:`MLSYS2020_f7e6c855`为了充分利用GPU的计算优势采用多级缓存的思想将部分参数分级存储于显存、主存和固态硬盘上。在他们提出的这个分级系统中主要解决了缓存策略和异构硬件的适配问题。然而在设计类似的存储系统时还应该考虑到机器学习模型内在的一些访存特征以进一步优化。Kraken :cite:`9355295`这篇工作讨论了利用机器学习模型的特征对嵌入项的哈希表的存储进行优化的方法。此外,新型硬件的发展为解决大规模推荐模型的高效存储提供了新的可能。比如非易失存储可以作为主存的扩展,进一步提升系统可以支持的模型尺寸。然而目前还没有见到专门为在线机器学习优化的非易失存储系统。另外也有工作 :cite:`MLSYS2021_ec895663`讨论了利用FPGA加速嵌入表的访存并且相比于CPU服务器取得了非常显著的效果。
- 内存高效的嵌入项存储与计算。除了系统上的设计,研究人员也在探索其他算法优化手段来压缩嵌入表的内存需求。直接使用低精度浮点数可以有效降低内存开销,但是还是会对模型的精度产生一定的影响。因此在在线推荐服务这种精度敏感的场景中并不适用。除此之外,:cite: `MLSYS2021_979d472a`利用低秩分解可以将一个大矩阵分解为两个小矩阵(向量)。这种方法可以在保留原矩阵大量信息的前提下显著减小内存开销。除了低秩分解外,还有其他 :cite:`10.1145/3394486.3403059`分解嵌入表的手段。还有研究 :cite:`ginart2021mixed`表明,没有必要为所有的项目都使用一样长的嵌入项,可以根据嵌入项的重要性动态决定其长度以节省内存开销。作为系统设计者,如何将层出不穷的算法优化手段高效地实现是需要考虑的问题。
- 内存高效的嵌入项存储与计算。除了系统上的设计,研究人员也在探索其他算法优化手段来压缩嵌入表的内存需求。直接使用低精度浮点数可以有效降低内存开销,但是还是会对模型的精度产生一定的影响。因此在在线推荐服务这种精度敏感的场景中并不适用。除此之外,:cite:`MLSYS2021_979d472a`利用低秩分解可以将一个大矩阵分解为两个小矩阵(向量)。这种方法可以在保留原矩阵大量信息的前提下显著减小内存开销。除了低秩分解外,还有其他 :cite:`10.1145/3394486.3403059`分解嵌入表的手段。还有研究 :cite:`ginart2021mixed`表明,没有必要为所有的项目都使用一样长的嵌入项,可以根据嵌入项的重要性动态决定其长度以节省内存开销。作为系统设计者,如何将层出不穷的算法优化手段高效地实现是需要考虑的问题。
## 小结

View File

@@ -291,90 +291,22 @@
year = {2021}
}
@article{DBLP:journals/corr/abs-2003-05622,
author = {Weijie Zhao and
Deping Xie and
Ronglai Jia and
Yulei Qian and
Ruiquan Ding and
Mingming Sun and
Ping Li},
title = {Distributed Hierarchical {GPU} Parameter Server for Massive Scale
Deep Learning Ads Systems},
journal = {CoRR},
volume = {abs/2003.05622},
year = {2020},
url = {https://arxiv.org/abs/2003.05622},
eprinttype = {arXiv},
eprint = {2003.05622},
timestamp = {Thu, 19 Aug 2021 08:41:35 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2003-05622.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
@inproceedings{MLSYS2020_f7e6c855,
author = {Zhao, Weijie and Xie, Deping and Jia, Ronglai and Qian, Yulei and Ding, Ruiquan and Sun, Mingming and Li, Ping},
booktitle = {Proceedings of Machine Learning and Systems},
editor = {I. Dhillon and D. Papailiopoulos and V. Sze},
pages = {412--428},
title = {Distributed Hierarchical GPU Parameter Server for Massive Scale Deep Learning Ads Systems},
url = {https://proceedings.mlsys.org/paper/2020/file/f7e6c85504ce6e82442c770f7c8606f0-Paper.pdf},
volume = {2},
year = {2020}
}
@article{DBLP:journals/corr/abs-2104-05158,
author = {Dheevatsa Mudigere and
Yuchen Hao and
Jianyu Huang and
Andrew Tulloch and
Srinivas Sridharan and
Xing Liu and
Mustafa Ozdal and
Jade Nie and
Jongsoo Park and
Liang Luo and
Jie Amy Yang and
Leon Gao and
Dmytro Ivchenko and
Aarti Basant and
Yuxi Hu and
Jiyan Yang and
Ehsan K. Ardestani and
Xiaodong Wang and
Rakesh Komuravelli and
Ching{-}Hsiang Chu and
Serhat Yilmaz and
Huayu Li and
Jiyuan Qian and
Zhuobo Feng and
Yinbin Ma and
Junjie Yang and
Ellie Wen and
Hong Li and
Lin Yang and
Chonglin Sun and
Whitney Zhao and
Dimitry Melts and
Krishna Dhulipala and
K. R. Kishore and
Tyler Graf and
Assaf Eisenman and
Kiran Kumar Matam and
Adi Gangidi and
Guoqiang Jerry Chen and
Manoj Krishnan and
Avinash Nayak and
Krishnakumar Nair and
Bharath Muthiah and
Mahmoud khorashadi and
Pallab Bhattacharya and
Petr Lapukhov and
Maxim Naumov and
Lin Qiao and
Mikhail Smelyanskiy and
Bill Jia and
Vijay Rao},
title = {High-performance, Distributed Training of Large-scale Deep Learning
Recommendation Models},
journal = {CoRR},
volume = {abs/2104.05158},
year = {2021},
url = {https://arxiv.org/abs/2104.05158},
eprinttype = {arXiv},
eprint = {2104.05158},
timestamp = {Fri, 13 Aug 2021 14:56:26 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2104-05158.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
@article{mudigere2021software,
title={Software-Hardware Co-design for Fast and Scalable Training of Deep Learning Recommendation Models},
author={Mudigere, Dheevatsa and Hao, Yuchen and Huang, Jianyu and Jia, Zhihao and Tulloch, Andrew and Sridharan, Srinivas and Liu, Xing and Ozdal, Mustafa and Nie, Jade and Park, Jongsoo and others},
journal={arXiv preprint arXiv:2104.05158},
year={2021}
}
@inproceedings{gong2020edgerec,