从推荐模型的基础特点看大规模推荐类深度学习系统的设计 袁镱
百TB数据 分⽚训练 Feature 1: 动态空间 Feature 2.1:短时间内只有部分item和user 被命中,只有部分参数被⽤到 参数按需 获取/更新 Storage 异步训练流⽔线和多级存储:提升性能,降低内存成本 � 问题: � Learner线程中参数拉取和参数更新对性能影响⼤ � 内存成为主要资源瓶颈。由于需要等待全部参数 就绪,Parameter Server难以利⽤速度慢的存储 Worker 返回参数 Request Handler Parameter Server 更新参数 � 异步参数处理流⽔线 参数 预准备 Batch⼊队列 Batch⼊队列 � 效果: � 在不影响训练效果的情况下,降低参数准备与更新耗时,提 ⾼训练速度。训练耗时下降超50% � 异步storage线程,⽀持基于冷热数据的多级存储。内存消 耗下降30%-70% 磁盘 训练 Lookup+ 增量模型,GB级,20分钟(Cos存储) 实时模型,KB级,秒(Kafka) 分布式 Serving集群 推理节点 分布式 Serving集群 推理节点 召回索引服务 业务服务 1. 获取⽤户向量 2. 向量召回 异步 刷库 训练端⽣成⾼频参数集 独⽴通道上线 降低请求⽑刺 Feature 2.1: 短时间内只 有部分参数被⽤到 Feature 2.2 Hotkey变化慢 ⼤规模推荐模型深度学习系统基本解决维度0 码力 | 22 页 | 6.76 MB | 1 年前3动手学深度学习 v2.0
. . . . . . . . . . . . . . . . 506 12.2 异步计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.2.1 通过后端异步处理 . . . . . . . . . . . . . . . . . . . . . 502 11. 优化算法 12 计算性能 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。因此,计算的性能非常重要。本章将集中 讨论影响计算性能的主要因素:命令式编程、符号编程、异步计算、自动并行和多GPU计算。通过学习本章, 对于前几章中实现的那些模型,可以进一步提高它们的计算性能。例如,我们可以在不影响准确性的前提下, 大大减少训练时间。 12.1 编译器和解释器 回顾前几章中感兴趣的模型,能提高它们的计算性能吗? Discussions143 12.2 异步计算 今天的计算机是高度并行的系统,由多个CPU核、多个GPU、多个处理单元组成。通常每个CPU核有多个线程,每 个设备通常有多个GPU,每个GPU有多个处理单元。总之,我们可以同时处理许多不同的事情,并且通常是在不 同的设备上。不幸的是,Python并不善于编写并行和异步代码,至少在没有额外帮助的情况下不是好选择。归根 结底,0 码力 | 797 页 | 29.45 MB | 1 年前3【PyTorch深度学习-龙龙老师】-测试版202112
Advantage Actor-Critic 算法,是 DeepMind 基于 Advantage Actor-Critic 算法提出来的异步版本 [8],将 Actor-Critic 网络部署在多个线程中 同时进行训练,并通过全局网络来同步参数。这种异步训练的模式大大提升了训练效率, 训练速度更快,并且算法性能也更好。 如图 14.22 所示,算法会新建一个全局网络 Global Network ? 网络 ?? 环境1 环境2 环境M ⋯ ⋯ 线程1 线程2 线程M 全局网络 图 14.22 A3C 算法框图 14.5.3 A3C 实战 接下来我们实现异步的 A3C 算法。和普通的 Advantage AC 算法一样,需要创建 ActorCritic 网络大类,它包含了一个 Actor 子网络和一个 Critic 子网络,有时 Actor 和 Critic0 码力 | 439 页 | 29.91 MB | 1 年前3
共 3 条
- 1