change words and sentences (#155)

* Update intermediate_representation.md

fix bug

* Update accelerator_programming.md

* Update memory_allocator.md

* Update memory_allocator.md

* Update accelerator_programming.md

* Update accelerator_programming.md

* Update system_architecture.md

* Update system_problem.md

Co-authored-by: Dalong <39682259+eedalong@users.noreply.github.com>
This commit is contained in:
yuanzhigang
2022-03-20 20:09:55 +08:00
committed by GitHub
parent 526a15238a
commit e0dd845126
2 changed files with 3 additions and 3 deletions

View File

@@ -2,11 +2,11 @@
正如上文提到的,嵌入表占据了推荐模型绝大部分存储而其更新具有显著的稀疏性,因此推荐系统通常采用上一章介绍的参数服务器架构来存储模型。具体来讲,所有参数被分布存储在一组参数服务器上,而训练服务器一方面从数据存储模块拉取训练数据,另一方面根据训练数据从参数服务器上拉取对应的嵌入项和所有稠密神经网络参数。训练服务器本地更新之后将本地梯度或新的参数发送回参数服务器以更新全局参数。全局参数更新可以选择全同步,半同步,或异步更新。类似的,推理服务器在接到一批用户的推荐请求后,从参数服务器拉去相应的嵌入项和稠密神经网络参数来响应用户的请求。为了提升训练(推理)的吞吐,可以在训练(推理)服务器上缓存一部分参数。
为了避免训练服务器和参数服务器之间的通信限制训练吞吐率一些公司也在探索单机多GPU训练超大规模推荐系统。然而正如前文提到的即使是单个推荐模型的参数量1̃00GB也超出了目前最新的GPU显存。有鉴于此脸书公司的定制训练平台
为了避免训练服务器和参数服务器之间的通信限制训练吞吐率一些公司也在探索单机多GPU训练超大规模推荐系统。然而正如前文提到的即使是单个推荐模型的参数量~100GB也超出了目前最新的GPU显存。有鉴于此脸书公司的定制训练平台
-- ZionEX :cite:`zionex`利用计算设备之间的高速链接将多台设备的存储共享起来可以单机训练TB级推荐模型。然而对于更大规模的模型或中小型企业、实验室参数服务器架构依然是性价比最高的解决方案。
为了提升在发生故障的情况下的可用性,在线服务中的深度学习推荐模型通常都采用多副本分布式部署。同一个模型的多个副本通常会被部署在至少两个不同的地理区域内的多个数据中心中,如图 :numref:`ch10-recommendation-systems`,以应对大面积停电或者网络中断而导致整个地区的所有副本都不可用。除了容错方面的考虑,部署多个副本还有其他几点优势。首先,将模型部署在靠近用户的云服务器上可以提升响应速度。其次,部署多份副本也可以拓展模型推理服务的吞吐率。
![推荐系统的分布式架构](../img/ch10/ch10-recommendation-systems.svg)
:width:`800px`
:label:`ch10-recommendation-systems`
:label:`ch10-recommendation-systems`

View File

@@ -7,4 +7,4 @@
- 大模型的快速更新。
在线服务系统所面对的环境是复杂多变的,因此其中的机器学习模型必须不断更新以应对新的数据分布。以一个短视频推荐系统为例,其面对的变化主要来自三点。首先,每时每刻都有大量的新视频上传,这些新视频的特征分布和模型训练时所见到的数据不同;其次,对于不断加入的新用户,模型难以直接给出最优的推荐结果;最后,全部用户和内容之间的交互在不断改变,表现为热点视频在持续变化。因此,为了应对以上变化,在线服务中不可能奢望仅仅训练一次模型就能够一劳永逸地解决问题。目前业界主流的做法是利用新产生的数据不断地增量式更新所部属的模型。在学术界和工业界大量的研究和实践 :cite:`10.1145/2020408.2020444,10.1145/2648584.2648589,10.1145/3267809.3267817,9355295`中都发现模型更新可以有效缓解概念漂移带来的危害,而且更新的频率越高,模型的性能越好。
在线推荐系统对跨地域地部署的大模型进行快速更新的需求在现有的系统中很难得到满足。一种最直观的解决方案是周期性地将训练服务器上的模型参数发给所有副本。然而这种方式面临着非常大的资源瓶颈。我们以网络开销为例进行分析。假设负责训练的参数服务器存储有100GB的参数每10分钟将所有参数在训练集群内部模型更新的速度极快10分钟足够将所有参数更新多次发给其余2个副本。这就需要至少2.6Gbps的网络带宽。然而我们的分析只是最基本的情况,没有考虑网络传输的额外开销以及可能出现的失败重传,也没有考虑需要水平扩展至更多副本、更大模型、更高的更新频率的情况。为了缓解网络瓶颈,人们不得不选择以更慢的速度更新更大的模型,或者限制模型大小以追求更快的更新速度。简单的广播模型参数除了会有很大的资源瓶颈,还无法保证多副本之间的一致性。然而如果采用先的数据库系统来保证一致性,只能使得资源开销更加严重,进一步限制系统的规模和效率。
在线推荐系统对跨地域地部署的大模型进行快速更新的需求在现有的系统中很难得到满足。一种最直观的解决方案是周期性地将训练服务器上的模型参数发给所有副本。然而这种方式面临着非常大的资源瓶颈。我们以网络开销为例进行分析。假设负责训练的参数服务器存储有100GB的参数每10分钟将所有参数在训练集群内部模型更新的速度极快10分钟足够将所有参数更新多次发给其余2个副本。这就需要至少2.6Gbps的网络带宽。然而我们的分析只是最基本的情况,没有考虑网络传输的额外开销以及可能出现的失败重传,也没有考虑需要水平扩展至更多副本、更大模型、更高的更新频率的情况。为了缓解网络瓶颈,人们不得不选择以更慢的速度更新更大的模型,或者限制模型大小以追求更快的更新速度。简单的广播模型参数除了会有很大的资源瓶颈,还无法保证多副本之间的一致性。然而如果采用先的数据库系统来保证一致性,只能使得资源开销更加严重,进一步限制系统的规模和效率。