面向超实时仿真环境的分布式强化学习训练方法及装置转让专利
申请号 : CN202010642373.4
文献号 : CN111860777B
文献日 : 2021-07-02
发明人 : 徐新海 , 刘逊韵 , 李渊 , 李晟泽 , 李豪 , 张帅
申请人 : 中国人民解放军军事科学院战争研究院
摘要 :
权利要求 :
1.一种面向超实时仿真环境的分布式强化学习训练方法,其特征在于,所述方法应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿真环境和行动器组成的训练单元;
相应地,所述方法包括:
将所述超实时仿真环境与所述行动器部署在同一台虚拟机上;
控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息;
控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境;
所述动作指令最晚反馈时间限制信息包括:当前仿真时间t、当前仿真加速比s以及动作指令最晚允许执行时间d;相应地,控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
控制所述行动器根据所述动作指令最晚反馈时间限制信息确定所述行动器用于决策的墙钟时间w=(d‑t)/s;
控制所述行动器判断所述动作指令是否在所述墙钟时间w内发送至所述超实时仿真环境。
2.根据权利要求1所述的面向超实时仿真环境的分布式强化学习训练方法,其特征在于,控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境,包括:
控制所述行动器生成主线程和计时线程;
控制所述主线程执行根据所述环境观察输出动作决策并将所述动作决策转换为动作指令以及向所述超实时仿真环境发送动作指令的处理过程;
控制所述计时线程执行所述墙钟时间的倒计时处理过程;
判断所述计时线程是否早于所述主线程结束,若是,则在所述计时线程的结束时刻控制所述行动器暂停所述超实时仿真环境的运行直至所述主线程将所述动作指令发送至所述超实时仿真环境。
3.根据权利要求1所述的面向超实时仿真环境的分布式强化学习训练方法,其特征在于,所述系统还包括:参数服务器和私有云;所述训练单元还包括:学习器和回放存储器;
相应地,将所述超实时仿真环境与所述行动器部署在同一台虚拟机上,包括:向OpenStack请求虚拟化资源,为所述参数服务器配备一台虚拟机;
按照每个训练单元配备两台虚拟机的比例,向OpenStack请求虚拟化资源,使得所述超实时仿真环境和所述行动器共享一台虚拟机,以及,使得所述学习器和所述回放存储器共享一台虚拟机;
为与所述参数服务器对应的虚拟机、与所述超实时仿真环境和所述行动器对应的虚拟机、以及与所述学习器和所述回放存储器对应的虚拟机,创建集群虚拟网络并生成访问密钥对;
设置安全组规则,并允许通过ssh端口访问所述集群虚拟网络;
为与所述参数服务器对应的虚拟机加载“参数服务器镜像”,为与所述超实时仿真环境和所述行动器对应的虚拟机加载超实时仿真环境‑行动器镜像,以及,为与所述学习器和所述回放存储器对应的虚拟机加载回放存储器‑学习器镜像,完成集群部署。
4.根据权利要求1所述的面向超实时仿真环境的分布式强化学习训练方法,其特征在于,所述超实时仿真环境采用编译型语言编写,所述行动器采用解释型语言编写;相应地,控制所述超实时仿真环境采用ICE RPC向所述行动器发送环境观察,以及,控制所述行动器采用ICE RPC向所述超实时仿真环境发送动作指令。
5.根据权利要求3所述的面向超实时仿真环境的分布式强化学习训练方法,其特征在于,还包括:
获取所述行动器与所述超实时仿真环境交互产生的经验元组,并将所述经验元组以时序数据的方式存放在所述回放存储器中;其中,所述经验元组包括:环境观察、响应所述环境观察得到的动作指令、执行所述动作指令得到的回报,以及,对下一时刻状态的环境观察。
6.根据权利要求5所述的面向超实时仿真环境的分布式强化学习训练方法,其特征在于,所述系统包括多个训练单元;相应地,所述方法还包括:控制每个训练单元中的学习器从相应的回放存储器中解析预设时间段内产生的经验元组序列,并控制学习器计算用于每个经验元组的梯度,以及根据随机梯度下降法修改学习器的Q网络参数;
控制每个训练单元中的学习器将相应学习器的Q网络参数通过网络发送给所述参数服务器,并使得所述参数服务器综合各个训练单元中学习器的Q网络参数更新每个训练单元中的行动器和学习器。
7.一种面向超实时仿真环境的分布式强化学习训练装置,其特征在于,所述装置应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿真环境和行动器组成的训练单元;
相应地,所述装置包括:
耦合部署单元,用于将所述超实时仿真环境与所述行动器部署在同一台虚拟机上;
时延报告单元,用于控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息;
进度控制单元,用于控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境;
所述动作指令最晚反馈时间限制信息包括:当前仿真时间t、当前仿真加速比s以及动作指令最晚允许执行时间d;相应地,控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
控制所述行动器根据所述动作指令最晚反馈时间限制信息确定所述行动器用于决策的墙钟时间w=(d‑t)/s;
控制所述行动器判断所述动作指令是否在所述墙钟时间w内发送至所述超实时仿真环境。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述面向超实时仿真环境的分布式强化学习训练方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述面向超实时仿真环境的分布式强化学习训练方法的步骤。
说明书 :
面向超实时仿真环境的分布式强化学习训练方法及装置
技术领域
背景技术
学习技术真正应用在现实场景中,解决如自然语言处理、机器人控制、资源调度、性能优化、
仿真模拟、游戏博弈等领域的复杂问题。
日趋缓慢,已经远远无法满足深度强化学习大规模试错的要求。因此系统整体算力的提高
必须借助于分布式集群与分布式强化学习框架,通过分布式计算的方式来满足深度强化学
习训练飞速增长的性能需求。另一方面,目前的深度强化学习技术还不能普及到考虑逻辑
推理与情感分析的复杂现实场景,因此拥有一个适当抽象的仿真环境是开展强化学习训练
的重要基础。仿真环境负责为智能体构建一个虚拟的世界,为其设定具体任务目标,并为不
同的试验行为提供反馈以及奖励机制等等。
景下,实体需在数秒钟的物理时间内做出决策与动作,那运行在超实时仿真环境中的智能
体则需要在毫秒级的延时内从环境获取观察,做出决策,并下达相应动作指令。现有的分布
式强化学习框架的决策流程耗时长,获取观察、奖励以及下达动作指令的延迟较高。这往往
导致动作指令到达环境后,环境状态与指令执行的上下文已经发生了重大改变,此时继续
执行过时的动作指令将无法实现预期的效果。
发明内容
的延迟,从而应用于超实时仿真环境。
成的训练单元;
否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器
暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境。
晚允许执行时间d;相应地,控制所述行动器根据所述动作指令最晚反馈时间限制信息判断
所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令
最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器暂停所述超实
时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境,包括:
至所述超实时仿真环境。
器共享一台虚拟机;
问密钥对;
和所述回放存储器对应的虚拟机加载回放存储器‑学习器镜像,完成集群部署。
超实时仿真环境采用ICE RPC向所述行动器发送环境观察,以及,控制所述行动器采用ICE
RPC向所述超实时仿真环境发送动作指令。
述环境观察得到的动作指令、执行所述动作指令得到的回报,以及,对下一时刻状态的环境
观察。
改学习器的Q网络参数;
单元中的行动器和学习器。
组成的训练单元;
断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,
则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所
述超实时仿真环境。
实时仿真环境的分布式强化学习训练方法的步骤。
学习训练方法的步骤。
动器发送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动
器根据环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指
令最晚反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实
时仿真环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述
超实时仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令
的延迟,避免因过长决策延时导致下达动作指令失效。
附图说明
明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根
据这些附图获得其他的附图。
具体实施方式
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
习训练方法,所述方法应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿
真环境和行动器组成的训练单元;
“OpenStack”)、以及一个或多个由超实时仿真环境、行动器、学习器以及回放存储器组成的
训练单元。
持续获取特征化环境观察,并且将该观察作为输入交给行动器的深度神经网络,之后从行
动器的深度神经网络中得到动作决策输出,并转化为动作指令作用到仿真环境中。
虚拟机上,为高频率且对延迟敏感的交互操作省去网络传输开销。相较于传统方法中分布
式强化学习框架未考虑低延迟通信所带来的训练任务部署需求,将超实时仿真环境与行动
器部署在不同一台虚拟机上,本发明实施例减小了超实时仿真环境与行动器之间的网络传
输开销,从而可以适用于仿真时钟显著快于实际物理时钟的超实时仿真环境。
供行动器计算决策的墙钟时间的附加信息戳,附加信息戳中包含有动作指令最晚反馈时间
限制信息。
作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所
述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时
仿真环境。
前环境观察,使用深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时可
能超过响应延迟。因此行动器必须控制仿真环境的运行以避免动作指令失效,即通过控制
行动器根据环境观察输出动作决策,并将动作决策转换为动作指令,同时控制行动器根据
动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内
发送至所述超实时仿真环境,一旦行动器未能在动作指令最晚反馈时间限制内下达相应的
动作指令给超实时仿真环境,那么该动作指令就将面临失效的风险,因此,本发明实施例中
通过控制行动器暂停超实时仿真环境的运行,直至行动器将动作指令发送至超实时仿真环
境。
送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动器根据
环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指令最晚
反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实时仿真
环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述超实时
仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令的延迟,
避免因过长决策延时导致下达动作指令失效。
制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指
令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
与当前所处状态提供指令的最晚允许下达时间d,因此,行动器可以用来决策的墙钟时间
为:w=(d‑t)/s。
令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至
所述超实时仿真环境,若否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动
器将所述动作指令发送至所述超实时仿真环境,包括:
至所述超实时仿真环境。
境观察,使用行动器深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时
可能超过响应延迟。因此,行动器必须主动暂停超实时仿真环境的运行以避免动作指令失
效,同时行动器暂停超实时仿真环境应尽可能晚地介入,以避免对超实时仿真的性能造成
过多影响。
作指令以及向超实时仿真环境发送动作指令的处理过程,控制计时线程执行墙钟时间的倒
计时处理过程,即将墙钟时间作为参数输入计时线程进行倒计时,若计时线程结束即倒计
时结束时行动器仍未向超实时仿真环境发送动作指令,则在计时线程的结束时刻控制行动
器调用ice接口暂停超实时仿真环境的运行,直至主线程将动作指令发送至超实时仿真环
境后,行动器再调用ice接口运行超实时仿真环境。
以避免因过长时间决策延时导致下达动作指令失效。
器共享一台虚拟机;
问密钥对;
和所述回放存储器对应的虚拟机加载回放存储器‑学习器镜像,完成集群部署。
“Ansible”)实现,其中OpenStack提供集群虚拟化与镜像支持,Ansible提供脚本部署自动
化工具。其工作流程如图4所示。训练任务的自动化耦合部署在有新的强化学习任务提交时
运行,首先解析用户指令获取训练单元个数,并按照每个训练单元配备两台虚拟机的比例
向OpenStack请求虚拟化资源。其次创建该集群的虚拟网络,生成访问密钥对,之后设置安
全组规则,允许通过22号(ssh)端口访问集群。最后,依次为参数服务器虚拟机加载“参数服
务器镜像”,为每个训练单元加载“超实时仿真环境‑行动器镜像”以及“回放存储‑学习器镜
像”,完成集群部署。
面上最大限度地降低超实时仿真环境与行动器的通信开销。
与行动器的通信开销。
RPC向所述行动器发送环境观察,以及,控制所述行动器采用ICE RPC向所述超实时仿真环
境发送动作指令。
过程需解决跨语言程序的高性能通信问题。考虑仿真性能因素,超实时仿真环境通常采用
C/C++等编译型语言编写;而考虑开发便捷性与代码兼容性因素,行动器内的强化学习通常
由Python、Perl等解释型语言编写。为满足跨语言、低延迟的通信要求,本发明实施例采用
一种远程过程调用库ICE RPC,实现超实时仿真环境与行动器之间的观察上报与动作指令
下达,Communicator.ice定义了动作指令最晚反馈时间限制信息数据处理函数的接口,
server代码中定义了接口的实现。行动器作为函数调用的客户端,仅需要编写Client.py,
用python代码即可实现观察的获取或指令的下达。其中,超实时仿真环境和行动器之间采
用ICE RPC进行交互的详细处理过程如下:
程代理,获取调用接口指针。若接口指针不为null,则表示远程调用链接已建立,行动器可
以使用调用接口指针,通过调用本地函数类似的方式调用超实时仿真环境所运行的远程函
数。
求适配器使用缺省的协议(TCP/IP端口为10000或其他空闲端口)。接着,为Communicator接
口创建实例化一个Comunicator ICE对象,并将该对象添加至EnvAdapter适配器中。对象添
加完毕后,激活适配器,在服务退出之前,该适配器会一直持续监听行动器请求并完成相应
处理。
的速度要求,避免下达动作指令的延迟而导致动作指令失效。
中;其中,所述经验元组包括:环境观察、响应所述环境观察得到的动作指令、执行所述动作
指令得到的回报,以及,对下一时刻状态的环境观察。
察;(2)响应当前观察所执行的动作;(3)执行该动作所得到的回报;(4)对环境下一时刻状
态的特征化观察。
放存储器中,从而可以更新并维护学习器的Q网络参数进行训练。
改学习器的Q网络参数;
单元中的行动器和学习器。
机梯度下降法来修改学习器所维护的深度神经网络参数(即Q网络参数)。每隔一定时间,学
习器将其所维护的深度神经网络参数通过网络发送给参数服务器。参数服务器在接收到所
有学习器的深度神经网络参数后实施按位平均操作,其中,学习器的深度神经网络参数可
理解为一个多维矩阵,按位平均操作即将多个多维矩阵的相同位置元素取出来求平均,从
而得到一个新的深度神经网络参数。参数服务器再将新的深度神经网络参数发送给各个训
练单元内的行动器与学习器,命令其更新所维护的深度神经网络参数。训练过程按此流程
持续运行,直至行动器与学习器的深度神经网络收敛即参数更新不再显著,或用户主动终
止训练。
实时仿真环境的分布式强化学习训练方法可相互对应参照。
习训练装置,所述装置应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿
真环境和行动器组成的训练单元;
训练单元。
持续获取特征化环境观察,并且将该观察作为输入交给行动器的深度神经网络,之后从行
动器的深度神经网络中得到动作决策输出,并转化为动作指令作用到仿真环境中。
定部署在同一台虚拟机上,为高频率且对延迟敏感的交互操作省去网络传输开销。相较于
传统方法中分布式强化学习框架未考虑低延迟通信所带来的训练任务部署需求,将超实时
仿真环境与行动器部署在不同一台虚拟机上,本发明实施例减小了超实时仿真环境与行动
器之间的网络传输开销,从而可以适用于仿真时钟显著快于实际物理时钟的超实时仿真环
境。
环境观察中有可以供行动器计算决策的墙钟时间的附加信息戳,附加信息戳中包含有动作
指令最晚反馈时间限制信息。
息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若
否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至
所述超实时仿真环境。
前环境观察,使用深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时可
能超过响应延迟。因此行动器必须控制仿真环境的运行以避免动作指令失效,即进度控制
单元630通过控制行动器根据环境观察输出动作决策,并将动作决策转换为动作指令,同时
控制行动器根据动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚
反馈时间限制内发送至所述超实时仿真环境,一旦行动器未能在动作指令最晚反馈时间限
制内下达相应的动作指令给超实时仿真环境,那么该动作指令就将面临失效的风险,因此,
本发明实施例中通过控制行动器暂停超实时仿真环境的运行,直至行动器将动作指令发送
至超实时仿真环境。
送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动器根据
环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指令最晚
反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实时仿真
环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述超实时
仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令的延迟,
避免因过长决策延时导致下达动作指令失效。
(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740
完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行面向超实时仿真
环境的分布式强化学习训练方法。
发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以
使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施
例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,
Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种
可以存储程序代码的介质。
述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的面向超实时仿真
环境的分布式强化学习训练方法。
环境的分布式强化学习训练方法。
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其
中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性
的劳动的情况下,即可以理解并实施。
述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该
计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指
令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施
例或者实施例的某些部分所述的方法。
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。