本发明属于分布式训练,具体涉及一种基于通信的大规模强化学习分布式训练系统的方法。
背景技术:
1、分布式强化学习是利用并行性实现大型复杂任务快速训练的有效方法,分布式强化学习中的大多数工作都是假设一个由多个执行器与同一个环境的多个副本交互组成的主要结构,以及一个存储和优化所有参与者共享的公共q函数参数或者策略参数的中央系统。分布式强化学习的研究重点是通过多个执行器在相同的时钟时间内,产生更多的样本来快速优化q函数参数。为此,研究人员研究了分布式强化学习的各种技术,例如,参数的异步更新、共享经验重放缓冲区、基于gpu的并行计算、基于gpu的模拟和基于策略算法的v-trace。
2、早期的深度强化学习拓展到大规模并行场景的经典工作之一,是deepmind团队在2015年提出的基于异步的分布式的强化学习训练框架gorila,该框架中每个节点都有actor和自己完整的环境副本,包括经验回放池,框架中包含一个学习者用来采样、计算梯度,其中梯度是需要同步到集中的参数服务器。
3、当前智能体训练框架下具有以下问题:环境采样效率及算法训练效率不高,cpu推理效率低,资源利用率低,带宽要求高以及智能体仿真环境与算法紧耦合等问题。
技术实现思路
1、发明目的:以解决大规模强化学习训练系统中,环境采样效率及算法训练效率不高,资源利用率低的问题,提供了一种基于通信的大规模强化学习分布式训练的方法及系统。
2、技术方案:一种基于通信的大规模强化学习分布式训练系统的方法,使用大规模强化学习分布式训练系统,所述方法包括如下步骤:
3、步骤1.1、所述大规模强化学习分布式训练系统包括多个智能体;所述智能体通过接收对环境的当前状态的特征化的观测值以及从预定动作集选择待执行的动作,来与仿真环境交互;
4、步骤1.2、所述智能体使用q神经网络拟合到待执行的动作;其中,所述q神经网络是深度神经网络,所述深度神经网络是基于多层神经网络模型;每一层神经网络模型均通过学习参数(通常是权重和偏置项)对输入数据进行计算,生成一个新的表示(也称为特征);所述表示随着层数的增加抽象程度越高(即这个表示随着层数的增加越来越抽象,从而允许网络学习到输入数据的更高级别的特征);最后一层神经网络模型的输出(通常是一个分类或回归的预测)由所有隐藏层的输出结合生成,环境观测值被深度神经网络接收作为输入,并将动作从所述深度神经网络中输出;其中,训练所述大规模强化学习分布式训练系统包括所述q神经网络的参数的值;
5、步骤1.3、所述大规模强化学习分布式训练系统还包括:多个学习器;每个学习器在相应的计算单元执行,每个学习器被配置成独立于其他学习器操作,学习器在专用硬件(如gpu或tpu)上集中完成神经网络推理,将模型参数和状态保持局部状态,来加快推理速度,避免数据传输瓶颈;学习器综合来自数百台机器的分布式推理输入;其中,每个学习器保持相应的初始q神经网络和目标q神经网络;
6、步骤1.4、多个学习器被进一步配置成包括下述的操作:从环境参数服务器服务器接收所述q神经网络的参数的当前值,使用该当前值,更新由所述学习器q神经网络副本的参数;学习器从相应的共享经验池选择经验元组;使用由所述学习器保持的所述学习器q神经网络副本以及由所述学习器保持的所述目标q神经网络副本;学习器使用学习器q神经网络副本和目标q神经网络副本根据经验元组计算梯度,以及将计算的梯度提供给所述环境参数服务器及相关环境。
7、在进一步的实施例中,还包括以下步骤:
8、步骤2.1、所述大规模强化学习分布式训练系统还包括:一个基于通信的中继器envproxy;每类仿真环境与训练算法提供一个中继器,其中所述中继器是用于连接客户端和服务器的设备,中继器envproxy接收仿真环境中的原始观测数据,并发送至共享经验池,等待算法接入后学习器进行调用;
9、步骤2.2、http/2通过在连接之上提供一个语义层:流;从而进一步扩展了持久连接的概念;
10、步骤2.3、grpc引入了三个新概念:通道、远程过程调用、以及消息;每个通道包括一个或多个rpc,每个rpc包括一个或多个消息;
11、步骤2.4、该中继器将学习器通过用q神经网络拟合到待执行的动作,以及将计算的梯度提供给所述中继器envproxy,由中继器envproxy将其传输至所述环境参数服务器。
12、在进一步的实施例中,还包括以下步骤:
13、步骤3.1、所述大规模强化学习分布式训练系统还包括:一个或多个执行器;每个执行器在相应的计算单元上执行;每个执行器被配置成独立于每个其他执行器操作,每个执行器与所述环境的相应的副本交互;每个执行器保持相应的执行器q神经网络副本,每个执行器被进一步配置成重复地执行包括下述的操作:
14、步骤3.2、从所述环境参数服务器从通信中继器envproxy接收所述q神经网络的所述参数的当前值,使用该当前值,更新由所述执行器保持的所述执行器q神经网络副本的所述参数值;接收对与所述执行器交互的环境副本的当前状态进行特征化的观测值;响应于所述观测值,使用由所述执行器保持的所述执行器q神经网络副本,来选择待执行的动作;响应于被执行的动作和对与所述执行器交互的所述环境副本的下一状态进行特征化的下一观测值,接收回报;生成经验元组,所述经验元组包括所述当前观测值、所选择的动作、所述回报和所述下一观测值;以及将所述经验元组存储在相应的共享经验池中。
15、在进一步的实施例中,还包括以下步骤:
16、所述大规模强化学习分布式训练系统还包括:环境参数服务器;所述环境参数服务器被配置成重复地执行包括下述的操作:
17、从所述多个学习器接收一系列梯度;使用所述梯度,计算对所述q神经网络的所述参数值的更新;使用所计算的更新,来更新所述q神经网络的所述参数值;以及将经更新的环境参数服务器值提供给一个或多个执行器和多个学习器。
18、在进一步的实施例中,还包括以下步骤:
19、所述环境参数服务器包括多个环境参数服务器分片;其中,每个分片被配置成保持所述q神经网络的所述参数的相应不相交分区的值;每个分片被配置成相对于每个其他分片异步地操作。
20、在进一步的实施例中,所述参数服务器被配置成执行的操作进一步包括以下步骤:
21、确定是否满足用于更新由所述学习器保持的所述目标q神经网络副本的所述参数的标准;当满足所述标准时,将指示经更新的参数值将被用来更新所述目标q神经网络副本的所述参数的数据提供给所述学习器。
22、在进一步的实施例中,每个所述学习器被配置成执行的操作进一步包括以下步骤:
23、接收指示经更新的参数值将被用来更新由所述学习器保持的所述目标q神经网络副本的所述参数的数据,以及使用经更新的参数值来更新由所述学习器保持的所述目标q神经网络副本的所述参数。
24、在进一步的实施例中,还包括以下步骤:
25、每个所述学习器都与一个相应的执行器和回放存储器绑定在一起;学习器、执行器和回放存储器的每个策略经验池都被实现在相应的计算单元上;
26、每个策略经验池都被配置成能够独立于其他策略经验池进行操作;对于每个策略经验池,相应的学习器会从由该策略经验池中的执行器生成的经验元组中进行选择。
27、在进一步的实施例中,还包括以下步骤:
28、对于每个策略经验池,所述策略经验池中的执行器保持的执行器q神经网络副本的参数当前值与所述策略经验池中的学习器保持的学习器q神经网络副本的参数当前值是同步的。
29、在进一步的实施例中,其特征在于,还包括以下步骤:
30、相应于观测状态,响应执行器q神经网络副本的选择以执行动作的操作包括:确定来自预定动作集中的以下动作:当作为执行器q神经网络副本的输入与当前观测状态一起提供时,该动作将生成最大的执行器q神经网络副本输出。
31、在进一步的实施例中,还包括以下步骤:
32、在所述大规模强化学习分布式训练系统中,响应于观测状态并使用由执行器保持的执行器q神经网络副本选择待执行的动作,进一步包括以下操作:以概率ε从预定动作集中选择随机动作;以概率1-ε选择确定的动作,该动作生成执行器q神经网络副本输出中的最大值。
33、在进一步的实施例中,使用由学习器保持的学习器q神经网络副本和目标q神经网络副本,根据经验元组计算梯度包括以下操作:
34、使用学习器q神经网络副本处理来自经验元组的动作和当前观测状态,以确定学习器q神经网络副本的输出;
35、使用目标q神经网络副本确定最大目标q神经网络副本输出,通过处理预定动作集中的任何动作与来自经验元组的下一观测状态来生成最大目标q神经网络副本输出;
36、使用学习器q神经网络副本输出、最大目标q神经网络副本输出和来自经验元组的共享经验池中的buffer计算梯度。
37、具体说明如下:所述方法包括如下步骤:
38、步骤s1、环境服务器中的环境接口通过专用软件开发工具包,使用grpc流和通信中继器envproxy建立双向连接,该中继器将学习器通过用q神经网络拟合到待执行的动作,以及将计算的梯度提供给所述中继器envproxy,由中继器envproxy将其传输至所述强化学习算法服务端中对应算法的学习器。
39、步骤s2、每个环境服务器中,在强化学习算法服务端,会创建一个执行器actor,每个执行器actor利用通信中继器envproxy,将学习器learner训练后的最终策略调用,并将该最终策略利用通信中继器envproxy传输给环境服务器。
40、步骤s3、中继器基于grpc框架,其中grpc框架为具有异步流rpc,grpc是基于http2的,其中http/2旨在解决其前身的一些可扩展性问题,在许多方面改进了http/1.1的设计,最重要的是提供了连接上的语义映射;创建http连接的开销很大;必须建立tcp连接、使用tls保护该连接、交换标头和设置等;http/1.1通过将连接视为长期存在的、可重用的对象来简化此过程;http/1.1连接保持空闲,以便可以通过现有的空闲连接发送到同一目的地的新请求;虽然连接重用缓解了这个问题,但一个连接一次只能处理一个请求——它们是1:1耦合的;如果要发送一条大消息,新请求必须要么等待它完成(导致队列阻塞),要么更频繁地为启动另一个连接付出代价。
41、步骤s4、执行器actor采样完环境交互后的一局episode数据后,通过学习器leaner的store接口将数据存入共享经验池中。
42、步骤s5、学习器learner从共享经验池中获取所需要的训练数据;学习器可以在gpu或tpu等专用硬件上集中完成神经网络推理,通过确保将模型参数和状态保持局部状态来加快推理速度,避免数据传输瓶颈,学习器综合来自书摆台机器的分布式推理输入,其中,所述每个学习器保持相应的初始q神经网络和目标q神经网络。
43、步骤s6、学习器learner在进行算法训练的时候返回一个feedback反馈接口,专用软件开发工具包通过调用所有的执行器actor的学习器learner反馈接口,将相应通知给执行器actor。
44、在另一个技术方案中,提供了一种大规模强化学习分布式训练系统,所述系统包括智能体;所述智能体通过接收对环境的当前状态进行特征化的观测状态和从预定动作集选择待执行的动作来与环境交互;
45、所述智能体使用q神经网络选择待执行的动作,该q神经网络是一个深度神经网络,q神经网络将观测状态和动作作为输入,并根据一组参数生成神经网络输出;训练该大规模强化学习分布式训练系统基于调整q神经网络的参数集的值。
46、有益效果:
47、(1)本发明中所述大规模强化学习分布式训练系统包括通信中继器,所述通信中继器通过接收对多个并行环境的当前状态进行特征化的观测值,将并行环境观测值批处理后传送至共享经验池,学习器从共享经验池中获取小批量数据进行学习交互后,其中所述执行者使用q策略网络选择执从预定动作集选择待执行的动作,通过通信中继来与所述环境交互,其中所述q策略网络是深度神经网络,所述深度神经网络被配置成将观测值和动作接收为输入并且根据数据集,从所述输入生成神经网络输出;所述大规模强化学习分布式训练系统,通过多环境并行采样,利用固定资源预算进行异步并行训练,兼容各个强化学习仿真环境、实验环境,有效缓解了强化学习在单机环境下采样效率不高、训练速度慢的问题。
48、(2)本发明针对现代加速器进行优化的架构,提高数据效率会扩展模型规模,并通过使用更大的模型来提高数据效率;以元原生为基础搭建一个智能体分布式训练系统,基于并行性训练方法实现大型复杂任务下智能体的快速训练;设计实现一个可扩展的多智能体训练架构,将环境与算法解耦,搭建分布式采样平台,以智能体的方式连接环境与算法来调度训练流程,提高了环境采样效率以及算法训练效率,并且提升了资源利用率以及系统稳定性,使得训练系统更加轻量化。