数据处理方法、装置、存储介质和电子设备与流程

未命名 07-22 阅读:95 评论:0


1.本公开涉及计算机技术领域,尤其涉及一种数据处理方法、数据处理装置、计算机存储介质和电子设备。


背景技术:

2.分布式强化学习框架(distributed reinforcement learning)是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略(policy)以达成奖励(reward)最大化或实现特定目标的问题。而分布式强化学习算法通常由学习者(learner)和行动者(actor)组成,actor使用learner学到的人工智能(artificial intelligence,ai)策略与环境交互产生经验数据,而learner收集actor的经验数据用于提升ai策略。
3.现有的分布式强化学习框架主要是基于python生态实现的,由于全局解释器锁(global interpreter lock,gil)的限制,即使在多核心处理器上也只允许同一时间执行一个线程接收并处理actor发送的经验数据。
4.然而,上述现有的技术方案,易导致learner接收并处理数据的效率低。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开提供了一种数据处理方法、数据处理装置、计算机存储介质和电子设备,进而提高接收并处理数据的效率。
7.第一方面,本公开一个实施例提供了一种数据处理方法,该方法包括:响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。
8.第二方面,本公开一个实施例提供了一种数据处理装置,该装置包括:线程启动模块用于响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;数据接收模块用于根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;参数更新模块,用于将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。
9.第三方面,本公开一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上的数据处理方法。
10.第四方面,本公开一个实施例提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行如上的数据
处理方法。
11.本公开的技术方案具有以下有益效果:
12.上述数据处理方法通过响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。一方面,该方法实现分布式强化学习模型中learner与actor之间的多线程,以通过多个cpu内核同时运行同一程序,从而实现多个线程并行接收并处理actor发送的经验数据,该过程避免了现有强化学习模型因python生态的gil限制只能通过单cpu接收并处理经验数据所导致的数据处理效率低,从而形成计算瓶颈的技术问题,实现从而提高数据接收并处理的效率的技术效果。另一方面,通过多个工作线程接收到的第一目标经验数据均处于共享内存空间中,可直接供learner进行学习以更新强化学习模型的网络参数,该过程避免了现有技术通过python无法适用于多线程接收第一目标经验数据的过程,从而提高数据处理过程的应用范围。
13.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
14.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1示意性示出本示例性实施方式中一种强化学习的基本原理示意图;
16.图2示意性示出本示例性实施方式中一种分布式强化学习代理架构的示意图;
17.图3示意性示出本示例性实施方式中一种数据处理系统的系统架构图;
18.图4示意性示出本示例性实施方式中一种数据处理方法的流程图;
19.图5示意性示出本示例性实施方式中一种数据传输过程的示意图;
20.图6示意性示出本示例性实施方式中一种数据处理装置结构示意图;
21.图7示意性示出本示例性实施方式中另一种数据处理装置结构示意图;
22.图8示意性示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
23.现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主
而使得本公开的各方面变得模糊。
24.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
25.附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
26.为了帮助本领域技术人员更好地理解本公开的技术方案,下面将对本公开技术方案涉及的相关内容进行介绍。
27.(1)强化学习(reinforcement learning,rl),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
28.(2)全局解释器锁(global interpreter lock,gil):是计算机程序设计语言解释器用于同步线程的工具,使得在同一进程内任何时刻仅有一个线程在执行,即使在多核中央处理器平台上,由于gil的存在,所以禁止多线程的并行执行(python语言中负责垃圾回收的模块)。
29.(3)智能体(agent):人工智能领域中一个概念,以云为基础,以人工智能(artificial intelligence,ai)为核心,构建一个立体感知、全域协同、精准判断、持续进化、开放的智能系统。
30.(4)张量(tensor):深度学习框架中的基本数据单元,可以看作为高维数组。
31.(5)序列化(serialization)与反序列化(deserialization):序列化是把对象转换为字节序列的过程称为对象的序列化;而反序列化则是与序列化相反的过程,即把字节序列恢复为对象的过程。
32.(6)线程(thread):是操作系统能够进行运算调度的最小单位,其功能是执行应用程序中的某个具体任务,比如一段程序、一个函数等。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
33.本公开示例性实施方式提供的数据处理方法,可以应用于任意使用强化学习的学习框架的应用场景中。其中,强化学习在众多领域均得到了广泛的应用,例如,机器人控制领域、自动驾驶、5g通信、游戏领域、智能物流或其他等。
34.图1示意性示出本示例性实施方式中一种强化学习的基本原理示意图。在游戏ai领域中强化学习得到了极大的应用,强化学习是从动物学习、参数扰动自适应控制等理论发展而来,其基本原理是如图1所示。在图1中,在游戏环境(environment)中,ai智能体(agent)观测当下所处的状态(state)并做出决策(action),作用于环境后进入新的状态并获得奖励信号(reward),以此不断循环迭代。强化算法根据奖励信号逐步调整ai在不同状态下的决策,即如果agent的某个行为策略导致环境正的奖赏(强化信号),那么agent以后产生这个行为策略的趋势便会加强,agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。
35.为了支撑复杂ai的训练,主流的强化学习框架通常采用分布式强化学习的训练架构,该强化学习架构通常包含学习者(learner,也可称为策略体)和行动者(actor,也可称为执行体)。actor通常在中央处理器(central processing unit,简称cpu)上运行,迭代在环境(environment)中执行动作以及模型上运行推理来预测下一个动作的过程。actor会经常更新推理模型的参数,在收集到足够多的观察数据后,将观察和动作的轨迹发送给actor,actor再对模型进行优化。
36.图2示意性示出本示例性实施方式中一种分布式强化学习框架架构示意图,如图2所示,由一个学习者(learner)带动大量行动者(actor)学习ai策略,多个actor分别使用learner学到的ai策略(策略1、策略2、

、策略n)与游戏环境交互产生经验数据(经验1、经验2、

、经验n);learner收集上述经验数据用于提升ai策略。但是,通常actor的数量非常多,产生的经验数据可能是非常巨量的,这对learner的数据接收能力提出了严苛的挑战。
37.目前,现有的分布式强化学习框架主要基于python生态,learner使用单cpu异步接收并处理经验数据,而经验数据的实质是字节数据类型。且在learner服务器接收到经验数据后需要进行一系列数据处理过程,例如解压缩和反序列化处理。
38.其中,数据处理过程与actor向learner传输过程中的数据处理过程是相对的。例如,在actor与learner的交互过程中,为了节省数据传输过程中的网络带宽以及便于数据传输,通常actor向learner发送的经验数据是进行压缩处理,并通过序列化将预设数据结构转换为数据流(例如将对象转换为字节数据),因此,learner在接收到actor发送的经验数据进行解压缩操作,并将解压缩后的经验数据通过反序列化恢复为预设的数据结构(以开源的python机器学习库的pytorch为例,通常构成为若干tensor数据)。当learner接收到累积的经验数据达到预设数量(预设数量(batch size)由开发人员根据实际情况进行配置),learner则将这些经验数据整合起来用于ai策略的学习。
39.然而,由于相关技术使用的python环境,而python的解释器使用了gil,无论系统有多少个cpu核心,python程序(经验数据接收及处理过程)都只能在一个cpu上运行,从而造成线程数据堵塞,导致数据处理的效率低,造成系统性能瓶颈。同时,learner接收经验数据后需要及时整合为批数据(即batch数据)进行学习,而该过程需要运行在共享的内存空间,python生态无法实现该过程,导致适用性小。
40.本公开示例性实施方式考虑到上述问题,提出一种数据处理方法,该方法使用多线程并行接收并处理经验数据。例如,使用c++模块实现接收经验数据的过程,由于c++支持使用多线程,且c++程序可支持在多个cpu上同步运行,从而通过多线程并行接收并处理经验数据,达到提高数据处理效率的技术效果。
41.为了解决上述问题,本公开提出了一种数据处理方法及装置,该方法及装置可以应用于图3所示的示例性应用环境的系统架构中。
42.如图3所示,系统架构300可以包括终端设备301、302、303中的一个或多个,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络303可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备301、302、303例如可以是智能手机、掌上电脑(personal digital assistant,pda)、笔记本电脑、服务器、台式计算机或其它任何具有联网功能的计算设备,但并不局限于此。
43.应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需
要,可以具有任意数目的终端设备、网络和服务器。比如服务器305可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
44.本公开实施例所提供的数据处理方法可以在服务器305执行,相应地,数据处理装置一般设置于服务器305中。本公开实施例所提供的数据处理方法也可以在终端设备中执行,相应地,数据处理装置也可以设置在终端设备中。本公开实施例所提供的数据处理方法还可以部分的在服务器305中执行,部分的在终端设备中执行,相应地,数据处理装置的部分模块可以设置在服务器305中,部分模块设置在终端设备中。
45.举例而言,在一种示例性实施例中,以示例性应用场景为游戏场景为例,终端设备301、302、303中搭载游戏,玩家可以在终端设备301、302、303中登录游戏平台并参与游戏,上述服务器305可以将上述终端设备301、302、303匹配到同一游戏进程中。在玩家使用终端设备游戏过程中,由多个终端设备与服务器305构成分布式强化学习训练框架系统,多个actor在多个终端设备上分布式并行产生游戏过程中的训练数据,而learner服务器对应服务器305。服务器305响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者执行与第二网络参数执行对应的目标动作。
46.但本领域技术人员容易理解的是,上述应用场景仅是用于举例,本示例性实施例中并不以此为限。
47.下面以上服务器305为执行主体,将该数据处理方法应用于上述的服务器305为例进行说明。参见图4,本公开示例性实施例提供的数据处理方法包括如下步骤s401-步骤s403:
48.步骤s401、响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程。
49.步骤s402、根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定。
50.步骤s403、将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者执行与第二网络参数对应的目标动作。
51.在图4所提供的技术方案中,通过响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。一方面,该方法实现分布式强化学习模型中learner与actor之间的多线程,以通过多个cpu内核同时运行同一程序,从而实现多个线程并行接收并处理actor发送的经验数据,该过程避免了现有强化学习模型因python生态的gil限制只能通过单cpu接收并处理经验数据所导致的数据处理效率低,从而形成系统计算瓶颈的技术问题,实现从而提高数据接收并处理的效率的技术效果。另一方面,通过多个工
作线程接收到的经验数据均处于共享内存空间中,可直接供learner进行学习以更新强化学习模型的网络参数,该过程避免了现有技术通过python无法适用于多线程接收经验数据的过程,从而提高数据处理过程的应用范围。
52.以下对图4所示实施例中各个步骤的具体实施方式进行详细阐述:
53.在步骤s401中,响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程。
54.其中,学习者、行动者的数量可以是一个或者多个,例如,一个learner可以与多个actor建立网络连接,或者多个learner与多个actor建立网络连接形成的集群,本公开实施例对此不作任何特殊限制。
55.示例性的,以图2所示的分布式强化学习框架为例,当actor产生经验数据,会向learner服务器发送数据传输指令,以申请将产生的经验数据发送至learner服务器。同时启动学习者与行动者之间的多个工作线程,以在多核处理器中同一时刻启动多个cpu内核运行同一程序。其中,在learner与actor之间的启动的工作线程数量可以由用户预先配置,即可以根据实际情况进行调整。
56.应该理解的是,该过程可以使用任意可实现同一时刻启动多个线程的编程语言,例如c++,本公开实施例对此不作任何特殊限制。
57.在步骤s402中,根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定。
58.其中,第一网络参数为learner向actor发送的ai策略对应的参数信息。
59.根据本公开的一些实施例,在启动多个线程,可建立learner与actor之间的网络连接,以在网络连接状态为正常连接的情况的向learner传送第一目标经验数据。
60.示例性的,可以使用嵌入式的网络链接库(zmq)以建立learner与actor之间的网络连接,由于zmq用于大型的高并发场景下构建大型分布式系统,主要用于多线程之间的消息传输。
61.在本公开的一些示例实施例中,在执行步骤s402根据多个工作线程接收行动者传送的第一目标经验数据的步骤时,可以根据多个工作线程接收行动者传送的初始经验数据;对初始经验数据进行反序列化处理,得到第一目标经验数据。
62.示例性的,初始经验数据通常为原始字节类型的数据,在使用多个工作线程异步接收到原始字节类型的初始经验数据时,需要通过反序列化操作将字节类型的数据转换为预设数据结构的第一目标经验数据。例如,预设数据结构可以是对象,便可通过序列化和反序列化实现了对象的传输过程。
63.根据本公开的一些实施例,learner向actor发送ai策略时,通过序列化将对象转换为字节数据以保存在文件中或通过网络传输,而actor向learner发送经验数据时,通过反序列化操作将字节数据(经验数据)转换为预设数据结构(例如:对象)进行后续处理。
64.例如,以一个开源python机器学习库的pytorch为例,可以将原始字节类型的初始经验数据构造为tensor对象。
65.应该理解的是,反序列化操作可以通过序列化类库messagepack(可以简化为msgpack)、json或其他任意实现方式,本公开实施例对此不作任何特殊限制。
66.通过序列化和反序列化处理,不仅可以在传递和保存对象时,保证对象的完整性
和可传递性,也可以实现将对象进行长久保持。
67.在本公开的一些示例实施例中,在执行对初始经验数据进行反序列化处理,得到第一目标经验数据步骤时,还可以将初始经验数据进行解压缩处理,得到第一中间经验数据,对第一中间经验数据进行反序列化处理,得到第一目标经验数据。
68.在通过多个工作线程接收行动者传送的初始经验数据时,对初始经验数据进行解压缩处理后再进行反序列化处理。
69.示例性的,在数据传输过程中,为了节省计算机网络的带宽以及提高数据传输效率,通常actor发送的初始经验数据经过压缩处理。因此,learner在接收到初始经验数据后进行解压缩操作(例如lz4算法,其中lz4算法的压缩与解压缩效率高),以恢复至压缩处理前的数据。
70.可以理解的是,上述lz4压缩与解压缩算法为示例性的,还可以使用其他方法,如zip算法、snappy等,本公开实施例对此不作任何特殊限制。
71.在数据传输过程中,通过压缩与解压缩处理可以节省数据传输的时间以及网络资源,进而提高数据传输以及处理效率。
72.在本公开的一些示例实施例中,在对初始经验数据进行反序列化处理,得到第一目标经验数据时,可以对初始经验数据进行反序列化处理,得到第二中间经验数据;将第二中间经验数据存储至缓存队列;若缓存队列中的第二中间经验数据的数据量大于或等于数据量阈值,则将数据量的第二中间经验数据进行合并,得到第一目标经验数据。
73.同样以pytorch为例,将反序列化得到的tensor数据存入缓存队列中,直至缓存队列中tensor数据的数据量大于或等于一数据量阈值(batch size),或者缓存队列的可用容量小于预设容量,便可以将数据量阈值的tensor数据进行合并,得到一个batch数据,以便learner根据batch数据进行学习。
74.在缓存队列中的数据量达到数据量阈值后进行数据合并,是基于数据处理效率的缘故。若将数据处理过程中所有的经验数据放入共享内存后再加载到显存中进行模型的网络参数更新,难以满足较大的存储空间需求量;而learner直接加载一次数据处理过程得到的经验数据进行训练并更新模型的网络参数,效率较低。而在数据量达到数据量阈值后合并数据进行训练强化学习模型,可以兼顾存储空间和效率。
75.同时,在本公开一个可选的实施例中,对于存在多个actor同时与learner服务器连接进行数据传输的应用场景下,例如,游戏场景中多个游戏玩家匹配同一个游戏进程中,可以将第一预设数量的行动者划分为第二预设数量的行动者集合;将多个工作线程划分第三预设数量的工作线程组合;针对第二预设数量的行动者集合中的目标行动者组合,根据预先配置的线程映射表从第三预设数量的工作线程组合中确定与目标行动者集合匹配的目标工作线程;通过目标工作线程接收目标行动者组合传送的第一目标经验数据。
76.其中,线程映射表中包含不同行动者集合对应的工作线程组合。
77.示例性的,各actor向learner服务器传送第一目标经验数据时,通常各工作线程会通过一个传输接口接收并处理第一目标经验数据。然而,该过程在传输数据量巨大的情况下易造成堵塞,造成系统传输数据压力。
78.例如,当前与一个learner服务器连接20个actor,且learner服务器启动了10个工作线程,若不进行工作线程划分,则通过一个传输接口直接使用10个工作线程接收20个
actor发送的第一目标经验数据,在数据量较大的情况下易出现数据堵塞,增大系统传输数据压力,而在数据量较小时易出现一些线程传输压力大,而一些线程未进行数据传输,从而导致系统资源浪费。
79.而在进行工作进程和多个actor划分时,则预先将20个actor划分为5组,每个组包含4个actor,同时将10个工作线程也划分为5组,每个组包含2个工作线程,即每组均通过2个工作线程传输4个actor发送的经验数据。在该过程中,5组工作线程集合便可分配在不同的传输接口下,从而5组工作线程集合在不同的传输接口下接收并处理数据。
80.因此,为了解决上述问题,可以将各actor与多个工作线程分别进行划分,得到多组行动者集合以及工作线程组合,该过程第三预设数量的工作线程组合可以通过不同的传输接口接收与之对应行动者集合传送的第一目标经验数据,从而进一步提高了数据传输及处理效率。
81.应该理解的是,划分工作线程与第一预设数量的行动者的方式可以是平均划分或者其他任意方式,本公开实施例对此不作任何特殊限制。
82.在本公开一个可选的实施例中,在根据多个工作线程接收行动者传送的第一目标经验数据之后,learner服务器可以实时检测与行动者的网络状态信息;若网络状态信息不满足预设状态信息,则向行动者发送数据重传请求,数据重传请求用于请求行动者在网络状态信息满足预设状态信息时重传第一目标经验数据。
83.其中,网络连接信息即网络连接过程中的各项参数信息,例如,传输带宽,数据传输速率等。
84.示例性的,在learner服务器启动多个线程时,会建立learner服务器与每个actor之间的网络连接(例如,通过zmq构建网络连接关系),从而根据多个工作线程接收各actor传送的第一目标经验数据。
85.在数据传输过程中,learner服务器会实时检测或以预设时间间隔检测learner与各actor之间的网络连接信息。若一actor向learner服务器传输第一目标经验数据的过程中,learner服务器检测到数据传输速率小于一个预设传输速率,便认为该actor当前网络状态不佳。为了防止第一目标经验数据丢失,learner服务器可以向该actor发送数据重传请求,以便行动者在数据传输速率大于或等于一个预设传输速率时重传第一目标经验数据。
86.learner服务器通过检测到与行动者的网络状态信息,从而在网络状态信息不满足预设状态信息时进行数据重传可以确保该actor发送的数据不丢失,确保数据传输过程的安全性。
87.在步骤s403中,将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。
88.示例性的,learner接收到第一目标经验数据便可对强化学习模型进行训练并更新模型的网络参数,以便行动者执行与第二网络参数对应的行为,同时actor会结合当前环境与第二网络参数继续生成经验数据,直至达到终止条件结束强化学习模型的训练过程。
89.在执行步骤s403将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者执行与第二网络参数对应的目标动作之后,还可以判断是否达到强化学习模型训练的终止条件。若达到终止条件,则actor停止向learner服务器发
送经验数据;反之,若未达到终止条件,则actor继续向learner服务器发送经验数据,以便强化学习模型根据发送的经验数据更新ai策略。
90.在本公开一个可选的实施例中,若目标动作对应的第一行为参数与参考动作对应的第二行为参数的精度差值大于精度阈值,则接收行动者基于第二网络参数对应的第二目标经验数据;将强化学习模型的第二网络参数更新为与第二目标经验数据对应的第三网络参数,以便行动者执行与第三网络参数对应的动作。
91.示例性的,learner服务器可以根据actor发送的经验数据更新强化学习模型的网络参数(ai策略)是循环执行过程,以便基于当前环境和经验数据不断提升ai策略,提高actor执行目标动作的智能化。
92.当actor基于ai策略和当前环境下执行的目标动作与参考动作对应行为参数之间的精度差值小于或等于一精度阈值,则认为当前actor执行动作的准确度高,便可以结束强化学习模型的训练过程;反之,若actor基于ai策略和当前环境下执行的目标动作与参考动作对应行为参数之间的精度差值小于或等于一精度阈值,则认为当前actor执行动作的准确度低,仍需要继续进行模型训练以提高actor执行动作的精度。
93.在本公开另一个可选的实施例中,若训练强化学习模型的迭代次数大于预设迭代次数,则接收行动者基于第二网络参数对应的第二目标经验数据;将强化学习模型的第二网络参数更新为与第二目标经验数据对应的第三网络参数,以便行动者执行与第三网络参数对应的动作。
94.其中,预设迭代次数为用户预先设定的最大迭代次数。
95.为防止强化学习模型训练过程进入死循环过程,通常为该过程预先配置最大迭代次数,以便在最大迭代次数范围内进行模型训练,提高数据和系统安全性。
96.进一步的,以使用c++实现本公开提供的数据处理方法为例,为了降低开发人员的研究周期,从而提高开发效率,可以将本公开提供的数据处理过程封装为c++模块,以便python端直接调用该c++模块。
97.以下将结合图5对上述整个数据处理过程进行详细说明。如图5所示包含学习者learner以及执行者actor,其中,learner中可以包含python端和c++模块。
98.以执行一次数据处理过程为例,在python端,用户可以预先设定需要启动的线程数和缓存队列的数据量阈值(batch size),在learner接收到actor的传送的数据传输指令,便驱动python端调用c++模块,c++模块启动learner与actor之间的多个工作线程并建立网络连接。
99.针对每个工作线程,工作线程异步接收actor传送的初始经验数据,其中初始经验数据为字节类型。
100.在本公开一个可选的实施例中,为了节省网络带宽,通常actor发送的初始经验数据是经过压缩的,所以leaner接收到初始经验数据进行解压缩处理,得到第一中间经验数据。
101.在本公开一个可选的实施例中,对压缩后的第一中间经验数据进行反序列化处理得到第二中间经验数据,将第二中间经验数据存储至缓存队列。
102.每个工作线程均重复执行上述接收并处理经验数据以将第二中间经验数据存储至缓存队列的过程,直至缓存队列中的存储的第二中间经验数据的预设数据量大于或等于
数据量阈值,则将缓存队列中预设数据量的第二中间经验数据进行合并,便可得到第一目标经验数据(batch数据),以将第一目标经验数据推送至上层python端。
103.而python端在接收到第一目标经验数据便可以进行训练并更新强化学习模型的网络参数。learner与actor循环进行上述数据交互以更新强化学习模型的网络参数,直至达到训练终止条件。
104.为了实现上述数据处理方法,本公开的一个实施例中提供一种数据处理装置。图6示意性示出了数据处理装置的示意性架构图。
105.其中,该数据处理装置600包括线程启动模块601、数据接收模块602和参数更新模块603。
106.线程启动模块601用于响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;数据接收模块602用于根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;参数更新模块603用于将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。
107.本公开实施例提供的数据处理装置600,可以执行上述任一实施例中的数据处理方法的技术方案,其实现原理以及有益效果与数据处理方法的实现原理及有益效果类似,可参见数据处理方法的实现原理及有益效果,此处不再进行赘述。
108.进一步的,为了实现上述数据处理方法,本公开的一个实施例中还提供了另一种数据处理装置。图7示意性示出了数据处理装置的示意性架构图。
109.其中,数据处理装置700在线程启动模块601、数据接收模块602和参数更新模块603的基础上,该数据处理装置700还包括请求发送模块604。
110.在一个可选的实施例中,数据接收模块602具体用于根据多个工作线程接收行动者传送的初始经验数据;对初始经验数据进行反序列化处理,得到第一目标经验数据。
111.在一个可选的实施例中,数据接收模块602具体用于将初始经验数据进行解压缩处理,得到第一中间经验数据;对第一中间经验数据进行反序列化处理,得到第一目标经验数据。
112.在一个可选的实施例中,数据接收模块602具体用于对第一中间经验数据进行反序列化处理,得到第二中间经验数据;将第二中间经验数据存储至缓存队列;若缓存队列中第二中间经验数据的数据量大于或等于数据量阈值,则将数据量的第二中间经验数据进行合并,得到第一目标经验数据。
113.在一个可选的实施例中,数据接收模块602具体用于将第一预设数量的行动者划分为第二预设数量的行动者集合;将多个工作线程划分第三预设数量的工作线程组合;针对第二预设数量的行动者集合中的目标行动者组合,根据预先配置的线程映射表从第三预设数量的工作线程组合中确定与目标行动者集合匹配的目标工作线程;其中,线程映射表中包含不同行动者集合对应的工作线程组合;通过目标工作线程接收目标行动者组合传送的第一目标经验数据。
114.在一个可选的实施例中,数据接收模块602具体用于若目标动作对应的第一行为参数与参考动作对应的第二行为参数的精度差值大于精度阈值,则接收行动者基于第二网络参数对应的第二目标经验数据;参数更新模块603用于将强化学习模型的第二网络参数
更新为与第二目标经验数据对应的第三网络参数。
115.在一个可选的实施例中,数据处理装置700还包括请求发送模块604,其中,请求发送模块604用于检测与行动者的网络状态信息;若网络状态信息不满足预设状态信息,则向行动者发送数据重传请求,数据重传请求用于请求行动者在网络状态信息满足预设状态信息时重传第一目标经验数据。
116.本公开实施例提供的数据处理装置700,可以执行上述任一实施例中的数据处理方法的技术方案,其实现原理以及有益效果与数据处理方法的实现原理及有益效果类似,可参见数据处理方法的实现原理及有益效果,此处不再进行赘述。
117.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
118.根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
119.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
120.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
121.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
122.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
123.在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
124.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
125.下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
126.如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。
127.其中,存储单元存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元810可以执行如图4中所示的步骤s401至步骤s403。
128.存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
129.存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
130.总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
131.电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
132.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
133.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
134.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单
元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
135.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
136.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

技术特征:
1.一种数据处理方法,其特征在于,包括:响应于接收行动者传送的数据传输指令,根据所述数据传输指令启动学习者与所述行动者之间的多个工作线程;根据所述多个工作线程接收所述行动者传送的第一目标经验数据;其中,所述第一目标经验数据根据强化学习模型的第一网络参数确定;将所述强化学习模型的第一网络参数更新为与所述第一目标经验数据对应的第二网络参数,以便所述行动者执行与所述第二网络参数对应的目标动作。2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述多个工作线程接收所述行动者传送的第一目标经验数据,包括:根据所述多个工作线程接收所述行动者传送的初始经验数据;对所述初始经验数据进行反序列化处理,得到所述第一目标经验数据。3.根据权利要求2所述的数据处理方法,其特征在于,在所述对所述初始经验数据进行反序列化处理,得到所述第一目标经验数据,包括:将所述初始经验数据进行解压缩处理,得到第一中间经验数据;对所述第一中间经验数据进行反序列化处理,得到所述第一目标经验数据。4.根据权利要求3所述的数据处理方法,其特征在于,所述对所述第一中间经验数据进行反序列化处理,得到所述第一目标经验数据,包括:对所述第一中间经验数据进行反序列化处理,得到第二中间经验数据;将所述第二中间经验数据存储至缓存队列;若所述缓存队列中所述第二中间经验数据的数据量大于或等于数据量阈值,则将所述数据量的第二中间经验数据进行合并,得到所述第一目标经验数据。5.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述多个工作线程接收所述行动者传送的第一目标经验数据,包括:将第一预设数量的行动者划分为第二预设数量的行动者集合;将多个工作线程划分第三预设数量的工作线程组合;针对所述第二预设数量的行动者集合中的目标行动者组合,根据预先配置的线程映射表从所述第三预设数量的工作线程组合中确定与所述目标行动者集合匹配的目标工作线程;其中,所述线程映射表中包含不同行动者集合对应的工作线程组合;通过所述目标工作线程接收所述目标行动者组合传送的所述第一目标经验数据。6.根据权利要求1所述的数据处理方法,其特征在于,在所述将所述强化学习模型的第一网络参数更新为与所述第一目标经验数据对应的第二网络参数,以便所述行动者执行与所述第二网络参数对应的目标动作之后,所述方法还包括:若所述目标动作对应的第一行为参数与参考动作对应的第二行为参数的精度差值大于精度阈值,则接收所述行动者基于所述第二网络参数对应的第二目标经验数据;将所述强化学习模型的第二网络参数更新为与所述第二目标经验数据对应的第三网络参数。7.根据权利要求1所述的数据处理方法,其特征在于,在所述根据所述多个工作线程接收所述行动者传送的第一目标经验数据之后,所述方法还包括:检测与所述行动者的网络状态信息;
若所述网络状态信息不满足预设状态信息,则向所述行动者发送数据重传请求,所述数据重传请求用于请求所述行动者在所述网络状态信息满足所述预设状态信息时重传所述第一目标经验数据。8.一种数据处理装置,其特征在于,所述装置包括:线程启动模块,用于响应于接收行动者传送的数据传输指令,根据所述数据传输指令启动学习者与所述行动者之间的多个工作线程;数据接收模块,用于根据所述多个工作线程接收所述行动者传送的第一目标经验数据;其中,所述第一目标经验数据根据强化学习模型的第一网络参数确定;参数更新模块,用于将所述强化学习模型的第一网络参数更新为与所述第一目标经验数据对应的第二网络参数,以便所述行动者生成与所述第二网络参数对应的经验数据。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据处理方法。10.一种电子设备,其特征在于,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的数据处理方法。

技术总结
本公开提供了一种数据处理方法、数据处理装置、计算机存储介质和电子设备,涉及计算机技术领域。该数据处理方法包括:响应于接收行动者传送的数据传输指令,根据数据传输指令启动学习者与行动者之间的多个工作线程;根据多个工作线程接收行动者传送的第一目标经验数据;其中,第一目标经验数据根据强化学习模型的第一网络参数确定;将强化学习模型的第一网络参数更新为与第一目标经验数据对应的第二网络参数,以便行动者生成与第二网络参数对应的经验数据。本公开可以提高数据接收及处理的效率。效率。效率。


技术研发人员:申瑞珉 林悦 曾广俊
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.04.14
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐