ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

王者荣耀第一弹

2022-04-19 22:32:00  阅读:254  来源: 互联网

标签:王者 第一 AI 荣耀 Server 训练 RL Pool 游戏


     1 当前使用 AI 玩对抗性游戏的主要分两种:以星际为首的 RTS 游戏,和以 DOTA为 首的 MOBA 游戏。两种游戏侧重的学习难点不同:对于星际类的游戏来说,单个 unit 的行为较为简单,主要学习的是如何进行兵力组选择和进攻策略;而对于 DOTA 类的游戏来说,对于一个英雄的操作来说是相当复杂的(涉及到技能连招,攻击目标选择,走位等等),因此这类游戏主要学习的是单英雄的操控。

  

  (名词解释及感悟: RTS   即时战略游戏(Real-Time Strategy Game),简称RTS。游戏是策略游戏(Strategy Game)的一种。游戏是即时进行的,而不是策略游戏多见的回合制。另外玩家在游戏中经常会扮演将军,进行调兵遣将这种宏观操作。)

 

 

  背景知识

   2论文中介绍,训练 AI 的方法同样也是基于 actor-critc 的神经网络,但在此基础上针对性的做出了一些改进:

    1利用人类先验知识来减少动作探索空间。

    2. 将一个人为操作下的多个子操作独立开来。

    3. 设定攻击目标选定网络,用于选定攻击目标。

    4. 使用改进PPO算法,论文中称为dual-clip PPO。

    5. 使用LSTM来学习英雄技能连招的释放。

    6. 在系统设计方面,为了快速产生大规模的数据样本,使用多个不同游戏场景同时产生数据并存到 Memory Pool 中,并使用多个RL学习器并行学习。

在训练完成后,期望训练 AI 能够完成进攻、诱导、防御、欺骗和技能连招释放的能力。由于游戏中英雄之间技能相差非常大,因此对每个英雄来说都需要训练一个独立的控制AI。对于每一个英雄,AI Lab 使用 18,000 个 CPU 核以及 48 张 P40 显卡(¥14600一张)进行训练学习。每张 GPU 每秒可训练 80000 个样本数据,算下来每天训练的数据等于人类 500 年的学习量。

 

  (名词解释    PPO(Proximal Policy Optimization)近端策略优化算法   https://cloud.tencent.com/developer/article/1781590     

       长短期记忆(Long short-term memory,   LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的RNN那样只能够“呆萌”地仅有一种记忆叠加方式。对很多需要“长期记忆”的任务来说,尤其好用。但也因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。因此很多时候我们往往会使用效果和LSTM相当但参数更少的GRU来构建大训练量的模型。

       AL Lab : 这个有很多,会很多方面来讲。

 

    

  系统架构

  为了加快训练速度,这就需要加大batch size。针对这个问题,AI Lab设计了四个特别的模块,这些模块之间彼此独立:Reinforcement Learning Learner、AI Server、Dispatch tchsizeModule 和 Memory Pool。

  • AI Server 是为了获取样本数据而设计的模块,在Server中涵盖了AI与环境之间交互的所有逻辑。Server会产生多组episodes,在这些episodes中我方AI使用来自RL Learner的行为策略,而对手的行为则是使用Boltzman 探索算法(一种基于游戏状态特征提取的算法)进行预测。
  • Dispatch Module 的用于对Server 产生的sample数据(回报、特征、行为选择概率等)进行收集,将这些数据进行压缩后存储到Memory Pool中去。一个Dispatch Module可以连接多个AI Server以便于接收多个Server的输出数据以增加Dispatch Moudule的利用率(毕竟压缩加传输速度要远远快于Server生成一个episode的速度)。
  • Memory Pool 主要用于对训练数据的存储。它使用一个循环队列来存储数据,根据数据生成时间进行排序。由于是循环队列模式,因此支持变长样本。
  • RL learner 是一个分布式的训练环境,由于需要大规模的 batch size,多个 RL learners 分别去获取 Memory Pool 中的样本数据,并将这些Learners捆绑在一起(当成一个大的RL Learner)。那么每个 Learner 都会得到不同的梯度结果,如何去统一这些梯度结果呢?该论文使用 ring allreduce algorithm 对所有梯度值进行平均。将平均后的值当成每一个 Leaner 的梯度进行计算。

       (     batch size   :  https://www.cnblogs.com/alexanderkun/p/8099450.html   

         

标签:王者,第一,AI,荣耀,Server,训练,RL,Pool,游戏
来源: https://www.cnblogs.com/ITjieduwu/p/16123816.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有