研究人员推出“PERSIA”:一种基于 PyTorch 的系统,用于训练多达 100 万亿个参数的大规模深度学习推荐模型
基于深度学习的模型主导了生产推荐系统的当代格局。现代推荐系统提供了大量实际应用。由于规模不断扩大的深度神经网络模型,它们取得了令人难以置信的进步。
然而即使在工业规模的数据中心内,此类模型的训练也具有挑战性。这一挑战源于训练计算惊人的异质性——模型的嵌入层可能占整个模型大小的 99.99% 以上。整个过程非常耗费内存,而神经网络 (NN) 的其余部分则逐渐变得计算密集型。
波斯的基础上,革命性的混合训练算法,高效的分布式培训体系,已推出由葵公司Kuaishou技术和ETH的一个研究小组苏黎世。这种方法为具有多达 100 万亿个参数的广泛深度学习推荐系统提供了训练效率和准确性。研究人员精心设计了优化方法和分布式系统架构。
由于多项技术贡献,波斯得到了促进。Persia 的核心技术假设将混合和异构的训练算法与异构系统架构设计相结合。通过这样做,研究人员的目标是提高训练推荐系统的性能,超越现有的性能。
本研究将推荐模型的属性与其收敛性联系起来,以证明其有效性。研究人员描述了一种自然但不寻常的混合训练技术,该技术接近嵌入层和密集神经网络模块。此外该研究还对其收敛行为进行了详尽的理论描述。在 Kwai,PERSIA 使用公开可用的基准测试和实际工作负载进行评估。
研究人员最初提出了一种同步-异步混合方法,其中嵌入模块异步训练。同时密集神经网络同步更新。在不牺牲统计效率的情况下,这种混合方法实现了与完全异步模式相当的硬件效率。
波斯基于两个基本方面:
- 训练工作流在不同集群中的分布
- 相关的混合基础设施训练程序
PERSIA 有四个模块,为推荐系统提供有效的自动缩放:
- 从 Hadoop、Kafka 和其他分布式存储系统中提取训练数据的数据加载器;
- 一组嵌入工作者使用优化算法从嵌入 PS 中提取嵌入参数。这些将嵌入梯度放回嵌入 PS 和聚合嵌入向量(可能)
- 嵌入参数服务器(简称嵌入PS)负责监督嵌入层中参数的存储和更新。
- 许多神经网络工作者运行神经网络神经网络的前向/后向传播。
研究团队针对三个开源基准(Taobao-Ad、Avazu-Ad 和 Criteo-Ad)以及 Kwai 的真实世界制作微视频推荐管道对 PERSIA 进行了测试。作为基线,使用了 XDL 和 PaddlePaddle,这两个前沿的分布式推荐训练系统。
与所有其他系统相比,建议的混合算法获得了更高的吞吐量。PERSIA 在 Kwai-video 基准测试中实现了比完全同步方法高 3.8 的吞吐量。即使模型大小增加到 100 万亿个参数,PERSIA 也表现出稳定的训练吞吐量,达到完全同步模式吞吐量的 2.6 倍。
PERSIA 已在 GitHub 上作为开源项目提供,其中包含在 Google 的云基础架构上进行设置的详细说明。
论文:
https://arxiv.org/pdf/2111.05897.pdf
Github:
https://github.com/persiaml/persia
相关文章
- Guava缓存工具类封装和使用
- The project description file (.project) for XXX is missing
- 我们如何做到不停机将ZooKeeper迁移到Kubernetes
- GitHub上励志的计算机自学教程:8个月,从中年Web前端到亚马逊百万年薪软件工程师
- 关于方法论和相关书籍
- 服!一个游戏搞定git命令行技能,工作流就在眼前的感觉真爽
- 在滴滴和头条干了 2 年开发,太真实…
- Mockito 的用法
- 一个人开始优秀的3种迹象
- sessionid 特性
- PowerMock框架讲解及使用
- git切换分支冲突解决-删除分支
- 获取指定月份前的第一天和最后一天及两个日期之间的月份列表
- Bash编译而成!超炫酷Linux资源监视器
- git远程版本回退
- git Please move or remove them before you can merge
- git 项目最常用命令总结
- 你所应该知道的HTTP
- List集合流处理类型小结
- 我操盘了几十万短视频代运营项目,总结了这些实战经验!