CN111249738A - 游戏中人工智能模型的训练方法、装置、系统及服务器 - Google Patents

游戏中人工智能模型的训练方法、装置、系统及服务器 Download PDF

Info

Publication number
CN111249738A
CN111249738A CN202010126381.3A CN202010126381A CN111249738A CN 111249738 A CN111249738 A CN 111249738A CN 202010126381 A CN202010126381 A CN 202010126381A CN 111249738 A CN111249738 A CN 111249738A
Authority
CN
China
Prior art keywords
training
server
artificial intelligence
intelligence model
game
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010126381.3A
Other languages
English (en)
Other versions
CN111249738B (zh
Inventor
叶振斌
吕唐杰
范长杰
胡志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010126381.3A priority Critical patent/CN111249738B/zh
Publication of CN111249738A publication Critical patent/CN111249738A/zh
Application granted granted Critical
Publication of CN111249738B publication Critical patent/CN111249738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6027Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment

Abstract

本申请提供了一种游戏中人工智能模型的训练方法、装置、系统及服务器,涉及游戏技术领域,解决了游戏中人工智能模型的训练效率较低的技术问题。该方法包括:周期性获取所述代理服务器的当前第二结果数据,并更新历史第二结果数据;重复执行如下步骤,直至所述人工智能模型符合预期:基于历史第二结果数据,执行所述至少一个自身训练任务,得到当前第一结果数据;将所述当前第一结果数据周期性的与至少一个所述代理服务器同步,以及判断所述人工智能模型是否符合预期。

Description

游戏中人工智能模型的训练方法、装置、系统及服务器
技术领域
本申请涉及游戏技术领域,尤其是涉及一种游戏中人工智能模型的训练方法、装置、系统及服务器。
背景技术
在人工智能(Artificial Intelligence,AI)领域中,游戏人工智能是AI技术领域的一个新的分支,是将游戏和AI相结合的产物。
利用游戏AI,能够使游戏中的非玩家角色(Non-Player Character,NPC)等虚拟对象模型,模拟人类思维或者现实中的其他生物,表现出一定的智能行为,较好的AI能够使游戏变得更加逼真,更加接近现实。
目前,在应用游戏中的AI模型之前,需要预先对该模型进行训练。现有的人工智能模型的训练方法是利用运行游戏生成的游戏数据作为训练样本,对人工智能模型进行训练。但是,这种方法的模型训练时间较长,导致游戏中人工智能模型的训练效率较低。
发明内容
本发明的目的在于提供一种游戏中人工智能模型的训练方法、装置、系统及服务器,以解决游戏中人工智能模型的训练效率较低的技术问题。
第一方面,本申请实施例提供了一种游戏中人工智能模型的训练方法,应用于服务器,所述服务器预先配置有用于训练所述人工智能模型的至少一个自身训练任务和至少一个代理训练任务;所述服务器用于执行所述至少一个自身训练任务,生成第一结果数据;所述至少一个代理训练任务中的每个对应有代理服务器,所述代理服务器用于执行该代理服务器对应的所述代理训练任务,生成第二结果数据;所述方法包括:
周期性获取所述代理服务器的当前第二结果数据,并更新历史第二结果数据;
重复执行如下步骤,直至所述人工智能模型符合预期:
基于历史第二结果数据,执行所述至少一个自身训练任务,得到当前第一结果数据;
将所述当前第一结果数据周期性的与至少一个所述代理服务器同步,以及判断所述人工智能模型是否符合预期。
在一个可能的实现中,所述至少一个代理训练任务包括运行游戏实例,所述第二结果数据包括游戏数据;
所述至少一个自身训练任务包括将所述游戏数据作为训练样本训练所述人工智能模型,所述第一结果数据包括训练后的人工智能模型。
在一个可能的实现中,所述至少一个自身训练任务还包括接收并统计所述游戏数据;
所述至少一个代理训练任务还包括将所述游戏数据同步至所述服务器。
在一个可能的实现中,所述至少一个代理训练任务包括将游戏数据作为训练样本训练所述人工智能模型,所述第二结果数据包括训练后的人工智能模型;
所述至少一个自身训练任务包括运行至少一个游戏实例,所述第一结果数据包括所述游戏数据。
在一个可能的实现中,更新历史第二结果数据的步骤,包括:
如果所述服务器中的历史第二结果数据与所述当前第二结果数据不同,则将所述服务器中历史第二结果数据的内容更改为所述当前第二结果数据;
其中,所述历史第二结果数据是所述服务器在获取到所述当前第二结果数据之前,从所述代理服务器处获取到的第二结果数据。
在一个可能的实现中,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
应用发布订阅模式,通过广播的方式周期性的将所述训练后的人工智能模型分发到至少一个所述代理服务器。
在一个可能的实现中,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
应用数据缓存方式,向缓存库中存放所述游戏数据,以使所述代理服务器从所述缓存库中获取所述游戏数据。
在一个可能的实现中,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
周期性的向线程队列的末尾插入所述当前第一结果数据,以使所述代理服务器从所述线程队列中获取所述当前第一结果数据;
确定所述线程队列中所有数据占用的内存空间;
在所述线程队列的长度超过预设长度,或所述内存空间超过预设空间时,丢弃所述线程队列中的部分数据。
在一个可能的实现中,判断所述人工智能模型是否符合预期的步骤,包括:
如果训练后的所述人工智能模型的实际收敛值符合预期收敛值,则确定所述人工智能模型符合预期;或者,
如果利用训练后的所述人工智能模型生成的实际游戏数据符合预期游戏数据,则确定所述人工智能模型符合预期。
第二方面,提供了一种游戏中人工智能模型的训练方法,应用于训练服务器,所述训练服务器用于与至少一个运行服务器通信;所述至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据;所述方法包括:
周期性获取所述至少一个运行服务器中每个的当前游戏数据,并更新所述训练服务器中的历史游戏数据;
重复执行如下步骤,直至所述人工智能模型符合预期:
将所述历史游戏数据作为训练样本,训练所述人工智能模型,生成训练后的人工智能模型;
将所述训练后的人工智能模型周期性的与所述至少一个运行服务器同步,以及判断所述训练后的人工智能模型是否符合预期。
第三方面,提供了一种游戏中人工智能模型的训练方法,应用于运行服务器,所述运行服务器用于与至少一个训练服务器通信,所述至少一个训练服务器用于分别训练一个所述人工智能模型,生成训练后的人工智能模型;所述方法包括:
周期性获取所述至少一个训练服务器中每个的当前训练后的人工智能模型,并更新所述训练服务器中的历史训练后的人工智能模型;
重复执行如下步骤,直至所述人工智能模型符合预期:
利用所述历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据;
将所述游戏数据周期性的与所述至少一个训练服务器同步,以及判断所述人工智能模型是否符合预期。
第四方面,提供了一种游戏中人工智能模型的训练装置,应用于服务器,所述服务器预先配置有用于训练所述人工智能模型的至少一个自身训练任务和至少一个代理训练任务;所述服务器用于执行所述至少一个自身训练任务,生成第一结果数据;所述至少一个代理训练任务中的每个对应有代理服务器,所述代理服务器用于执行该代理服务器对应的所述代理训练任务,生成第二结果数据;所述装置包括:
获取单元,用于周期性获取所述代理服务器的当前第二结果数据,并更新历史第二结果数据;
执行单元,用于基于历史第二结果数据,执行所述至少一个自身训练任务,得到当前第一结果数据;
同步单元,用于将所述当前第一结果数据周期性的与至少一个所述代理服务器同步,以及判断所述人工智能模型是否符合预期;
其中,所述执行单元和所述同步单元重复运行,直至所述人工智能模型符合预期。
第五方面,提供了一种游戏中人工智能模型的训练装置,应用于训练服务器,所述训练服务器用于与至少一个运行服务器通信;所述至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据;所述装置包括:
第一获取模块,用于周期性获取所述至少一个运行服务器中每个的当前游戏数据,并更新所述训练服务器中的历史游戏数据;
训练模块,用于将所述历史游戏数据作为训练样本,训练所述人工智能模型,生成训练后的人工智能模型;
第一同步模块,用于将所述训练后的人工智能模型周期性的与所述至少一个运行服务器同步,以及判断所述训练后的人工智能模型是否符合预期;
其中,所述训练模块和所述第一同步模块重复执行,直至所述人工智能模型符合预期。
第六方面,提供了一种游戏中人工智能模型的训练装置,应用于运行服务器,所述运行服务器用于与至少一个训练服务器通信,所述至少一个训练服务器用于分别训练一个所述人工智能模型,生成训练后的人工智能模型;所述装置包括:
第二获取模块,用于周期性获取所述至少一个训练服务器中每个的当前训练后的人工智能模型,并更新所述训练服务器中的历史训练后的人工智能模型;
运行模块,用于利用所述历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据;
第二同步模块,用于将所述游戏数据周期性的与所述至少一个训练服务器同步,以及判断所述人工智能模型是否符合预期;
其中,所述运行模块和所述第二同步模块重复执行,直至所述人工智能模型符合预期。
第七方面,提供了一种游戏中人工智能模型的训练系统,包括至少一个上述第五方面所述的游戏中人工智能模型的训练装置,以及至少一个上述第六方面所述的游戏中人工智能模型的训练装置。
第八方面,本申请实施例又提供了一种服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面、第二方面、或第三方面所述方法。
第九方面,本申请实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面、第二方面、或第三方面所述方法。
本申请实施例带来了以下有益效果:本申请实施例提供的一种游戏中人工智能模型的训练方法、装置、系统及服务器,服务器中预先配置有用于训练人工智能模型的若干个自身训练任务和若干个代理训练任务,其中,服务器能够在服务器中执行若干个自身训练任务从而生成第一结果数据,若干个代理训练任务中的每个对应有代理服务器,该代理服务器能够在服务器中执行该代理服务器对应的代理训练任务,生成第二结果数据,本方案中,由于该服务器能够周期性获取代理服务器的当前第二结果数据,再更新历史第二结果数据,再重复执行自身训练任务及与代理服务器中的数据同步任务,即基于历史第二结果数据执行若干个自身训练任务从而得到当前第一结果数据,再将当前第一结果数据周期性的与若干个代理服务器同步,直至通过判断确定出人工智能模型符合预期,因此,本方案中的训练任务能够分别由服务器和代理服务器执行,服务器和代理服务器之间还能够同步执行训练任务的结果数据,使人工智能模型的多种训练任务能够由多个服务器联合起来执行,不再受单台服务器性能的限制,能够提高整个模型训练过程的速度和效率,从而解决了游戏中人工智能模型的训练效率较低的技术问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种游戏中人工智能模型的训练方法的流程示意图;
图2为本申请实施例二提供的一种游戏中人工智能模型的训练方法的流程示意图;
图3为本申请实施例三提供的一种游戏中人工智能模型的训练方法的流程示意图;
图4为本申请实施例四提供的一种游戏中人工智能模型的训练装置的结构示意图;
图5为本申请实施例五提供的一种游戏中人工智能模型的训练装置的结构示意图;
图6为本申请实施例六提供的一种游戏中人工智能模型的训练装置的结构示意图;
图7为本申请实施例七提供的一种游戏中人工智能模型的训练系统的结构示意图;
图8为本申请实施例八提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在游戏发展的早期,游戏中的非玩家角色表现出来的智能其实是游戏设计师和游戏开发工程师的设计,和非玩家角色自身的智能水平没有关系。这个阶段的游戏人工智能的作用主要在于:增加游戏的挑战性,增加游戏得可玩性,帮助展开游戏情节等。但是,随着人工智能理论和技术日益成熟及应用领域的不断扩大,已经可以将人工智能技术应用在游戏中,能够在游戏里社指出具备一定智能、拥有一定认知和决策能力的虚拟人物了。使用人工智能技术设计开发的非玩家角色具备更强、更快、更像人、风格更多样化、成本更低、迭代更快等特点,已经在游戏领域中占有重要的地位。
在各种人工智能技术中,强化学习(Reinforcement Learning,RL)是应用在游戏人工智能领域较为重要的技术之一。应用强化学习训练人工智能角色的过程中,算法依赖游戏对战数据,将游戏对战数据作为训练样本,并且这些样本数据只在本次训练中有应用价值,无法重复利用。而训练过程和游戏对战产生训练样本是同时发生的,并且,强化学习算法对样本数据量要求极大,很多时候需要数千万至上亿的训练样本数据。
由于强化学习对样本数据的需求量极大,在无法提供足够的游戏对战数据作为训练样本的情况下,一次强化学习训练人工智能角色的过程,就要耗费数周至数月的时间。
目前应用在游戏人工智能领域的强化学习训练框架有很多,通常都是基于强化学习、模仿学习等技术,面向AI的通用算法框架库。该算法框架集成了主流的强化学习算法和常见的实验环境,支持框架和算法分离,同时支持自身学习。该框架降低了使用强化学习训练人工智能游戏角色的门槛,简化了游戏的接入流程,用户不需要了解具体强化学习训练算法,仅需将游戏接入强化学习训练框架就能使用强化学习训练框架训练人工智能游戏角色。目前的强化学习训练框架包括以下三个部分:
游戏部分,该部分会打开多个游戏实例进行游戏对战,目的是产生足够多的游戏样本数据供强化学习算法进行训练。在这过程中,训练部分将当前最新的训练成果(数学模型)发回给游戏部分,作为人工智能角色的“大脑”进行决策,决策产生的游戏样本数据又发送给训练部分,产生一个循环。
训练部分,该部分接收游戏部分发送的大量游戏样本数据,使用强化学习算法进行训练,训练得到的数学模型发送给游戏部分,游戏人工智能角色通过数学模型进行决策,决策产生的游戏样本数据再次发送给训练部分,产生一个循环。这部分的目的是使用强化学习算法,训练得到一个足够智能的数学模型。
数据统计部分,接收来自游戏的数据并进行统计,目的是对训练过程进行有效的监控,对训练结果进行有效的评价。
需要说明的是,上述三部分是以进程的形式运行在一台服务器中的。但是,目前的这些强化学习训练框架通常无法支持超大规模的分布式训练,只能在一台机器上运行一个框架实例。受到单台服务器性能的限制,能同时运行的游戏数量是有限的,一般服务器仅能支持几十个游戏实例同时运行。同时,因为训练过程和游戏对战产生训练样本必须同时发生,所以服务器上还要运行强化学习算法。强化学习算法属于计算密集型,会进行大量数学运算占用处理器和显卡资源,并且,算法暂存和处理游戏产生的训练样本数据还会占用大量的内存资源。由于强化学习算法对训练样本数据的需求量极大,很多时候需要数千万至上亿的样本数据进行训练,单台服务器一般无法提供足够的游戏对战数据作为训练样本,这便导致强化学习对样本数据始终处在样训练本数据的提供量严重不足的状况下,这种情况导致一次强化学习训练人工智能角色的过程,就要耗费大量的时间,往往是数周甚至是数月的时间。
因此,强化学习算法对大量样本数据的需求和单台服务器性能的局限性之间的矛盾是目前各个强化学习训练框架都需要面临的问题,这个问题使训练人工智能模型所需的时间较长,从而导致游戏中人工智能模型的训练效率较低。
基于此,本申请实施例提供了一种游戏中人工智能模型的训练方法、装置、系统及服务器。可以解决游戏中人工智能模型的训练效率较低的技术问题。
下面结合附图对本发明实施例进行进一步地介绍。
实施例一:
图1为本申请实施例提供的一种游戏中人工智能模型的训练方法的流程示意图。其中,该方法应用于服务器,服务器预先配置有用于训练人工智能模型的至少一个自身训练任务和至少一个代理训练任务;服务器用于在该服务器中执行至少一个自身训练任务,生成第一结果数据;至少一个代理训练任务中的每个对应有代理服务器,代理服务器用于在该代理服务器中执行该代理服务器对应的代理训练任务,生成第二结果数据。如图1所示,该方法包括:
步骤S110,周期性获取代理服务器的当前第二结果数据,并更新历史第二结果数据。
其中,周期性指服务器能够重复、循环的不断获取到当前第二结果数据,本申请实施例中周期性的周期时间可以有多种情况。
例如,可以是按照下述步骤S120至步骤S130的循环周期,也可以是按照代理服务器与服务器主动通信的时间,还可以是按照服务器与代理服务器主动通信的时间。因此,服务器获取当前第二结果数据的时间不一定限定在下述的训练循环过程中,服务器可以随时获取到当前第二结果数据。
需要说明的是,至少一个服务器和至少一个代理服务器相互之间可以独立运行,代理服务器可以是本申请实施例中的服务器的代理,本申请实施例中的服务器也可以是代理服务器的代理。
重复执行如下步骤S120至步骤S130,直至人工智能模型符合预期:
步骤S120,基于历史第二结果数据执行至少一个自身训练任务,得到当前第一结果数据。
其中,自身训练任务可以是训练游戏中人工智能模型过程中的任何一个环节。例如,可以是直接训练人工智能模型的训练任务,也可以是为训练人工智能模型提供训练样本的训练任务,等等。
需要说明的是,当前第一结果数据是服务器根据更新后的历史第二结果数据执行该自身训练任务后而得到的代表此次训练任务结果的当前结果数据。例如,当前第一结果数据可以是训练人工智能模型任务后的模型,也可以是为生成的人工智能模型的训练样本,等等。
步骤S130,将当前第一结果数据周期性的与至少一个代理服务器同步,以及判断人工智能模型是否符合预期。若是,则结束;若否,则返回至步骤S220。
其中,本步骤中周期性的周期时间可以与步骤S110中的周期时间相同,也可以不同。再者,本步骤中,将当前第一结果数据周期性的同步到至少一个代理服务器的过程可以由任何手段实现,例如,服务器可以通过周期性的主动向代理服务器传输当前第一结果数据而达到同步,还可以通过代理服务器的主动获取当前第一结果数据而达到同步。
需要说明的是,本步骤中判断人工智能模型是否符合预期的过程,可以是本申请实施例中的服务器判断,也可以是服务器和代理服务器共同判断人工智能模型是否符合预期。
例如,服务器可以在此次训练后的人工智能模型的收敛值符合预期时确定人工智能模型符合预期,服务器确定也可以在利用人工智能模型生成符合预期的数据时确定人工智能模型符合预期,还可以同时需要代理服务器确定此次训练后的人工智能模型的收敛值符合预期,或同时需要代理服务器确定利用人工智能模型生成的数据符合预期,如游戏中的胜率、人头数、推塔数等数据符合一定的指标。
本申请实施例中,利用远程代理技术将模型训练框架的每个服务器中都增加代理训练任务,在服务器中,执行代理训练任务的部分仅负责与其他代理服务器进行通信而不会真正执行该代理训练任务,而真正执行该代理训练任务的是能够与本服务器进行通讯的代理服务器,以此实现模型训练的分布式框架,保证在分布式集群的所有服务器上,强化学习训练框架的每一个自身训练任务都只在其中一台服务器上真正执行完成,而在其他代理服务器上运行这个自身训练任务的代理模式。
示例性的,每台服务器上都设置有真正执行自身训练任务的实体模式模块,每台服务器上还可以增加设置用于与其他代理服务器针对代理训练任务而通讯的代理模式模块。其中,一个完整的训练任务可以在且仅在一台服务上以实体模式独立运行,在其他类型的服务器上均为对该训练任务以代理模式的运行。当然,任务类型相同的其他若干个完整的训练任务也可以分别在且仅在一台服务上以实体模式独立执行完成。
需要说明的是,在本申请实施例提供的服务器上,训练框架中除了代理模式模块运行的是自身训练任务的代理模式,其他模块可以均为自身训练任务的实体模式模块;而在每个代理服务器上,其中的实体模式模块对代理训练任务作为实体模式运行,其他模块则对其他类型训练任务以代理模式运行。
在实际应用中,上述模块的实体模式是以进程的方式运行并保留了所有模块的功能和逻辑;上述模块的代理模式是以线程的方式运行,保留通信接口负责与其他模块进行通信而不会执行该模块的其他功能,这些通信接口在分布式运行模式下被实现为分布式通信。
对于上述服务器与代理服务器,应用远程代理技术,可以方便的将强化学习的训练框架改造为可以强化学习分布式运行的框架,并且与原框架高度解耦合,同时兼容单机运行的模式。由于上述模块会在不同的服务器上运行,分布式强化学习训练框架的不同服务器中的模块之间需要通过网络进行分布式通信。
通过提供分布式模型训练框架,能够利用远程代理技术和分布式通信技术解决了强化学习算法对大量样本数据的需求和单台服务器性能的局限性之间的矛盾。具备在服务器集群上同时打开数较多局游戏产生数据作为样本进行人工智能虚拟对象训练的能力。相较于传统单机运行模式,使用该分布式框架可以在更短的时间里训练同等水平的人工智能模型。再者,使用远程代理技术,能够较为方便的将强化学习训练框架改造为可以分布式运行的框架同时兼容单机运行的模式,并且与框架高度解耦合,对强化学习训练框架的改动极少,使模型的强化学习门槛降低,使用方便。
因此,通过本申请实施例提供的游戏中人工智能模型的训练方法,解决了强化学习算法对大量样本数据的需求和单台服务器性能的局限性之间的矛盾,能够较为方便快捷的将强化学习训练框架改造为可以分布式运行的框架,利用分布式运行的方式使训练过程足够快捷、方便扩展,可以拓展代理服务器运行更多的第二任务,以满足强化学习算法对大量样本数据的需求。
本申请实施例中,由于该服务器能够周期性获取代理服务器的当前第二结果数据,再更新该服务器中的历史第二结果数据,再重复执行自身训练任务及与代理服务器中的数据同步任务,即基于历史第二结果数据执行若干个自身训练任务从而得到当前第一结果数据,再将当前第一结果数据周期性的与若干个代理服务器同步,直至通过判断确定出人工智能模型符合预期,因此,本方案中的训练任务能够分别由服务器和代理服务器执行,服务器和代理服务器之间还能够同步执行训练任务的结果数据,使人工智能模型的多种训练任务能够由多个服务器联合起来执行,不再受单台服务器性能的限制,能够提高整个模型训练过程的速度和效率。
下面对上述步骤进行详细介绍。
在一些实施例中,训练人工智能模型的整体训练任务可以包括服务器在该服务器中执行的训练人工智能模型的任务、以及代理服务器在该代理服务器中执行的为训练人工智能模型提供训练样本的任务。基于此,至少一个代理训练任务包括运行游戏实例,第二结果数据包括游戏数据;至少一个自身训练任务包括将游戏数据作为训练样本训练人工智能模型,第一结果数据包括训练后的人工智能模型。
需要说明的是,整个服务器集群中,每个训练任务中只有一个真正执行的服务器,当然,相同类型的多个训练任务可以分别由一个真正执行的服务器执行。
例如,服务器中的模型训练模块是真实实体,代理服务器中的模型训练模块是代理,保证训练一个模型的模型训练模块在集群服务器中只有一个真正执行的实体。因为如果其中某台服务器的训练相同模型的模型训练模块也启动的是真是实体,则一个模型就会被两个实体中的其中一个获取,后果是每个实体都拿到该模型中的部分数据,造成模型训练结果的错误。本申请实施例中,通过使至少一个服务器用于分别训练一个人工智能模型,能够使模型训练过程的准确度提升。
通过服务器执行训练人工智能模型的任务,以及代理服务器执行为训练人工智能模型提供训练样本的任务,能够使人工智能模型的整体训练框架分布在多个服务器上,通过增加服务器的运行量来提高人工智能模型的训练速度和效率。
基于此,服务器还可以在该服务器中对游戏数据进行统计。基于此,至少一个自身训练任务还包括接收并统计游戏数据;至少一个代理训练任务还包括将游戏数据同步至服务器。
需要说明的是,训练服务器中的数据统计模块是真实实体,游戏服务器中的数据统计模块是代理,即每个游戏服务器上必须启动数据统计模块的代理,以保证数据统计模块在集群中只有一个实体。
如果其中某台游戏服务器的数据统计模块也启动的是真是实体,那么,一个数据就会被两个实体中的其中一个拿到,后果是每个实体都拿到所有数据中的部分数据,造成统计结果错误。
例如,游戏A产生用于统计的数据要发给训练服务器上的数据统计模块实体,需要通过游戏服务器A上启动的数据统计模块代理进行转发,如果游戏服务器A上不启动这个代理,则游戏A产生用于统计的数据就会丢失。
此外,训练模块也可以用到数据统计模块中的数据。例如,根据统计模块中的数据作为训练样本进行训练。再例如,对于数据统计模块中的胜率小的战队,训练模块对此进行更具有针对性强化训练。
再者,计游戏数据的任务还有助于模型的训练过程,示例性的,为强化学习过程提供训练完成的指标。例如,通过训练服务器中的数据统计模块来实现胜率指标、人头数指标、推塔数指标等数据的统计。数据统计模块中的一部分数据可以作为统计模块的可视化数据,另一部分游戏数据可以为训练模块提供训练样本,以使指标更加全面。
通过服务器在该服务器中统计从代理服务器获取到的游戏数据,能够提高服务器在该服务器中的模型训练过程的训练效率。
在一些实施例中,训练人工智能模型的整体训练任务可以包括服务器在该服务器中执行的为训练人工智能模型提供训练样本的任务、以及代理服务器在该代理服务器中执行的训练人工智能模型的任务。基于此,至少一个代理训练任务包括将游戏数据作为训练样本训练人工智能模型,第二结果数据包括训练后的人工智能模型;至少一个自身训练任务包括运行至少一个游戏实例,第一结果数据包括游戏数据。
本申请实施例中,多个服务器中的每个运行至少一个游戏实例,能够获得数量更多的游戏数据作为训练样本,解决了强化学习算法对大量样本数据的需求和单台服务器性能的局限性之间的矛盾。因此,具备在服务器集群上同时打开数量较多的游戏产生的数据,并将此作为训练样本进行人工智能模型训练的能力。相较于传统单机运行模式,使用该框架可以在更短的时间里训练同等水平的人工智能角色。
通过将多个游戏实例分散运行在多个游戏服务器上,以此解决单台服务的性能瓶颈问题。而且,分布式运行的方式要足够快捷、方便扩展,可以拓展游戏服务器运行更多的游戏实例以满足强化学习算法对大量样本数据的需求。
在一些实施例中,上述步骤S110可以包括如下步骤:
如果服务器中的历史第二结果数据与当前第二结果数据不同,则将服务器中历史第二结果数据的内容更改为当前第二结果数据;其中,历史第二结果数据是服务器在获取到当前第二结果数据之前,从代理服务器处获取到的第二结果数据。
通过将服务器中历史第二结果数据的内容更改为当前第二结果数据,可以对服务器中的历史第二结果数据进行更为有效、准确的更新。
在一些实施例中,上述步骤S130中的同步过程,可以包括多种实现方式。作为一个示例,服务器可以通过广播的方式将训练后的人工智能模型分发到多个代理服务器。例如,上述步骤S130可以包括如下步骤:
步骤a,应用发布订阅模式,通过广播的方式周期性的将训练后的人工智能模型分发到至少一个代理服务器。
需要说明的是,发布订阅模式也可以为观察者模式,其定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。
本申请实施例中,发布订阅模式应用在训练后的人工智能模型的分发。示例性的,人工智能模型的训练算法须要在训练过程中将模型分发至运行游戏的服务器,发布订阅模式会以类似广播的方式将模型分发至游戏服务器。
例如,发布者训练服务器在发布模型之前,先每隔一秒钟发布一个问候消息如“hello”,订阅者游戏服务器收到这个消息之后,发送一个回复消息给发布者训练服务器如“got”,发布者训练服务器即知道这个订阅者游戏服务器已经成功订阅了,等到发布者训练服务器收到所有游戏服务器的“got”消息,就开始真正发布人工智能模型。
需要说明的是,模型可能丢失的原因在于,发布者发布模型的时候,有可能订阅者还没来得及订阅,造成模型的丢失,通过发布订阅模式的同步机制便能够解决这个问题。
本申请实施例中,通过发布订阅模式能够使模型的分发效率不受游戏数量的影响,当游戏数量较大的时候,依然能保证分发效率。同时,增加了发布者和订阅者同步机制,保证数学模型不丢失。因此,提高了人工智能模型的分发效率。
作为另一个示例,服务器可以利用缓存库,实现与代理服务器中的游戏数据的同步过程。例如,上述步骤S130可以包括如下步骤:
步骤b,应用数据缓存方式,向缓存库中存放游戏数据,以使代理服务器从缓存库中获取游戏数据。
应用数据缓存方式,可以实现游戏数据即训练样本的收发。示例性的,利用一个数据缓存数据库,游戏服务器往缓存数据库中存放游戏数据,训练服务器从缓存数据库中获取游戏数据,在这个过程中,训练服务器与游戏服务器之间采用的是无回复的通信模式。
在实际应用中,训练服务器可以维护一个有限制大小的数据池,有些模块往数据池里放数据,有些模块从数据池中获取数据。本申请实施例中,各个游戏服务器将游戏数据存放到这个数据池中,而训练服务器则从数据池中取出游戏数据用于作为训练模型的训练样本。
通过服务器向缓存库中存放游戏数据、几代理服务器从缓存库中获取游戏数据的方式,实现了负载均衡,保证数据缓存库的性能稳定,能够提高作为训练样本的游戏数据的收发效率。
作为另一个示例,服务器可以利用线程队列,实现与代理服务器的通信过程。例如,上述步骤S130可以包括如下步骤:
步骤c,周期性的向线程队列的末尾插入当前第一结果数据,以使代理服务器从线程队列中获取当前第一结果数据;
步骤d,确定线程队列中所有数据占用的内存空间;
步骤e,在线程队列的长度超过预设长度,或内存空间超过预设空间时,丢弃线程队列中的部分数据。
分布式的线程队列可以应用在统计数据以及其他数据的传递过程。强化学习训练框架中的很多数据可以通过队列进行跨进程的传递和共享,在分布式模式下,通过分布式队列可以实现分布式队列以取代跨进程队列。
需要说明的是,普通队列是线程安全的,一般通过锁实现,保证任何时间只有一个线程可以放数据或者取数据。本申请实施例中的分布式的线程队列,功能包括了普通队列的功能,而且还可以在分布式环境下在不同服务器上使用同一个线程队列。分布式的线程队列利用锁保证线程安全,而且,该锁是一个分布式锁。
下面以使用远程字典服务(Remote Dictionary Server,Redis)实现分布式锁及分布式的线程队列为例进行说明。使用Redis的列表作为队列存储数据的结构,Redis中支持使用脚本语言将若干指令合并作为原子操作,当某线程执行放入数据的时候,该脚本语言执行这是三个骤作:往列表末尾插入数据;如果超过队列限制大小则丢掉这个数据;返回队列的真实大小。这三个步骤作为原子操作,中间不会被别的线程插入执行,保证了线程安全。该线程根据返回的队列大小判断上述放入数据的动作是否成功执行,如果不成功则再尝试一次直到成功放入数据。
通过线程队列的方式,使分布式的训练框架中的各个服务器之间能够进行更加有效的通信,而且,分布式的线程队列能够利用锁保证该线程中的数据安全。
在一些实施例中,上述步骤S130可以包括如下步骤:
如果训练后的人工智能模型的实际收敛值符合预期收敛值,则确定人工智能模型符合预期;或者,
如果利用训练后的人工智能模型生成的实际游戏数据符合预期游戏数据,则确定人工智能模型符合预期。
通过判断实际收敛值是否符合预期收敛值,或判断实际游戏数据是否符合预期游戏数据,能够更加准确的确定出人工智能模型是否符合预期。
实施例二:
图2为本申请实施例提供的一种游戏中人工智能模型的训练方法的流程示意图。其中,该方法应用于训练服务器,训练服务器用于与至少一个运行服务器通信;至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据。如图2所示,该方法包括:
S210,周期性获取至少一个运行服务器中每个的当前游戏数据,并更新训练服务器中的历史游戏数据。
重复执行如下步骤S220至步骤S230,直至人工智能模型符合预期:
S220,将历史游戏数据作为训练样本,训练人工智能模型,生成训练后的人工智能模型。
S230,将训练后的人工智能模型周期性的与至少一个运行服务器同步,以及判断训练后的人工智能模型是否符合预期。
本申请实施例提供的游戏中人工智能模型的训练方法,与上述实施例一提供的游戏中人工智能模型的训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例三:
图3为本申请实施例提供的一种游戏中人工智能模型的训练方法的流程示意图。其中,该方法应用于运行服务器,运行服务器用于与至少一个训练服务器通信,至少一个训练服务器用于分别训练一个人工智能模型,生成训练后的人工智能模型。如图3所示,该方法包括:
S310,周期性获取至少一个训练服务器中每个的当前训练后的人工智能模型,并更新训练服务器中的历史训练后的人工智能模型。
重复执行如下步骤S320至步骤S330,直至人工智能模型符合预期:
S320,利用历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据。
S330,将游戏数据周期性的与至少一个训练服务器同步,以及判断人工智能模型是否符合预期。
本申请实施例提供的游戏中人工智能模型的训练方法,与上述实施例一提供的游戏中人工智能模型的训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例四:
图4提供了一种游戏中人工智能模型的训练装置的结构示意图。该装置应用于服务器,服务器预先配置有用于训练人工智能模型的至少一个自身训练任务和至少一个代理训练任务;服务器用于在该服务器中执行至少一个自身训练任务,生成第一结果数据;至少一个代理训练任务中的每个对应有代理服务器,代理服务器用于在该代理服务器中执行该代理服务器对应的代理训练任务,生成第二结果数据。如图4所示,游戏中人工智能模型的训练装置400包括:
获取单元401,用于周期性获取代理服务器的当前第二结果数据,并更新历史第二结果数据;
执行单元402,用于基于历史第二结果数据,执行至少一个自身训练任务,得到当前第一结果数据;
同步单元403,用于将当前第一结果数据周期性的与至少一个代理服务器同步,以及判断人工智能模型是否符合预期;
其中,执行单元和同步单元重复运行,直至人工智能模型符合预期。
在一些实施例中,所述至少一个代理训练任务包括运行游戏实例,所述第二结果数据包括游戏数据;
所述至少一个自身训练任务包括将所述游戏数据作为训练样本训练所述人工智能模型,所述第一结果数据包括训练后的人工智能模型。
在一些实施例中,所述至少一个自身训练任务还包括接收并统计所述游戏数据;
所述至少一个代理训练任务还包括将所述游戏数据同步至所述服务器。
在一些实施例中,所述至少一个代理训练任务包括将游戏数据作为训练样本训练所述人工智能模型,所述第二结果数据包括训练后的人工智能模型;
所述至少一个自身训练任务包括运行至少一个游戏实例,所述第一结果数据包括所述游戏数据。
在一些实施例中,获取单元401还用于:
如果所述服务器中的历史第二结果数据与所述当前第二结果数据不同,则将所述服务器中历史第二结果数据的内容更改为所述当前第二结果数据;
其中,所述历史第二结果数据是所述服务器在获取到所述当前第二结果数据之前,从所述代理服务器处获取到的第二结果数据。
在一些实施例中,同步单元403具体用于:
应用发布订阅模式,通过广播的方式周期性的将所述训练后的人工智能模型分发到至少一个所述代理服务器。
在一些实施例中,同步单元403具体用于:
应用数据缓存方式,向缓存库中存放所述游戏数据,以使所述代理服务器从所述缓存库中获取所述游戏数据。
在一些实施例中,同步单元403具体用于:
周期性的向线程队列的末尾插入所述当前第一结果数据,以使所述代理服务器从所述线程队列中获取所述当前第一结果数据;
确定所述线程队列中所有数据占用的内存空间;
在所述线程队列的长度超过预设长度,或所述内存空间超过预设空间时,丢弃所述线程队列中的部分数据。
在一些实施例中,同步单元403还用于:
如果训练后的所述人工智能模型的实际收敛值符合预期收敛值,则确定所述人工智能模型符合预期;或者,
如果利用训练后的所述人工智能模型生成的实际游戏数据符合预期游戏数据,则确定所述人工智能模型符合预期。
本申请实施例提供的游戏中人工智能模型的训练装置,与上述实施例提供的游戏中人工智能模型的训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例五:
图5提供了一种游戏中人工智能模型的训练装置的结构示意图。该装置应用于训练服务器,训练服务器用于与至少一个运行服务器通信;至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据。如图5所示,游戏中人工智能模型的训练装置500包括:
第一获取模块501,用于周期性获取至少一个运行服务器中每个的当前游戏数据,并更新训练服务器中的历史游戏数据;
训练模块502,用于将历史游戏数据作为训练样本,训练人工智能模型,生成训练后的人工智能模型;
第一同步模块503,用于将训练后的人工智能模型周期性的与至少一个运行服务器同步,以及判断训练后的人工智能模型是否符合预期;
其中,训练模块和第一同步模块重复执行,直至人工智能模型符合预期。
本申请实施例提供的游戏中人工智能模型的训练装置,与上述实施例提供的游戏中人工智能模型的训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例六:
图6提供了一种游戏中人工智能模型的训练装置的结构示意图。该装置应用于运行服务器,运行服务器用于与至少一个训练服务器通信,至少一个训练服务器用于分别训练一个人工智能模型,生成训练后的人工智能模型。如图6所示,游戏中人工智能模型的训练装置600包括:
第二获取模块601,用于周期性获取至少一个训练服务器中每个的当前训练后的人工智能模型,并更新运行服务器中的历史训练后的人工智能模型;
运行模块602,用于利用历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据;
第二同步模块603,用于将游戏数据周期性的与至少一个训练服务器同步,以及判断人工智能模型是否符合预期;
其中,运行模块和第二同步模块重复执行,直至人工智能模型符合预期。
本申请实施例提供的游戏中人工智能模型的训练装置,与上述实施例提供的游戏中人工智能模型的训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例七:
本申请实施例还提供了一种游戏中人工智能模型的训练系统。游戏中人工智能模型的训练系统包括:至少一个上述实施例五的游戏中人工智能模型的训练装置,以及至少一个上述实施例六的游戏中人工智能模型的训练装置。
在实际应用中,游戏中人工智能模型的训练系统中每个服务器都可以在运行之前由用户按照需求自由配置。例如,游戏服务器的数量、训练服务器的数量、每个服务器内部的模块框架、每个服务器的功能、每个服务器的自身训练任务和代理训练任务。而且,至少一个训练服务器中的每个可以各用不同的训练算法参数单独训练,能够同时分别训练出不同算法的模型。
示例性的,游戏中人工智能模型的训练系统采用支持游戏人工智能开发的分布式强化学习框架,其中可以包括一个训练服务器(即实施例五中的运行服务器)和多个游戏服务器(即实施例六中的运行服务器),如图7所示。在强化学习训练框架的每个模块都增加了代理模式,运行在代理模式的模块仅负责与其他模块进行通信而不会执行该模块的其他功能。运行分布式框架时,能够保证在分布式集群的所有服务器上,强化学习训练框架的每一个模块都只在其中一台服务器上运行一个真正的实体,而在其他服务器上运行这个模块的代理模式。每台服务器上都拥有所有模块(实体模式或代理模式),一个模块在且仅在一台服务上以实体模式运行,在其他服务器上均为代理模式运行。
例如,如图7所示,在训练服务器上,强化学习训练框架除了游戏模块运行的是代理模式,其他的训练算法和数据统计的模块均为实体模式;而在每个游戏服务器中,一个游戏作为实体模式运行,其他的模块则为代理模式运行。
在实际应用中,模块实体模式是以进程的方式运行并保留了所有模块的功能和逻辑;模块代理模式是以线程的方式运行,保留通信接口负责与其他模块进行通信而不会执行该模块的其他功能。在传统强化学习训练框架单机运行模式下,这些通信接口被实现为跨进程通信;但在分布式运行模式下,这些通信接口被实现为分布式通信。
再者,多个游戏服务器可以分别运行相同种类的不同游戏实例,每个游戏服务器中可以运行相同种类的多个不同游戏实例。例如,如图7所示,训练用的游戏为游戏B,可以在一个游戏服务器上打开30个游戏B,类似一台电脑上打开多个word文档。服务器的性能越好,可以同时打开的游戏数量越多。也可以不限于一台服务器的性能,例如,能够使用三台甚至更多的游戏服务器,每台游戏服务器开三十个游戏B,就能同时运行九十个游戏B,产生九十个游戏B的训练数据,生成作为训练样本的游戏数据的效率便能够得到大幅度提升。
本申请实施例提供的游戏中人工智能模型的训练系统,与上述实施例提供的游戏中人工智能模型的训练方法及装置具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例八:
本申请实施例提供的一种服务器800,如图8所示,包括:处理器801、存储器802和总线,所述存储器802存储有所述处理器801可执行的机器可读指令,当电子设备运行时,所述处理器801与所述存储器802之间通过总线通信,所述处理器801执行所述机器可读指令,以执行如上述游戏中虚拟角色的移动控制方法的步骤。
具体地,上述存储器802和处理器801能够为通用的存储器和处理器,这里不做具体限定,当处理器801运行存储器802存储的计算机程序时,能够执行上述游戏中人工智能模型的训练方法。
对应于上述游戏中人工智能模型的训练方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述游戏中人工智能模型的训练方法的步骤。
本申请实施例所提供的游戏中人工智能模型的训练装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (17)

1.一种游戏中人工智能模型的训练方法,其特征在于,应用于服务器,所述服务器预先配置有用于训练所述人工智能模型的至少一个自身训练任务和至少一个代理训练任务;所述服务器用于执行所述至少一个自身训练任务,生成第一结果数据;所述至少一个代理训练任务中的每个对应有代理服务器,所述代理服务器用于执行该代理服务器对应的所述代理训练任务,生成第二结果数据;所述方法包括:周期性获取所述代理服务器的当前第二结果数据,并更新历史第二结果数据;
重复执行如下步骤,直至所述人工智能模型符合预期:
基于历史第二结果数据,执行所述至少一个自身训练任务,得到当前第一结果数据;
将所述当前第一结果数据周期性的与至少一个所述代理服务器同步,以及判断所述人工智能模型是否符合预期。
2.根据权利要求1所述的方法,其特征在于,所述至少一个代理训练任务包括运行游戏实例,所述第二结果数据包括游戏数据;
所述至少一个自身训练任务包括将所述游戏数据作为训练样本训练所述人工智能模型,所述第一结果数据包括训练后的人工智能模型。
3.根据权利要求2所述的方法,其特征在于,所述至少一个自身训练任务还包括接收并统计所述游戏数据;
所述至少一个代理训练任务还包括将所述游戏数据同步至所述服务器。
4.根据权利要求1所述的方法,其特征在于,所述至少一个代理训练任务包括将游戏数据作为训练样本训练所述人工智能模型,所述第二结果数据包括训练后的人工智能模型;
所述至少一个自身训练任务包括运行至少一个游戏实例,所述第一结果数据包括所述游戏数据。
5.根据权利要求1所述的方法,其特征在于,更新历史第二结果数据的步骤,包括:
如果所述服务器中的历史第二结果数据与所述当前第二结果数据不同,则将所述服务器中历史第二结果数据的内容更改为所述当前第二结果数据;
其中,所述历史第二结果数据是所述服务器在获取到所述当前第二结果数据之前,从所述代理服务器处获取到的第二结果数据。
6.根据权利要求2所述的方法,其特征在于,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
应用发布订阅模式,通过广播的方式周期性的将所述训练后的人工智能模型分发到至少一个所述代理服务器。
7.根据权利要求4所述的方法,其特征在于,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
应用数据缓存方式,向缓存库中存放所述游戏数据,以使所述代理服务器从所述缓存库中获取所述游戏数据。
8.根据权利要求1所述的方法,其特征在于,将所述当前第一结果数据周期性的与至少一个所述代理服务器同步的步骤,包括:
周期性的向线程队列的末尾插入所述当前第一结果数据,以使所述代理服务器从所述线程队列中获取所述当前第一结果数据;
确定所述线程队列中所有数据占用的内存空间;
在所述线程队列的长度超过预设长度,或所述内存空间超过预设空间时,丢弃所述线程队列中的部分数据。
9.根据权利要求1所述的方法,其特征在于,判断所述人工智能模型是否符合预期的步骤,包括:
如果训练后的所述人工智能模型的实际收敛值符合预期收敛值,则确定所述人工智能模型符合预期;或者,
如果利用训练后的所述人工智能模型生成的实际游戏数据符合预期游戏数据,则确定所述人工智能模型符合预期。
10.一种游戏中人工智能模型的训练方法,其特征在于,应用于训练服务器,所述训练服务器用于与至少一个运行服务器通信;所述至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据;所述方法包括:
周期性获取所述至少一个运行服务器中每个的当前游戏数据,并更新所述训练服务器中的历史游戏数据;
重复执行如下步骤,直至所述人工智能模型符合预期:
将所述历史游戏数据作为训练样本,训练所述人工智能模型,生成训练后的人工智能模型;
将所述训练后的人工智能模型周期性的与所述至少一个运行服务器同步,以及判断所述训练后的人工智能模型是否符合预期。
11.一种游戏中人工智能模型的训练方法,其特征在于,应用于运行服务器,所述运行服务器用于与至少一个训练服务器通信,所述至少一个训练服务器用于分别训练一个所述人工智能模型,生成训练后的人工智能模型;所述方法包括:
周期性获取所述至少一个训练服务器中每个的当前训练后的人工智能模型,并更新所述运行服务器中的历史训练后的人工智能模型;
重复执行如下步骤,直至所述人工智能模型符合预期:
利用所述历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据;
将所述游戏数据周期性的与所述至少一个训练服务器同步,以及判断所述人工智能模型是否符合预期。
12.一种游戏中人工智能模型的训练装置,其特征在于,应用于服务器,所述服务器预先配置有用于训练所述人工智能模型的至少一个自身训练任务和至少一个代理训练任务;所述服务器用于执行所述至少一个自身训练任务,生成第一结果数据;所述至少一个代理训练任务中的每个对应有代理服务器,所述代理服务器用于执行该代理服务器对应的所述代理训练任务,生成第二结果数据;所述装置包括:
获取单元,用于周期性获取所述代理服务器的当前第二结果数据,并更新历史第二结果数据;
执行单元,用于基于历史第二结果数据,执行所述至少一个自身训练任务,得到当前第一结果数据;
同步单元,用于将所述当前第一结果数据周期性的与至少一个所述代理服务器同步,以及判断所述人工智能模型是否符合预期;
其中,所述执行单元和所述同步单元重复运行,直至所述人工智能模型符合预期。
13.一种游戏中人工智能模型的训练装置,其特征在于,应用于训练服务器,所述训练服务器用于与至少一个运行服务器通信;所述至少一个运行服务器用于分别运行至少一个游戏实例,生成游戏数据;所述装置包括:
第一获取模块,用于周期性获取所述至少一个运行服务器中每个的当前游戏数据,并更新所述训练服务器中的历史游戏数据;
训练模块,用于将所述历史游戏数据作为训练样本,训练所述人工智能模型,生成训练后的人工智能模型;
第一同步模块,用于将所述训练后的人工智能模型周期性的与所述至少一个运行服务器同步,以及判断所述训练后的人工智能模型是否符合预期;
其中,所述训练模块和所述第一同步模块重复执行,直至所述人工智能模型符合预期。
14.一种游戏中人工智能模型的训练装置,其特征在于,应用于运行服务器,所述运行服务器用于与至少一个训练服务器通信,所述至少一个训练服务器用于分别训练一个所述人工智能模型,生成训练后的人工智能模型;所述装置包括:
第二获取模块,用于周期性获取所述至少一个训练服务器中每个的当前训练后的人工智能模型,并更新所述运行服务器中的历史训练后的人工智能模型;
运行模块,用于利用所述历史训练后的人工智能模型运行至少一个游戏实例,生成游戏数据;
第二同步模块,用于将所述游戏数据周期性的与所述至少一个训练服务器同步,以及判断所述人工智能模型是否符合预期;
其中,所述运行模块和所述第二同步模块重复执行,直至所述人工智能模型符合预期。
15.一种游戏中人工智能模型的训练系统,其特征在于,包括至少一个如权利要求13所述的游戏中人工智能模型的训练装置,以及至少一个如权利要求14所述的游戏中人工智能模型的训练装置。
16.一种服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至11任一项所述的方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至11任一项所述的方法。
CN202010126381.3A 2020-02-27 2020-02-27 游戏中人工智能模型的训练方法、装置、系统及服务器 Active CN111249738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010126381.3A CN111249738B (zh) 2020-02-27 2020-02-27 游戏中人工智能模型的训练方法、装置、系统及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010126381.3A CN111249738B (zh) 2020-02-27 2020-02-27 游戏中人工智能模型的训练方法、装置、系统及服务器

Publications (2)

Publication Number Publication Date
CN111249738A true CN111249738A (zh) 2020-06-09
CN111249738B CN111249738B (zh) 2023-04-11

Family

ID=70944425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010126381.3A Active CN111249738B (zh) 2020-02-27 2020-02-27 游戏中人工智能模型的训练方法、装置、系统及服务器

Country Status (1)

Country Link
CN (1) CN111249738B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112169311A (zh) * 2020-10-20 2021-01-05 网易(杭州)网络有限公司 训练游戏ai的方法、系统、存储介质及计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678858A (zh) * 2017-09-30 2018-02-09 广东欧珀移动通信有限公司 应用处理方法、装置、存储介质及电子设备
CN107998661A (zh) * 2017-12-26 2018-05-08 苏州大学 一种在线对战游戏的辅助决策方法、装置及存储介质
CN110147883A (zh) * 2019-05-28 2019-08-20 航天科工系统仿真科技(北京)有限公司 用于作战仿真的模型的训练方法、装置、设备和存储介质
CN110368690A (zh) * 2019-07-31 2019-10-25 腾讯科技(深圳)有限公司 游戏决策模型训练方法、游戏策略生成方法及装置
US20190354759A1 (en) * 2018-05-21 2019-11-21 Electronic Arts Inc. Artificial intelligence for emulating human playstyles

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678858A (zh) * 2017-09-30 2018-02-09 广东欧珀移动通信有限公司 应用处理方法、装置、存储介质及电子设备
CN107998661A (zh) * 2017-12-26 2018-05-08 苏州大学 一种在线对战游戏的辅助决策方法、装置及存储介质
US20190354759A1 (en) * 2018-05-21 2019-11-21 Electronic Arts Inc. Artificial intelligence for emulating human playstyles
CN110147883A (zh) * 2019-05-28 2019-08-20 航天科工系统仿真科技(北京)有限公司 用于作战仿真的模型的训练方法、装置、设备和存储介质
CN110368690A (zh) * 2019-07-31 2019-10-25 腾讯科技(深圳)有限公司 游戏决策模型训练方法、游戏策略生成方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112169311A (zh) * 2020-10-20 2021-01-05 网易(杭州)网络有限公司 训练游戏ai的方法、系统、存储介质及计算机设备

Also Published As

Publication number Publication date
CN111249738B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
Fujimoto Parallel and distributed simulation systems
CN109902820B (zh) Ai模型训练方法、装置、存储介质及设备
US8126994B2 (en) Simulation techniques in a distributed computer system
CN111737012B (zh) 数据包的同步方法、装置、设备及存储介质
RU2009136684A (ru) Распределенная сетевая архитектура для введения динамического информационного содержимого в синтезированную среду
CN101335916A (zh) 一种通用的手机角色扮演(rpg)网络游戏引擎
CN111035932A (zh) 游戏副本处理方法、装置、电子设备及存储介质
CN111249738B (zh) 游戏中人工智能模型的训练方法、装置、系统及服务器
US11707684B2 (en) Cross-platform consumption of in-game objects
EP3934775B1 (en) Peer-to-peer multiplayer cloud gaming architecture
Shen et al. Area of simulation: Mechanism and architecture for multi-avatar virtual environments
WO2016189317A1 (en) An online game having a computerized recommender system
CN112084044A (zh) 系统中事件处理方法及相关装置
Joselli et al. An architecture with automatic load balancing and distribution for digital games
CN114470787A (zh) 服务处理方法、装置、电子设备、存储介质及程序产品
CN112891952A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
Raaen et al. A demonstration of a lockless, relaxed atomicity state parallel game server (LEARS)
CN111729292B (zh) 文字游戏中数据处理方法及装置
GB2538720A (en) An online game having a computerized recommender system for delivering personal recommendations
Huynh et al. An analysis of continuous consistency models in real time peer-to-peer fighting games
CN113419850B (zh) 一种实体的并行仿真方法、装置、电子设备及存储介质
GB2538723A (en) An online game having a computerized recommender system with reduced data processing requirements
Roughton et al. Concentus: Applying Stream Processing to Online Collective Interaction
Okamoto et al. Rapid Authoring of Web-based Multiplayer Online Games
CN114404994A (zh) 游戏数据处理方法、设备、介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant