当前位置: 首页 > 专利查询>天津大学专利>正文

一种提高强化学习系统吞吐量的方法技术方案

技术编号:38210820 阅读:19 留言:0更新日期:2023-07-21 17:02
本发明专利技术公开了一种提高强化学习系统吞吐量的方法,包括以下步骤:启动RL训练任务,协调器根据任务配置和硬件信息推导出最佳全局配置,然后启动流水线采样器、量化器和训练器;采样器进行基于组的并行流水线采样并收集一定数量的轨迹;轨迹被消息代理收集并分布到若干个训练器中,负责消息序列化和传播;训练器和预测器使用接收到的轨迹来训练和评估模型,并将更新后的模型权重发送到量化器进行权重量化;量化器通过消息代理向每个采样器中的代理发送量化的模型权重,以进行下一轮采样和训练。本发明专利技术可全面地提高强化学习系统的吞吐量,能够及时地发现和识别采样、训练和通信阶段的瓶颈,并采用协同优化技术提高了吞吐量,吞吐量高达90.6%。吞吐量高达90.6%。吞吐量高达90.6%。

【技术实现步骤摘要】
一种提高强化学习系统吞吐量的方法


[0001]本专利技术属于AI系统领域,特别涉及一种提高强化学习系统吞吐量的方法。

技术介绍

[0002]强化学习(RL)算法在各个领域都取得了巨大的飞跃,包括围棋、对话系统、自动驾驶和机器人操作。然而,这样的好处是有代价的。与典型的深度学习模型的训练数据是事先准备好的不同,强化学习(RL)模型是使用与仿真环境实时交互过程中生成的轨迹数据进行训练的,这可能需要几天或几周的时间才能有足够的样本使训练的模型收敛,即使是在数百个cpu和gpu上进行,例如,星际争霸2游戏中的虚拟角色AlphaStar依赖于A3C模型,需要使用3072个TPU核和50400个CPU核训练44天才能达到超过人类的能力。同样,在自动驾驶中,如果使用PPO算法训练一个高质量的驾驶策略,在驾驶场景中输出最优的转向命令,需要2个特斯拉K40 gpu来训练大约10天。
[0003]因此,提高强化学习系统的吞吐量(即单位时间内处理的样本数量)和RL模型的收敛速度是至关重要的。现有的研究工作主要集中在从以下两个方面提高强化学习系统的吞吐量:(1)算法的创新。例如,使用异步通信而不是同步通信,异步通信可以通过减少训练节点和采样节点之间的等待时间来提高吞吐量;(2)资源效率优化。也就是说,在有限的资源上部署更多的采样端、训练端或数据传输任务,而不会降低性能。资源可以包括网络、cpu和gpu等。
[0004]虽然现有的研究工作已经显著提高了RL系统的吞吐量,但它们的应用场景非常有限。例如,低精度RL只能在网络资源成为瓶颈时提高吞吐量;sample factory和GA3C分别在采样端和训练端成为瓶颈时生效。但在RL训练中的经验表明,不同的环境下,瓶颈可能会出现在若干个地方。例如,IMPALA任务与CartPole环境交互时的吞吐量瓶颈发生在训练端,而在与Atari环境交互时则出现在采样端上。因此,仅通过局部优化技术很难实现高吞吐量。

技术实现思路

[0005]针对上述现有技术存在的问题,本专利技术的目的在于提供了。
[0006]为了实现上述目的,本专利技术采用了以下技术方案:
[0007]一种提高强化学习系统吞吐量的方法,包括以下步骤:
[0008]S1、启动RL训练任务,协调器首先根据任务配置和硬件信息推导出最佳全局配置,然后启动流水线采样器、量化器和训练器;
[0009]S2、采样器进行基于组的并行流水线采样并收集一定数量的轨迹;
[0010]S3、所述一定数量的轨迹被消息代理收集并分布到若干个训练器中,负责消息序列化和传播;
[0011]S4、若干个训练器和预测器使用接收到的轨迹来训练和评估模型,并将更新后的模型权重发送到量化器进行权重量化;
[0012]S5、量化器通过消息代理向每个采样器中的代理发送量化的模型权重,以进行下
一轮采样和训练。
[0013]优选地,所述步骤S2中,采样器进行基于组的并行流水线采样的具体步骤为:采样器将推理和环境分成m个组,在每个组中,存在一个推理和n个环境,进行每个推理的批量处理,m个组部署在若干个CPU核心上,并以单个流水线方式运行。
[0014]优选地,所述步骤S3中,单个流水线方式运行的具体过程为:设E
A
={A0,A1,A2},E
B
={B0,B1,B2}和E
C
={C0,C1,C2}为三个组,首先按照上一轮推理的决策,执行E
A
中的环境进程;完成后,将数据交给E
A
中的推理进程处理,此时,E
A
中环境进程占用的CPU将被释放,并开始执行E
B
中的环境进程,循环进行直到E
C
中的环境进程完成执行,同时,E
A
的推理完成,E
A
中所有环境进程再次开始执行,用S
pip
表示流水线采样的吞吐量表示如下:
[0015][0016]其中,表示n个并行环境的采样时间。
[0017]优选地,所述步骤S3中,若干个训练器使用接收到的轨迹训练模型的具体过程为:采用all

reduce架构,将接收到的轨迹数据分配到若干个gpu中;用t
trn
表示在all

reduce架构下在单个GPU上运行一个训练步骤的总时间,假设训练的批次大小为b,则t
trn
表示为:
[0018][0019]其中,t
f
表示处理一个mini

batch的前向传播时间;t
b
表示后向传播时间;d表示训练模型的大小;g表示gpu的数量,w表示gpu之间的带宽;根据all

reduce通信训练架构,训练过程中的通信由parameter aggregation和parameter distribution组成,模型训练时的总通信时间为2d(g

1)/gw,因此,训练端的训练吞吐量S
l
为:
[0020][0021]进而推导出变量b:
[0022]b=t
b
+2d(g

1)/(gw))/(g/s

t
f
)
[0023]在训练过程中,GPU节点之间会周期性地进行权重同步,当所有训练任务完成后,最终的权重将被发送给采样端进行下一次迭代采样。
[0024]优选地,所述一定数量的轨迹从采样器传输到训练器过程中,采用量化器进行模型量化,具体过程为:在不显著影响模型精度的情况下,将机器学习模型的参数精度从高精度降低到低精度,以促进更快的计算,更低的内存使用和更低的网络带宽需求,用q表示量化器使用的精度,具体表示如下:
[0025]q∈{fp32,fp16,int8}
[0026]用S
n
表示网络的吞吐量:
[0027][0028]其中,d
q
表示量化后的模型大小,e表示训练器和采样器之间的网络带宽;通过添加一个负责压缩模型的interval模块来实现模型量化,并使用并行量化的方式加速压缩过
程;当训练端生成模型时,模型将被放入输入队列,并由空闲的量化进程进一步量化。在压缩过程中,如果收到另一个模型,则新模型无需等待前一个进程完成,而是直接激活另一个可用的空闲进程;最后,采样器从输出队列中读取量化模型。
[0029]本专利技术具备如下有益效果:
[0030]本专利技术构建了HRL系统,并提供了基于HRL系统的提高强化学习系统吞吐量的方法,该方法可以全面地提高强化学习系统的吞吐量,能够及时地发现和识别采样、训练和通信阶段的瓶颈,并采用有效的协同优化技术来提高吞吐量。与现有工作相比,构建的HRL系统具有三个优势:一是全面性,能够解决各种瓶颈问题;二是高效性,能够将训练时间缩短90%;三是可扩展性,可以与各种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高强化学习系统吞吐量的方法,其特征在于,包括以下步骤:S1、启动RL训练任务,协调器首先根据任务配置和硬件信息推导出最佳全局配置,然后启动流水线采样器、量化器和训练器;S2、采样器进行基于组的并行流水线采样并收集一定数量的轨迹;S3、所述一定数量的轨迹被消息代理收集并传输到若干个训练器中,负责消息序列化和传播;S4、若干个训练器和预测器使用接收到的轨迹来训练和评估模型,并将更新后的模型权重发送到量化器进行权重量化;S5、量化器通过消息代理向每个采样器中的代理发送量化的模型权重,以进行下一轮采样和训练。2.根据权利要求1所述的提高强化学习系统吞吐量的方法,其特征在于,所述步骤S2中,采样器进行基于组的并行流水线采样的具体步骤为:采样器将推理和环境分成m个组,在每个组中,存在一个推理和n个环境,进行每个推理的批量处理,m个组部署在若干个CPU核心上,并以单个流水线方式运行。3.根据权利要求2所述的提高强化学习系统吞吐量的方法,其特征在于,所述步骤S3中,单个流水线方式运行的具体过程为:设E
A
={A0,A1,A2},E
B
={B0,B1,B2}和E
C
={C0,C1,C2}为三个组,首先按照上一轮推理的决策,执行E
A
中的环境进程;完成后,将数据交给E
A
中的推理进程处理,此时,E
A
中环境进程占用的CPU将被释放,并开始执行E
B
中的环境进程,循环进行直到E
C
中的环境进程完成执行,同时,E
A
的推理完成,E
A
中所有环境进程再次开始执行,用S
pip
表示流水线采样的吞吐量表示如下:其中,表示n个并行环境的采样时间。4.根据权利要求1所述的提高强化学习系统吞吐量的方法,其特征在于,所述步骤S3中,若干个训练器使用接收到的轨迹训练模型的具体过程为:采用all

reduce架构,将接收到的轨迹数...

【专利技术属性】
技术研发人员:赵来平辛宇嵩赵志新代心安胡一涛李克秋
申请(专利权)人:天津大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1