工程师 :“在你辉煌的时刻,让我为你唱首歌,我的好兄弟,心里有苦你对我说。” 计算机 :“哥啊,那我可就说了,我是真的苦啊,现在一个模型动辄好几亿参数,数据集也是大的吓人,兄弟我内存都快被掏空了,实在训练不动了呀。” 工程师 :“前方大路一起走,哪怕是河也一起过…” 计算机 :“你怎么还唱啊,兄弟我真的坚持不住了。” 工程师 :“担心啥,哥有的是办法救你,就这招吧——分布式训练之参数服务器!” 计算机 :“分布式训练?参数服务器?真的很好用吗?” 工程师 :“好吧,接下来我们就来看看什么是分布式训练参数服务器功能。” 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu 什么是分布式训练 何谓分布式训练呢?大家想想《火影忍者》中鸣人搓螺旋丸的方法,要知道鸣人一个人可搓不出来,他是怎么做的呢?对!影分身,再变出两个分身来帮他一起搓丸子,分布式训练其实用的是相同的原理。通俗的讲就是把原先交给一台计算机上完成的训练任务改为交由多台计算机完成。每台计算机上都会有一个或多个计算单元,例如CPU、GPU、AI芯片等,合作的计算机越多,参与训练的计算单元也就越多。可想而知那速度肯定是噌噌的! 什么是参数服务器 如图1 站长交易 所示,参数服务器是分布式训练领域普遍采用的编程架构,主要包含Server和Worker两个部分,其中Server负责参数的存储和更新,而Worker负责训练。 的参数服务器功能也是基于这种经典的架构进行设计和开发的,同时在这基础上进行了SGD(Stochastic Gradient Descent)算法的创新(Geometric Stochastic Gradient Descent)。当前经过大量的实验验证,最佳的方案是每台机器上启动Server和Worker两个进程,而一个Worker进程中可以包含多个用于训练的线程。 什么是参数服务器 如图1所示,参数服务器是分布式训练领域普遍采用的编程架构,主要包含Server和Worker两个部分,其中Server负责参数的存储和更新,而Worker负责训练。 的参数服务器功能也是基于这种经典的架构进行设计和开发的,同时在这基础上进行了SGD(Stochastic Gradient Descent)算法的创新(Geometric Stochastic Gradient Descent)。当前经过大量的实验验证,最佳的方案是每台机器上启动Server和Worker两个进程,而一个Worker进程中可以包含多个用于训练的线程。 什么是参数服务器 如图1所示,参数服务器是分布式训练领域普遍采用的编程架构,主要包含Server和Worker两个部分,其中Server负责参数的存储和更新,而Worker负责训练。 的参数服务器功能也是基于这种经典的架构进行设计和开发的,同时在这基础上进行了SGD(Stochastic Gradient Descent)算法的创新(Geometric Stochastic Gradient Descent)。当前经过大量的实验验证,最佳的方案是每台机器上启动Server和Worker两个进程,而一个Worker进程中可以包含多个用于训练的线程。 异步训练模式:如图3所示,在训练一个batch的数据后,Worker的每个线程会发送梯度给Server。而Server不会等待接收所有节点的梯度,而是直接基于已收到的梯度进行参数更新。异步训练去除了训练过程中的等待机制,训练速度得到了极大的提升,但是缺点也很明显,那就是Loss下降不稳定,容易发生抖动。建议在个性化推荐(召回、排序)、语义匹配等数据量大的场景使用。 尤其是推荐领域的点击率预估场景,该场景可能会出现千亿甚至万亿规模的稀疏特征,而稀疏参数也可以达到万亿数量级,且需要小时级或分钟级流式增量训练。如果使用异步训练模式,可以很好的满足该场景的online-learning需求。
十行代码让你的单机“影分身”,分布式训练速度快到飞起
来源:这里教程网
时间:2026-03-03 16:24:20
作者:
编辑推荐:
- 十行代码让你的单机“影分身”,分布式训练速度快到飞起03-03
- 【遇见Doris】基于Doris的有道精品课数据中台建设实践03-03
- 阿里面试官:说说操作系统微内核和Dubbo微内核?03-03
- impdp全库导入时报错ORA-39083,ORA-23327,ORA-31693,ORA-31640等03-03
- Oracle TX锁的处理03-03
- 使用11g客户端或pl/sql developer连接高版本Oracle 19c ORA-28040 ORA-0101703-03
- oracle 更改分区表数据 ora-1440203-03
- sqlplus / as sysdba 提示权限不足(ORA-01031)问题处理03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle TX锁的处理
Oracle TX锁的处理
26-03-03 - oracle 更改分区表数据 ora-14402
oracle 更改分区表数据 ora-14402
26-03-03 - ORACLE rman与RMAN-00054&ORA-09945
ORACLE rman与RMAN-00054&ORA-09945
26-03-03 - Oracle 12.2之后补丁RU RUR概要
Oracle 12.2之后补丁RU RUR概要
26-03-03 - unable to extend table SYS.AUD$ by 1024 in tablespace SYSTEM
- 【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
26-03-03 - 干货 | 设计师必备中国风配色卡,快来收藏
干货 | 设计师必备中国风配色卡,快来收藏
26-03-03 - Thread 1 cannot allocate new log
Thread 1 cannot allocate new log
26-03-03 - Oracle database 19c中获取当前数据库版本的方法
Oracle database 19c中获取当前数据库版本的方法
26-03-03 - Oracle如何删除表中重复记录保留第一条
Oracle如何删除表中重复记录保留第一条
26-03-03
