面向超实时仿真环境的分布式强化学习训练方法及装置转让专利

申请号 : CN202010642373.4

文献号 : CN111860777B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐新海刘逊韵李渊李晟泽李豪张帅

申请人 : 中国人民解放军军事科学院战争研究院

摘要 :

本发明实施例提供一种面向超实时仿真环境的分布式强化学习训练方法及装置,所述方法包括:通过将超实时仿真环境与行动器部署在同一台虚拟机上,并控制超实时仿真环境在向所述行动器发送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动器根据环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指令最晚反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实时仿真环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述超实时仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,避免因过长决策延时导致下达动作指令失效。

权利要求 :

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任一项所述面向超实时仿真环境的分布式强化学习训练方法的步骤。

说明书 :

面向超实时仿真环境的分布式强化学习训练方法及装置

技术领域

[0001] 本发明涉及分布式强化学习技术领域,尤其涉及一种面向超实时仿真环境的分布式强化学习训练方法及装置。

背景技术

[0002] 深度强化学习(Deep Reinforcement Learning,简称“DRL”)通过使用深层网络来表示估值函数、策略和模型,实现了由神经网络驱动的端到端学习。深度强化学习使得强化
学习技术真正应用在现实场景中,解决如自然语言处理、机器人控制、资源调度、性能优化、
仿真模拟、游戏博弈等领域的复杂问题。
[0003] 然而,日益复杂的应用问题也极大地增加了深度强化学习的训练难度,导致计算资源消耗量的急速增长。受制于功耗与工艺进步的限制,单台计算设备的CPU、GPU性能提升
日趋缓慢,已经远远无法满足深度强化学习大规模试错的要求。因此系统整体算力的提高
必须借助于分布式集群与分布式强化学习框架,通过分布式计算的方式来满足深度强化学
习训练飞速增长的性能需求。另一方面,目前的深度强化学习技术还不能普及到考虑逻辑
推理与情感分析的复杂现实场景,因此拥有一个适当抽象的仿真环境是开展强化学习训练
的重要基础。仿真环境负责为智能体构建一个虚拟的世界,为其设定具体任务目标,并为不
同的试验行为提供反馈以及奖励机制等等。
[0004] 然而,当深度强化学习应用于超实时仿真环境中时,仿真时钟显著快于实际物理时钟,即模型仿真的解算速度可快于实际系统运行的速度数十倍甚至数百倍。若在现实场
景下,实体需在数秒钟的物理时间内做出决策与动作,那运行在超实时仿真环境中的智能
体则需要在毫秒级的延时内从环境获取观察,做出决策,并下达相应动作指令。现有的分布
式强化学习框架的决策流程耗时长,获取观察、奖励以及下达动作指令的延迟较高。这往往
导致动作指令到达环境后,环境状态与指令执行的上下文已经发生了重大改变,此时继续
执行过时的动作指令将无法实现预期的效果。
[0005] 因此,如何提出一种方法,能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令的延迟,从而应用于超实时仿真环境,成为亟待解决的问题。

发明内容

[0006] 本发明实施例提供一种面向超实时仿真环境的分布式强化学习训练方法及装置,用以解决现有技术中分布式强化学习框架的决策流程时长的缺陷,实现降低获取动作指令
的延迟,从而应用于超实时仿真环境。
[0007] 本发明实施例提供一种面向超实时仿真环境的分布式强化学习训练方法,所述方法应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿真环境和行动器组
成的训练单元;
[0008] 相应地,所述方法包括:
[0009] 将所述超实时仿真环境与所述行动器部署在同一台虚拟机上;
[0010] 控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息;
[0011] 控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是
否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器
暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境。
[0012] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,所述动作指令最晚反馈时间限制信息包括:当前仿真时间t、当前仿真加速比s以及动作指令最
晚允许执行时间d;相应地,控制所述行动器根据所述动作指令最晚反馈时间限制信息判断
所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
[0013] 控制所述行动器根据所述动作指令最晚反馈时间限制信息确定所述行动器用于决策的墙钟时间w=(d‑t)/s;
[0014] 控制所述行动器判断所述动作指令是否在所述墙钟时间w内发送至所述超实时仿真环境。
[0015] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制
所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令
最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所述行动器暂停所述超实
时仿真环境的运行直至行动器将所述动作指令发送至所述超实时仿真环境,包括:
[0016] 控制所述行动器生成主线程和计时线程;
[0017] 控制所述主线程执行根据所述环境观察输出动作决策并将所述动作决策转换为动作指令以及向所述超实时仿真环境发送动作指令的处理过程;
[0018] 控制所述计时线程执行所述墙钟时间的倒计时处理过程;
[0019] 判断所述计时线程是否早于所述主线程结束,若是,则在所述计时线程的结束时刻控制所述行动器暂停所述超实时仿真环境的运行直至所述主线程将所述动作指令发送
至所述超实时仿真环境。
[0020] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,所述系统还包括:参数服务器和私有云;所述训练单元还包括:学习器和回放存储器;
[0021] 相应地,将所述超实时仿真环境与所述行动器部署在同一台虚拟机上,包括:
[0022] 向OpenStack请求虚拟化资源,为所述参数服务器配备一台虚拟机;
[0023] 按照每个训练单元配备两台虚拟机的比例,向OpenStack请求虚拟化资源,使得所述超实时仿真环境和所述行动器共享一台虚拟机,以及,使得所述学习器和所述回放存储
器共享一台虚拟机;
[0024] 为与所述参数服务器对应的虚拟机、与所述超实时仿真环境和所述行动器对应的虚拟机、以及与所述学习器和所述回放存储器对应的虚拟机,创建集群虚拟网络并生成访
问密钥对;
[0025] 设置安全组规则,并允许通过ssh端口访问所述集群虚拟网络;
[0026] 为与所述参数服务器对应的虚拟机加载“参数服务器镜像”,为与所述超实时仿真环境和所述行动器对应的虚拟机加载超实时仿真环境‑行动器镜像,以及,为与所述学习器
和所述回放存储器对应的虚拟机加载回放存储器‑学习器镜像,完成集群部署。
[0027] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,所述超实时仿真环境采用编译型语言编写,所述行动器采用解释型语言编写;相应地,控制所述
超实时仿真环境采用ICE RPC向所述行动器发送环境观察,以及,控制所述行动器采用ICE 
RPC向所述超实时仿真环境发送动作指令。
[0028] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,还包括:
[0029] 获取所述行动器与所述超实时仿真环境交互产生的经验元组,并将所述经验元组以时序数据的方式存放在所述回放存储器中;其中,所述经验元组包括:环境观察、响应所
述环境观察得到的动作指令、执行所述动作指令得到的回报,以及,对下一时刻状态的环境
观察。
[0030] 根据本发明一个实施例的面向超实时仿真环境的分布式强化学习训练方法,所述系统包括多个训练单元;相应地,所述方法还包括:
[0031] 控制每个训练单元中的学习器从相应的回放存储器中解析预设时间段内产生的经验元组序列,并控制学习器计算用于每个经验元组的梯度,以及根据随机梯度下降法修
改学习器的Q网络参数;
[0032] 控制每个训练单元中的学习器将相应学习器的Q网络参数通过网络发送给所述参数服务器,并使得所述参数服务器综合各个训练单元中学习器的Q网络参数更新每个训练
单元中的行动器和学习器。
[0033] 本发明实施例还提供一种面向超实时仿真环境的分布式强化学习训练装置,所述装置应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿真环境和行动器
组成的训练单元;
[0034] 相应地,所述方法包括:
[0035] 耦合部署单元,用于将所述超实时仿真环境与所述行动器部署在同一台虚拟机上;
[0036] 时延报告单元,用于控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息;
[0037] 进度控制单元,用于控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判
断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,
则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所
述超实时仿真环境。
[0038] 本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述面向超
实时仿真环境的分布式强化学习训练方法的步骤。
[0039] 本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述面向超实时仿真环境的分布式强化
学习训练方法的步骤。
[0040] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法及装置,通过将超实时仿真环境与行动器部署在同一台虚拟机上,并控制超实时仿真环境在向所述行
动器发送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动
器根据环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指
令最晚反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实
时仿真环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述
超实时仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令
的延迟,避免因过长决策延时导致下达动作指令失效。

附图说明

[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发
明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根
据这些附图获得其他的附图。
[0042] 图1是本发明实施例提供的一种面向超实时仿真环境的分布式强化学习训练方法的流程示意图;
[0043] 图2是本发明实施例提供的一种分布式强化学习训练总体架构图;
[0044] 图3是本发明实施例提供的一种仿真进度控制流程图;
[0045] 图4是本发明实施例提供的一种训练任务耦合部署的工作流程图;
[0046] 图5是本发明实施例提供的一种基于ICE的超实时仿真环境与行动器交互流程图;
[0047] 图6是本发明实施例提供的一种面向超实时仿真环境的分布式强化学习训练装置的结构示意图;
[0048] 图7是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0049] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050] 下面结合图1‑图5描述本发明实施例的面向超实时仿真环境的分布式强化学习训练方法。
[0051] 图1是本发明实施例提供的一种面向超实时仿真环境的分布式强化学习训练方法的流程示意图,如图1所示,本发明实施例提供的一种面向超实时仿真环境的分布式强化学
习训练方法,所述方法应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿
真环境和行动器组成的训练单元;
[0052] 相应地,所述方法包括:
[0053] 步骤110、将所述超实时仿真环境与所述行动器部署在同一台虚拟机上。
[0054] 具体地,图2是本发明实施例提供的一种分布式强化学习训练总体架构图,如图2所示,分布式强化学习系统包括:参数服务器、私有云如云计算平台(以下简称
“OpenStack”)、以及一个或多个由超实时仿真环境、行动器、学习器以及回放存储器组成的
训练单元。
[0055] 从运行的角度来看,训练单元内的行动器与超实时仿真环境持续交互,由行动器维护一个深度神经网络即Q网络来选择待执行的动作。在这个交互过程中,超实时仿真环境
持续获取特征化环境观察,并且将该观察作为输入交给行动器的深度神经网络,之后从行
动器的深度神经网络中得到动作决策输出,并转化为动作指令作用到仿真环境中。
[0056] 然而,在训练交互过程中,对操作与通信延迟敏感的主要是行动器与超实时仿真环境的交互过程。因此,本发明实施例通过将超实时仿真环境与行动器绑定部署在同一台
虚拟机上,为高频率且对延迟敏感的交互操作省去网络传输开销。相较于传统方法中分布
式强化学习框架未考虑低延迟通信所带来的训练任务部署需求,将超实时仿真环境与行动
器部署在不同一台虚拟机上,本发明实施例减小了超实时仿真环境与行动器之间的网络传
输开销,从而可以适用于仿真时钟显著快于实际物理时钟的超实时仿真环境。
[0057] 步骤120、控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息。
[0058] 具体地,控制超实时仿真环境向行动器不断发送观察得到的环境状态数据,为下一步动作指令提供决策输入。同时,超实时仿真环境在上报环境观察时,环境观察中有可以
供行动器计算决策的墙钟时间的附加信息戳,附加信息戳中包含有动作指令最晚反馈时间
限制信息。
[0059] 步骤130、控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动
作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若否,则控制所
述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至所述超实时
仿真环境。
[0060] 具体地,超实时仿真环境带来了苛刻的响应延迟,在极端情况下(如仿真环境加速比过高、领域问题所允许的决策延迟过小等),行动器所需执行的一系列动作,包括接收当
前环境观察,使用深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时可
能超过响应延迟。因此行动器必须控制仿真环境的运行以避免动作指令失效,即通过控制
行动器根据环境观察输出动作决策,并将动作决策转换为动作指令,同时控制行动器根据
动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内
发送至所述超实时仿真环境,一旦行动器未能在动作指令最晚反馈时间限制内下达相应的
动作指令给超实时仿真环境,那么该动作指令就将面临失效的风险,因此,本发明实施例中
通过控制行动器暂停超实时仿真环境的运行,直至行动器将动作指令发送至超实时仿真环
境。
[0061] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过将超实时仿真环境与行动器部署在同一台虚拟机上,并控制超实时仿真环境在向所述行动器发
送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动器根据
环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指令最晚
反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实时仿真
环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述超实时
仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令的延迟,
避免因过长决策延时导致下达动作指令失效。
[0062] 基于上述实施例的内容,作为一种可选实施例,所述动作指令最晚反馈时间限制信息包括:当前仿真时间t、当前仿真加速比s以及动作指令最晚允许执行时间d;相应地,控
制所述行动器根据所述动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指
令最晚反馈时间限制内发送至所述超实时仿真环境,包括:
[0063] 控制所述行动器根据所述动作指令最晚反馈时间限制信息确定所述行动器用于决策的墙钟时间w=(d‑t)/s;
[0064] 控制所述行动器判断所述动作指令是否在所述墙钟时间w内发送至所述超实时仿真环境。
[0065] 具体地,为了计算行动器可以用来决策的墙钟时间w,动作指令最晚反馈时间限制信息中包含有仿真引擎提供当前仿真时间t、当前仿真加速比s,智能体模型则根据其类型
与当前所处状态提供指令的最晚允许下达时间d,因此,行动器可以用来决策的墙钟时间
为:w=(d‑t)/s。
[0066] 控制行动器判断动作指令是否在墙钟时间w内发送至所述超实时仿真环境,一旦行动器未能在时间w内下达相应指令,那么该指令就将面临失效的风险。
[0067] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过计算墙钟时间,明确了仿真逻辑正确所应达到的速度要求,避免动作指令的下达延迟。
[0068] 基于上述实施例的内容,作为一种可选实施例,控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指
令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至
所述超实时仿真环境,若否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动
器将所述动作指令发送至所述超实时仿真环境,包括:
[0069] 控制所述行动器生成主线程和计时线程;
[0070] 控制所述主线程执行根据所述环境观察输出动作决策并将所述动作决策转换为动作指令以及向所述超实时仿真环境发送动作指令的处理过程;
[0071] 控制所述计时线程执行所述墙钟时间的倒计时处理过程;
[0072] 判断所述计时线程是否早于所述主线程结束,若是,则在所述计时线程的结束时刻控制所述行动器暂停所述超实时仿真环境的运行直至所述主线程将所述动作指令发送
至所述超实时仿真环境。
[0073] 具体地,超实时仿真环境带来了苛刻的响应延迟。在极端情况下如仿真环境加速比过高、领域问题所允许的决策延迟过小,行动器所需执行的一系列动作,包括接收当前环
境观察,使用行动器深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时
可能超过响应延迟。因此,行动器必须主动暂停超实时仿真环境的运行以避免动作指令失
效,同时行动器暂停超实时仿真环境应尽可能晚地介入,以避免对超实时仿真的性能造成
过多影响。
[0074] 图3是本发明实施例提供的一种仿真进度控制流程图,如图3所示,控制行动器生成主线程和计时线程,控制主线程执行根据环境观察输出动作决策并将动作决策转换为动
作指令以及向超实时仿真环境发送动作指令的处理过程,控制计时线程执行墙钟时间的倒
计时处理过程,即将墙钟时间作为参数输入计时线程进行倒计时,若计时线程结束即倒计
时结束时行动器仍未向超实时仿真环境发送动作指令,则在计时线程的结束时刻控制行动
器调用ice接口暂停超实时仿真环境的运行,直至主线程将动作指令发送至超实时仿真环
境后,行动器再调用ice接口运行超实时仿真环境。
[0075] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至超实时仿真环境,从而可
以避免因过长时间决策延时导致下达动作指令失效。
[0076] 基于上述实施例的内容,作为一种可选实施例,所述系统还包括:参数服务器和私有云;所述训练单元还包括:学习器和回放存储器;
[0077] 相应地,将所述超实时仿真环境与所述行动器部署在同一台虚拟机上,包括:
[0078] 向OpenStack请求虚拟化资源,为所述参数服务器配备一台虚拟机;
[0079] 按照每个训练单元配备两台虚拟机的比例,向OpenStack请求虚拟化资源,使得所述超实时仿真环境和所述行动器共享一台虚拟机,以及,使得所述学习器和所述回放存储
器共享一台虚拟机;
[0080] 为与所述参数服务器对应的虚拟机、与所述超实时仿真环境和所述行动器对应的虚拟机、以及与所述学习器和所述回放存储器对应的虚拟机,创建集群虚拟网络并生成访
问密钥对;
[0081] 设置安全组规则,并允许通过ssh端口访问所述集群虚拟网络;
[0082] 为与所述参数服务器对应的虚拟机加载“参数服务器镜像”,为与所述超实时仿真环境和所述行动器对应的虚拟机加载超实时仿真环境‑行动器镜像,以及,为与所述学习器
和所述回放存储器对应的虚拟机加载回放存储器‑学习器镜像,完成集群部署。
[0083] 具体地,图4是本发明实施例提供的一种训练任务耦合部署的工作流程图,如图4所示,训练任务的自动化耦合部署依赖于OpenStack与自动化运维工具(以下简称
“Ansible”)实现,其中OpenStack提供集群虚拟化与镜像支持,Ansible提供脚本部署自动
化工具。其工作流程如图4所示。训练任务的自动化耦合部署在有新的强化学习任务提交时
运行,首先解析用户指令获取训练单元个数,并按照每个训练单元配备两台虚拟机的比例
向OpenStack请求虚拟化资源。其次创建该集群的虚拟网络,生成访问密钥对,之后设置安
全组规则,允许通过22号(ssh)端口访问集群。最后,依次为参数服务器虚拟机加载“参数服
务器镜像”,为每个训练单元加载“超实时仿真环境‑行动器镜像”以及“回放存储‑学习器镜
像”,完成集群部署。
[0084] 通过镜像捆绑,每一个训练单元所包含的行动器与超实时仿真环境将被部署到同一台虚拟机上,且该虚拟机不再运行其他类型的任务以避免资源竞争,从而在软件部署层
面上最大限度地降低超实时仿真环境与行动器的通信开销。
[0085] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过将超实时仿真环境与行动器部署在同一台虚拟机上,在软件部署层面上降低了超实时仿真环境
与行动器的通信开销。
[0086] 基于上述实施例的内容,作为一种可选实施例,所述超实时仿真环境采用编译型语言编写,所述行动器采用解释型语言编写;相应地,控制所述超实时仿真环境采用ICE 
RPC向所述行动器发送环境观察,以及,控制所述行动器采用ICE RPC向所述超实时仿真环
境发送动作指令。
[0087] 具体地,图5是本发明实施例提供的一种基于ICE的超实时仿真环境与行动器交互流程图,如图5所示,从实现的角度看,超实时仿真环境向行动器上报决策最大延时时间的
过程需解决跨语言程序的高性能通信问题。考虑仿真性能因素,超实时仿真环境通常采用
C/C++等编译型语言编写;而考虑开发便捷性与代码兼容性因素,行动器内的强化学习通常
由Python、Perl等解释型语言编写。为满足跨语言、低延迟的通信要求,本发明实施例采用
一种远程过程调用库ICE RPC,实现超实时仿真环境与行动器之间的观察上报与动作指令
下达,Communicator.ice定义了动作指令最晚反馈时间限制信息数据处理函数的接口,
server代码中定义了接口的实现。行动器作为函数调用的客户端,仅需要编写Client.py,
用python代码即可实现观察的获取或指令的下达。其中,超实时仿真环境和行动器之间采
用ICE RPC进行交互的详细处理过程如下:
[0088] (1)行动器作为客户端初始化ICE通信器,传入远程服务单元的名称、网络协议、IP以及端口,获取Comunicator的远程代理。然后通过checkedCast向下转型Comunicator的远
程代理,获取调用接口指针。若接口指针不为null,则表示远程调用链接已建立,行动器可
以使用调用接口指针,通过调用本地函数类似的方式调用超实时仿真环境所运行的远程函
数。
[0089] (2)超实时仿真环境作为服务器端初始化ICE通信器,并处理初始化参数如连接超时,客户端连接池的数量等。然后,创建名为EnvAdapter的ICE ObjectAdapter适配器,并要
求适配器使用缺省的协议(TCP/IP端口为10000或其他空闲端口)。接着,为Communicator接
口创建实例化一个Comunicator ICE对象,并将该对象添加至EnvAdapter适配器中。对象添
加完毕后,激活适配器,在服务退出之前,该适配器会一直持续监听行动器请求并完成相应
处理。
[0090] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过控制超实时仿真环境向行动器上报环境观察,明确了强化学习算法保证仿真逻辑正确所应达到
的速度要求,避免下达动作指令的延迟而导致动作指令失效。
[0091] 基于上述实施例的内容,作为一种可选实施例,获取所述行动器与所述超实时仿真环境交互产生的经验元组,并将所述经验元组以时序数据的方式存放在所述回放存储器
中;其中,所述经验元组包括:环境观察、响应所述环境观察得到的动作指令、执行所述动作
指令得到的回报,以及,对下一时刻状态的环境观察。
[0092] 具体地,训练单元内行动器与超实时仿真环境的交互会生成经验元组,以时序数据的方式存放在相应的回放存储器中。经验元组包括四项:(1)对环境当前状态的特征化观
察;(2)响应当前观察所执行的动作;(3)执行该动作所得到的回报;(4)对环境下一时刻状
态的特征化观察。
[0093] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过获取行动器与超实时仿真环境交互产生的经验元组,并将经验元组以时序数据的方式存放在回
放存储器中,从而可以更新并维护学习器的Q网络参数进行训练。
[0094] 基于上述实施例的内容,作为一种可选实施例,所述系统包括多个训练单元;相应地,所述方法还包括:
[0095] 控制每个训练单元中的学习器从相应的回放存储器中解析预设时间段内产生的经验元组序列,并控制学习器计算用于每个经验元组的梯度,以及根据随机梯度下降法修
改学习器的Q网络参数;
[0096] 控制每个训练单元中的学习器将相应学习器的Q网络参数通过网络发送给所述参数服务器,并使得所述参数服务器综合各个训练单元中学习器的Q网络参数更新每个训练
单元中的行动器和学习器。
[0097] 具体地,训练单元内的学习器负责从相应的回放存储器中解析经验元组序列,通过结合其保持的学习器的深度神经网络,学习器计算用于每个经验元组的梯度,并根据随
机梯度下降法来修改学习器所维护的深度神经网络参数(即Q网络参数)。每隔一定时间,学
习器将其所维护的深度神经网络参数通过网络发送给参数服务器。参数服务器在接收到所
有学习器的深度神经网络参数后实施按位平均操作,其中,学习器的深度神经网络参数可
理解为一个多维矩阵,按位平均操作即将多个多维矩阵的相同位置元素取出来求平均,从
而得到一个新的深度神经网络参数。参数服务器再将新的深度神经网络参数发送给各个训
练单元内的行动器与学习器,命令其更新所维护的深度神经网络参数。训练过程按此流程
持续运行,直至行动器与学习器的深度神经网络收敛即参数更新不再显著,或用户主动终
止训练。
[0098] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练方法,通过控制每个训练单元对Q网络参数进行维护和更新,从而保证分布式强化学习框架的正确性。
[0099] 下面对本发明实施例提供的面向超实时仿真环境的分布式强化学习训练装置进行描述,下文描述的面向超实时仿真环境的分布式强化学习训练装置与上文描述的面向超
实时仿真环境的分布式强化学习训练方法可相互对应参照。
[0100] 图6是本发明实施例提供的一种面向超实时仿真环境的分布式强化学习训练装置的结构示意图,如图6所示,本发明实施例提供的一种面向超实时仿真环境的分布式强化学
习训练装置,所述装置应用于对分布式强化学习系统进行训练,所述系统包括:由超实时仿
真环境和行动器组成的训练单元;
[0101] 相应地,所述方法包括:
[0102] 耦合部署单元610,用于将所述超实时仿真环境与所述行动器部署在同一台虚拟机上。
[0103] 具体地,分布式强化学习系统包括:参数服务器、私有云如云计算平台(以下简称“OpenStack”)、以及一个或多个由超实时仿真环境、行动器、学习器以及回放存储器组成的
训练单元。
[0104] 从运行的角度来看,训练单元内的行动器与超实时仿真环境持续交互,由行动器维护一个深度神经网络即Q网络来选择待执行的动作。在这个交互过程中,超实时仿真环境
持续获取特征化环境观察,并且将该观察作为输入交给行动器的深度神经网络,之后从行
动器的深度神经网络中得到动作决策输出,并转化为动作指令作用到仿真环境中。
[0105] 然而,在训练交互过程中,对操作与通信延迟敏感的主要是行动器与超实时仿真环境的交互过程。因此,本发明实施例耦合部署单元610通过将超实时仿真环境与行动器绑
定部署在同一台虚拟机上,为高频率且对延迟敏感的交互操作省去网络传输开销。相较于
传统方法中分布式强化学习框架未考虑低延迟通信所带来的训练任务部署需求,将超实时
仿真环境与行动器部署在不同一台虚拟机上,本发明实施例减小了超实时仿真环境与行动
器之间的网络传输开销,从而可以适用于仿真时钟显著快于实际物理时钟的超实时仿真环
境。
[0106] 时延报告单元620,用于控制所述超实时仿真环境在向所述行动器发送环境观察时添加附加信息戳,所述附加信息戳中包含有动作指令最晚反馈时间限制信息。
[0107] 具体地,时延报告单元620控制超实时仿真环境向行动器不断发送观察得到的环境状态数据,为下一步动作指令提供决策输入。同时,超实时仿真环境在上报环境观察时,
环境观察中有可以供行动器计算决策的墙钟时间的附加信息戳,附加信息戳中包含有动作
指令最晚反馈时间限制信息。
[0108] 进度控制单元630,用于控制所述行动器根据所述环境观察输出动作决策并将所述动作决策转换为动作指令,同时控制所述行动器根据所述动作指令最晚反馈时间限制信
息判断所述动作指令是否在动作指令最晚反馈时间限制内发送至所述超实时仿真环境,若
否,则控制所述行动器暂停所述超实时仿真环境的运行直至行动器将所述动作指令发送至
所述超实时仿真环境。
[0109] 具体地,超实时仿真环境带来了苛刻的响应延迟,在极端情况下(如仿真环境加速比过高、领域问题所允许的决策延迟过小等),行动器所需执行的一系列动作,包括接收当
前环境观察,使用深度神经网络选择待执行动作,以及转换输出下达动作指令的总耗时可
能超过响应延迟。因此行动器必须控制仿真环境的运行以避免动作指令失效,即进度控制
单元630通过控制行动器根据环境观察输出动作决策,并将动作决策转换为动作指令,同时
控制行动器根据动作指令最晚反馈时间限制信息判断所述动作指令是否在动作指令最晚
反馈时间限制内发送至所述超实时仿真环境,一旦行动器未能在动作指令最晚反馈时间限
制内下达相应的动作指令给超实时仿真环境,那么该动作指令就将面临失效的风险,因此,
本发明实施例中通过控制行动器暂停超实时仿真环境的运行,直至行动器将动作指令发送
至超实时仿真环境。
[0110] 本发明实施例提供的面向超实时仿真环境的分布式强化学习训练装置,通过将超实时仿真环境与行动器部署在同一台虚拟机上,并控制超实时仿真环境在向所述行动器发
送环境观察时添加包含有动作指令最晚反馈时间限制信息的附加信息戳,控制行动器根据
环境观察输出动作决策并将动作决策转换为动作指令,同时控制行动器根据动作指令最晚
反馈时间限制信息判断若动作指令未在动作指令最晚反馈时间限制内发送至超实时仿真
环境,则控制行动器暂停超实时仿真环境的运行直至行动器将动作指令发送至所述超实时
仿真环境,从而能够缩短分布式强化学习框架的决策流程时长,降低获取动作指令的延迟,
避免因过长决策延时导致下达动作指令失效。
[0111] 图7是本发明实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器
(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740
完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行面向超实时仿真
环境的分布式强化学习训练方法。
[0112] 此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本
发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以
使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施
例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,
Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种
可以存储程序代码的介质。
[0113] 另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所
述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的面向超实时仿真
环境的分布式强化学习训练方法。
[0114] 又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的面向超实时仿真
环境的分布式强化学习训练方法。
[0115] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其
中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性
的劳动的情况下,即可以理解并实施。
[0116] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上
述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该
计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指
令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施
例或者实施例的某些部分所述的方法。
[0117] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。