bitpie官网|openai dota2
bitpie官网|openai dota2
一文解析OpenAI Five,一个会打团战的Dota2 AI - 知乎
一文解析OpenAI Five,一个会打团战的Dota2 AI - 知乎首发于论智切换模式写文章登录/注册一文解析OpenAI Five,一个会打团战的Dota2 AI论智来源:OpenAI编译:Bot编者按:关于OpenAI的那篇博客,相信很多玩家一早起来就已经看过了。昨晚打完Dota2时,云玩家小编也在Reddit上看了相关视频,还和队友一起推测了会儿内在机制。但不曾想,我这一睡就又错过了头条。本文会重新编译原博内容,并补上被大家忽视的一些关键点。去年,OpenAI的强化学习bot在中路solo中击败职业选手Dendi,赢得众人瞩目,但Dota2是一个5人游戏,在那之后,我们目标是制作一个由神经网络构成的5人团队,它能在8月份举办的Ti8国际邀请赛上,用有限的英雄击败职业队。时至今日,我们有了OpenAI Five,它已经可以在比赛中击败业余玩家。OpenAI Five玩的是限制版的Dota2,它只会瘟疫法师、火枪、毒龙、冰女和巫妖5个英雄,因为镜像训练,它的对手也只能玩这5个。游戏的“限制性”主要体现在以下几方面:英雄受限(上述5个);没有假眼和真眼;没有肉山;不能隐身(消耗品和相关物品,可以理解为没有雾、微光、隐刀、大隐刀、隐身符等);没有召唤物和分身(没有分身斧、分身符、支配头盔等);没有圣剑、魔瓶、补刀斧、飞鞋、知识之书、凝魂之露(没有骨灰?);每队五只无敌信使(和加速模式一样);不能扫描。这些限制使OpenAI Five的游戏和正常游戏有一定区别,尤其是队长模式,但总体而言,它和随机征召等模式差别不大(果然最强赛区,NA冰女都不插眼!)。OpenAI Five每天玩的游戏量相当于人类玩家180年的积累,和围棋AI一样,它从自学中提取经验。训练设备是256个GPU和128,000个CPU,使用的强化学习算法是近端策略优化(PPO)。因为不同英雄间技能、出装各异,这5个英雄使用的是5个独立的LSTM,无人类数据,由英雄从自己的数据中学习可识别策略。实验表明,在没有根本性进展的前提下,强化学习可以利用LSTM进行大规模的、可实现的长期规划,这出乎我们的意料。为了考察这个成果,7月28日,OpenAI Five会和顶级玩家进行比赛,届时玩家可以在Twitch上观看实况转播。OpenAI Five击败OpenAI员工队伍问题如果一个AI能在像星际、Dota这样复杂的游戏里超越人类水平,那它就是一个里程碑。相较于AI之前在国际象棋和围棋里取得的成就,游戏能更好地捕捉现实世界中的混乱和连续性,这就意味着能解决游戏问题的AI系统具有更好的通用性。醉翁之意不在酒,它的目标也不仅仅是游戏。Dota2是一款实时战略游戏,一场比赛由2支队伍构成,每支队伍5人,在游戏中,每个玩家需要操控一个“英雄”单位。如果AI想玩Dota2,它必须掌握以下几点:时间较长。Dota2的运行帧数是30帧每秒,一场游戏平均45分钟,也就是一场游戏要跑80,000帧左右。在游戏中,大多数动作(action,例如让英雄移动到某一位置)产生的独立影响相对较小,但一些独立动作,比如TP,就可能会对游戏战略产生重大影响。同时,游戏中也存在一些贯彻始终的战略,比如推线、farm(刷钱)和gank(抓人)。OpenAI Five的观察频率是4帧一次,也就是场均20,000个动作,而国际象棋一般在40步以内就能决出胜负,围棋是150步。这些动作几乎都具有战略性意义。视野有限。在Dota2中,地图本身是黑的,只能靠英雄和建筑提供一定视野(禁止插眼),这就意味着比赛要根据不完整的数据信息进行推断,同时预测敌方英雄的发育进度。国际象棋和围棋都是全知视角。高维的、连续的动作空间。在比赛中,一个英雄可以采取的动作有数十个,其中有些是对英雄使用的,有些是点地面的。对于每个英雄,我们把这些连续的动作空间分割成170,000个可能的动作(有CD,不是每个都能用),除去其中的连续部分,平均每帧约有1000个动作可以选择。而在国际象棋中,每个节点的分支因子只有35个,围棋则是平均250个。高维的、连续的观察空间。Dota2的地图相当丰富,比如一场比赛中有10个英雄、几十个建筑、多个NPC单位,以及包括神符、树木、圣坛(火锅)等在内的诸多要素。我们的模型通过V社的Bot API观察游戏状态,用20,000个数据(大多数使浮点数据)总结了整张地图的所有信息。相较之下,国际象棋只有约70个(8×8棋盘),围棋只有约400个(19×19棋盘)。Dota2的游戏规则非常复杂——它已经被积极开发了十几年,游戏逻辑代码也有数十万行。对于AI来说,这个逻辑需要几毫秒才能执行,而国际象棋和围棋只需几纳秒。目前,游戏还在以每两周一次的频率持续更新,不断改变语义环境。我们的方法我们使用的算法是前阵子刚推出的PPO,这次用的是它的大规模版本。和去年的1v1机器人一样,OpenAI Five也是从自学中总结游戏经验,它们从随机参数开始训练,不使用任何人类数据。强化学习(RL)研究人员一般认为,如果想让智能体在长时间游戏中表现出色,就难免需要一些根本上的新突破,比如hierarchical reinforcement learning(分层强化学习)。但实验结果表明,我们应该给予已有算法更多信任,如果规模够大、结构够合理,它们也能表现出色。智能体的训练目标是最大化未来回报,这些回报被折扣因子γ加权。在OpenAI Five的近期训练中,我们把因子γ从0.998提高到了0.9997,把评估未来奖励的半衰期从46秒延长到了五分钟。为了体现这个进步的巨大,这里我们列几个数据:在PPO这篇论文中,最长半衰期是0.5秒;在Rainbow这篇论文中,最长半衰期是4.4秒;而在Observe and Look Further这篇论文中,最长半衰期是46秒。尽管当前版本的OpenAI Five在“补刀”上表现不佳(大约是Dota玩家的中位数),但它对于经验、金钱的的优先级匹配策略和专业选手基本一致。为了获得长期回报,牺牲短期回报是很正常的,就好比队友抱团推塔时,玩家不该自己在线上补刀刷钱。这是个振奋人心的发现,因为我们的AI系统真的在进行长期优化。模型架构过大,看不清请留言每个OpenAI Five神经网络都包含一个单层的LSTM(左下淡紫),其中有1024个神经元。输入当前的游戏状态(从Valve的Bot API中提取)后,它会单独计算各个action head(输出动作标签),如图中下方亮蓝色方框中的X坐标、Y坐标、目标单位等,再把所有action head合并成一系列动作。下图是OpenAI Five使用的观察空间和动作空间的交互式演示。它把整张地图看做一个有20,000个数据的列表,并通过8个列举值的列表来采取行动。这个场景是夜魇上天辉高地,我们选中冰女,可以发现,冰女脚下的9×9小方格表示她可以前进位置,其中白色目标方块的坐标是(-300,0)。大方框表示可以放Nova地方,目标分别是投石车、小兵、毒龙、巫妖、瘟疫法师和另一个冰女。OpenAI Five可以就自己观察到的内容对缺失信息做出反应。例如火枪的一技能是榴霰弹,这是一个范围伤害,虽然除了星际玩家以外的正常玩家都看得到这个区域,但它并不属于OpenAI Five的观察范围。即便“看不到”,每当AI走进霰弹区时,它们还是会急着走出来,因为那时它们的血量在不断下降。探索既然AI可以学会“深谋远虑”,那接下来的问题就是环境探索。前文提到了,OpenAI Five玩的是限制版Dota2,即便少了很多复杂内容,它还有上百种道具、数十种建筑物、法术、单位类型和游戏机制要学习——其中某些内容的组合还会产生更强大的东西。对于智能体来说,有效探索这个组合广阔的空间并不容易。OpenAI Five的学习方法是自我训练(从随机参数开始),这就为探索环境提供了初级经验。为了避免“战略崩溃”,我们把自我训练分成两部分,其中80%是AI和自己对战,剩下20%则是AI和上一版AI对战。经过几个小时的训练,带线、刷钱、中期抓人等战略陆续出现了。几天后,它们已经学会了基础的人类战略:抢对面的赏金神符,走到己方外塔附近补刀刷钱,不停把英雄送去占线扩大优势。在这个基础上,我们做了进一步训练,这时,OpenAI Five就已经能熟练掌握5人推塔这样的高级策略了,2017年3月,我们的第一个智能体击败了机器人,却对人类玩家手足无措。为了强制在战略空间进行探索,在训练期间(并且只在训练期间),我们随机化了它的各项属性(血量、移速、开始等级等),之后它开始能战胜一些玩家。后来,它又在另一名测试玩家身上屡战屡败,我们就又增加了随机训练,AI变强了,那名玩家也开始输了。OpenAI Five使用了我们之前为1v1智能体编写的随机数据,它也启用了一种新的“分路”方法。在每次训练比赛开始时,我们随机地将每个英雄“分配”给一些线路子集,并对其进行惩罚以避开这几路。上述探索自然离不开回报的指引。我们为Dota2设计的回报机制基于人类玩家对行为的具体评判:团队作用、技能施放、死亡次数、助攻次数和击杀次数等。为了防止智能体钻漏洞,我们的方法是计算另一队的平均表现,然后用本队英雄表现减去这个值来具体评判。英雄的技能点法、装备和信使管理都从脚本导入。团队合作Dota2是个团队合作游戏,但OpenAI Five的5名英雄间不存在神经网络上的明确沟通渠道。他们的团队合作由一个名为“team spirit”的超参数控制,范围是0到1,由它给每个英雄的加权,让它们知道这时是团队利益更重要还是个人刷钱更重要。Rapid这个AI是在我们的强化学习训练系统Rapid上实现的,后者可以应用于Gym环境库。我们已经用Rapid解决了OpenAI的许多其他问题,比如Competitive Self-Play。整个训练系统被分为rollout workers和optimizer两部分,其中前者运行一个游戏副本,并用一个智能体收集经验,后者则在一系列GPU中执行同步梯度下降。rollout workers通过Redis跟optimizer同步经验。如上图所示,每个实验还包括一个Eval workers的过程,它的作用是评估经过训练的智能体和参考智能体。除此之外还有一些监控软件,如TensorBoard、Sentry和Grafana。在同步梯度下降过程中,每个GPU在各自batch计算梯度,然后再对梯度进行全局平均。我们最初使用MPI的allreduce进行平均,但现在用我们自己的NCCL2封装来并行GPU计算和网络数据传输。上图显示了不同数量的GPU同步58MB数据(OpenAI Five参数)的延迟,几乎可以被并行运行的GPU计算所掩盖。我们还为Rapid开发了Kubernetes、Azure和GCP后端。游戏到目前为止,OpenAI Five已经在限制版Dota2中获得了非常辉煌的战绩:顶级OpenAI员工队伍:天梯分2500+(前46%玩家)观看比赛的最强观众队(包括解说Blitz):天梯分4000-6000(前90-99%玩家)——非开黑V社员工队伍:天梯分2500-4000(前46-90%玩家)业余选手队伍:天梯分4200(前93%玩家)——开黑队半职业队:天梯分5500(前99%玩家)——开黑队4月23日,OpenAI Five首次击败机器人脚本;5月15日,它在和OpenAI员工队的较量中1胜1负,首次战胜人类玩家;6月6日,它突破OpenAI队、观众队和V社队的封锁,决定性地赢得了所有的比赛。之后我们又和业余队、半职业队进行了非正式比赛,OpenAI Five没有像预想中那样一败涂地,而是在和两个队的前三场比赛中都赢了两场。这些AI机器人的团队合作几乎是压倒性的,它们就像5个无私的玩家,知道最好的总体战略。——Blitz我们也从OpenAI Five的比赛中观察到了一些东西:它们会为了抢夺敌方优势路舍弃自家优势路(天辉的下路和夜魇的上路),使对方无力回防。这种战略近几年常出现在职业队伍比赛中,解说Blitz也称自己是从液体(李逵)那里得知这点的。推动局势转变,比对面更快地把战局从前期推进中期。这样做的具体方法是:(1)如下图所示,成功的gank;(2)在对面抱团后,及时反制。它们在少数领域背离了目前的游戏风格,比如AI前期会给辅助更多经验和钱,让它们在强势期打足伤害,扩大局面优势,打赢团战,然后抓住对方失误快速致胜。AI和人类的差别OpenAI Five可以观察的信息和人类玩家相同,游戏里有什么数据,它就看到什么数据。比如玩家需要手动去检查英雄位置、血量情况和身上的装备。我们的方法并没有从根本上与观察状态相关联,但仅从游戏渲染像素看,它就需要数千个GPU。对于许多人关心的APM问题,OpenAI Five只有150-170(每4帧一次动作,理论上最高有450)。但需要注意的是,这150是有效操作,不是逛街和打字嘲讽,它的平均反应时间为80ms,比人类快。这两个差异在1v1中最为重要,但在比赛中,我们发现人类玩家可以轻松适跟上AI的节奏,所以双方竞技还是比较公平的。事实上去年Ti7期间,一些职业玩家也和我们的1v1 AI做了多次训练,根据Blitz的说法,1v1 AI改变了人们对1v1的看法(AI采用了快节奏的游戏风格,现在每个人都适应了)。令人惊讶的发现二元回报能够提供良好的表现。1v1模型的回报是多尺度的,包括击杀英雄、连续击杀等。我们做了一个实验,让智能体只能从输赢中获得回报。如上图所示,和常见的平滑曲线(黄线)相比,虽然它(紫线)在训练中期出现了一个较慢并且稍微平稳的阶段,但它的训练结果和黄线很接近。这个实验用了4,500个CPU和16个k80 GPU,模型性能达到半专业级(70个TrueSkill),而我们的1v1模型是90个TrueSkill。可以自学卡兵。在去年的1v1模型中,我们独立训练模型卡兵,并附加一个“卡兵块”奖励。我们团队的一名员工在训练2v2模型时,因为要休假,于是建议他(现在的)妻子看看要花多久才能提高性能。令人惊讶的是,这个模型居然在没有任何特殊指引和回报激励的情况下得出了卡兵会产生优势的结论。我们仍在修复错误。上图中的黄线模型已经可以击败业余玩家,但修复了一些Bug后,它的提升非常明显。这给我们带来的启示是即便已经击败更强的人类玩家,我们的模型还是可能隐藏着严重错误。下一步我们现在正在为8月份的Ti8做准备,虽然不知道击败职业队伍的愿望能否实现,但我们相信,通过努力工作,至少我们得到了一个真正的机会。以上内容是截至6月6日的OpenAI Five简介,我们会继续进行更新,并把后续工作和结果汇总成一个成熟报告。7月28日,我们会邀请一线选手和AI在线比拼,千万记得来参加。PS:我们的工作围绕Dota2,但不仅限于Dota2,招聘正在进行中!发布于 2018-06-26 19:23DotA(游戏)人工智能强化学习 (Reinforcement Learning)赞同 508 条评论分享喜欢收藏申请转载文章被以下专栏收录论智AI新技术【公众号:
Dota 2
Dota 2
CloseSearch Submit Skip to main contentSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer storiesSearch Navigation quick links Log inTry ChatGPTMenu Mobile Navigation CloseSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer stories Quick Links Log inTry ChatGPTSearch Submit ResearchDota 2We’ve created a bot which beats the world’s top professionals at 1v1 matches of Dota 2 under standard tournament rules. The bot learned the game from scratch by self-play, and does not use imitation learning or tree search. This is a step towards building AI systems which accomplish well-defined goals in messy, complicated situations involving real humans.August 11, 2017More resourcesRewatch live eventDota 2, Reinforcement learning, Self-play, Games, OpenAI FiveOpenAI + Dota 23:20Today we played Dendi on mainstage at The International, winning a best-of-three match. Over the past week, our bot was undefeated against many top professionals including SumaiL (top 1v1 player in the world) and Arteezy (top overall player in the world).Dota 1v1 is a complex game with hidden information. Agents must learn to plan, attack, trick, and deceive their opponents. The correlation between player skill and actions-per-minute is not strong, and in fact, our AI’s actions-per-minute are comparable to that of an average human player.Learned Bot Behaviors1:56Success in Dota requires players to develop intuitions about their opponents and plan accordingly. In the above video you can see that our bot has learned—entirely via self-play—to predict where other players will move, to improvise in response to unfamiliar situations, and how to influence the other player’s allied units to help it succeed.The full game of Dota is played by two teams of five. Each player chooses from a hundred heroes and hundreds of items. Our next step is to create a team of Dota 2 bots which can compete and collaborate with the top human teams. If you’d like to work on the next phase of the project, consider joining OpenAI.AuthorsOpenAI ResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTCompanyAboutBlogCareersCharterSecurityCustomer storiesSafetyOpenAI © 2015 – 2024Terms & policiesPrivacy policyBrand guidelinesSocialTwitterYouTubeGitHubSoundCloudLinkedInBack to top
ChatGPT的成功背后,OpenAI打了45000年DOTA2_腾讯新闻
ChatGPT的成功背后,OpenAI打了45000年DOTA2_腾讯新闻
ChatGPT的成功背后,OpenAI打了45000年DOTA2
文|王枢(腾讯研究院研究员)
2022年,OpenAI旗下ChatGPT横空出世,人工智能再次成为全球瞩目的焦点。ChatGPT的成功得益于OpenAI团队在人工智能大语言模型和强化学习领域持续不断地投入、探索和创新。但鲜为人知的是,在OpenAI不断迭代升级的过程中,电子游戏也曾发挥过举足轻重的作用。早期的OpenAI 曾在2019年打造出名为OpenAI Five的游戏AI,并成功击败了两届DOTA2国际邀请赛的世界冠军OG战队(恭喜OG!)。
前几天,来自斯坦福大学和谷歌的研究人员也构建了一个名为Smallville的2D虚拟游戏场景,并将25个基于ChatGPT的AI智能体置于该游戏场景中进行训练,研究发现25个AI智能体实现了对人类行为的可信模拟,他们不仅能够相互交谈,还能够与自身所处环境互动,记住并回忆它们所做的和观察到的事情,并作出相应决策。[1]
那么,为什么OpenAI会选择电子游戏作为训练和测试AI模型,电子游戏对于AI的发展究竟意味着什么?
01 鲜为人知:Open AI团队为AI打造专属“游戏训练”平台
在展开OpenAI与DOTA2的故事之前,不妨简要回顾下电子游戏与OpenAI那段鲜为人知的历史,或许能够帮助我们更好的理解电子游戏与OpenAI之间的关系。
成立于2015年12月美国旧金山,OpenAI最初是一个由小团队组成的非盈利性质的人工智能实验室,其目标是通过与其他机构和研究者的“自由合作”,向公众开放AI专利和研究成果。OpenAI在成立之时并未获得太多关注,在成立一年后(2016年12月),OpenAI对外发布了首款产品基于电子游戏的AI测试平台“Universe”。这是一款能在几乎所有环境中衡量和训练 AI 通用智能水平的开源平台,其发布时间甚至早于第一代GPT(基于转换器的生成式预训练模型)产品。
OpenAI 的Universe是一个训练 AI 通用智能水平的开源平台,由微软、英伟达等公司参与建设,其中包含多达1000多种游戏训练环境,主要包括了各类Flash游戏、Atari 2600游戏,以及《GTA 5》等PC游戏。OpenAI研究人员介绍说,Universe平台最初是从李飞飞等人创立的ImageNet数据库项目中获得启发,希望把ImageNet在降低图像识别错误率上的成功经验引入到通用人工智能的研究上来,取得实质进展。[2]
图1 OpenAI Universe平台
对于OpenAI而言,打造Universe的最终目标是训练出一个“通用人工智能”,可以灵活地将在训练环境中积累和掌握的经验快速应用到陌生、困难的环境。
当时的人工智能发展已经在“听、说、看”感知智能取得了一定突破,基于强化学习的AlphaGo也刚刚击败了人类围棋世界冠军,但在OpenAI团队看来,这些突破依旧没有跳出“弱人工智能(Narrow AI)”的范畴,并不具备理解问题的和解决问题的能力。[2]
OpenAI团队认为,要想让人工智能具备这种能力,就必须将其置于更为广泛和复杂的环境中进行训练,只有通过不断的训练,才能让人工智能发展出可以有效迁移复用的知识和问题解决策略,而电子游戏就是这个“训练环境”的绝佳选择。[3]
02 最佳陪练:OpenAI从DOTA2中学到了什么?
事实上,早在2017年的DOTA2国际邀请赛上,OpenAI的智能体已经能在1v1比赛中击败过顶尖人类职业选手;在2018年DOTA2国际邀请赛上崭露头角,与人类玩家组成的职业战队过招;而到了2019年4月,OpenAI对外宣布旗下的智能体项目OpenAI Five已经能够在5V5的比赛中击败DOTA2世界冠军OG职业战队,成为了首个击败电子竞技游戏世界冠军战队的AI系统。
OpenAI团队为什么要选择DOTA2作为训练环境呢?在开发OpenAI five之前,OpenAI团队一直在探寻如何让AI在深度强化学习方向上实现突破,创造性地提升智能体的效率。当时,一般强化学习(RL)的研究人员倾向于认为,如果想让智能体在长时间游戏中表现出色,就难免需要一些根本上的新突破,比如采用Hierarchical Reinforcement learning(分层强化学习)的方式,即将复杂问题分解成若干子问题(sub-problem),通过分而治之(divide and conquer)的方法,逐个解决子问题从而最终解决一个复杂问题。[4]
而以规则复杂、要素众多、环境多变,同时也是全球拥有超高人气的电子游戏DOTA2,顺理成章地成为了OpenAI的首选,正如OpenAI团队所言“相比标准的RL开发环境,DOTA2显得更加有趣,也更加困难。但是,如果一个AI能在像DOTA这样复杂的游戏里超越人类水平,那这个AI本身就是一个里程碑。”相较于AI之前在国际象棋和围棋里取得的成就,像DOTA2这类复杂的游戏能更好地捕捉现实世界中的混乱和连续性,使其训练出的AI能够拥有更好的通用性,使之更有可能应用于游戏之外的人类社会。
为了战胜DOTA2人类职业战队,OpenAI 团队进行了长达数年的努力,详细拆解游戏中各类复杂规则和问题,并依次不断调整优化AI模型。
DOTA2的游戏内容十分丰富,而且还存在“战争迷雾”设定,即单位和建筑物只能看到它们周围的区域,地图的其余部分被迷雾所覆盖,AI需要根据不完全信息进行推断,而国际象棋和围棋则都是全信息游戏。下图是OpenAI Five使用的观察空间和动作空间的交互式演示,它把整张地图看做一个有2万个数据的列表,并通过8个列举值的列表来采取行动[5]:
图2 OpenAI Five决策过程
在OpenAI战胜DOTA2 Ti冠军OG战队时,OpenAI Five团队使用的训练计算量比2018年的版本增加了8倍,并在10个实时月内经历了大约4万5千年的DOTA2游戏,平均每天的游戏量相当于人类玩家250年的积累。[6]
在战胜人类世界冠军之后的总结中,OpenAI团队提及他们在DOTA2中的训练环境中,学到了最重要的一点是:如果想要提升智能体的性能,其根本并非要实现训练方法的突破,而是要不断扩大规模。如果规模够大、结构够合理,AI依旧可以表现出强大的能力。正如OpenAI首席科学家Ilya Sutskever 所言“我们坚信越大越好,OpenAI 的目标就是扩大规模。”[7]
OpenAI在DOTA2上的尝试,为AI强化学习效率提升提供了方向,这些都成为了ChatGPT的养分。在Ilya Sutskever看来,“通过DOTA2的训练,OpenAI的学习模式从“强化学习”转变为了“基于人类反馈的强化学习(RLHF)”,而这些与GPT技术的结合,才最终塑造出了ChatGPT。”[8]
03 未来之路:AIGC 助力游戏内容生产
如今,伴随着以ChatGPT为代表的AIGC技术的成熟,AI也开始反向助力游戏的内容生产。ChatGPT真的能辅助游戏制作吗?首先,不妨让我们来听听ChatGPT自己的回答:
GPT-4可以在多个方面辅助游戏制作。以下是一些具体的应用场景[9]:
1、游戏剧本和故事创作:GPT-4可以生成故事情节、角色设定和对话,为游戏制作提供创意灵感。
2、任务和关卡设计:GPT-4可以根据提供的游戏类型和主题生成任务、关卡设计和谜题,帮助设计师更高效地制作游戏内容。
3、人工智能NPC:GPT-4可以生成自然的对话和反应,使得游戏内的非玩家角色(NPC)更加真实、有趣。
4、自动生成游戏文档:GPT-4可以帮助制作团队编写设计文档、技术文档和测试用例等,提高生产效率。
5、游戏本地化:GPT-4支持多种语言,可以辅助游戏的翻译和本地化工作,让游戏能够更好地适应不同地区的市场。
6、社区管理和客户支持:GPT-4可以帮助回答玩家的问题、解决技术问题并对玩家反馈进行分类和总结,提高客户支持的效率和质量。
7、游戏内文本和资源生成:GPT-4可以帮助生成游戏内的文本,如物品描述、任务说明等,减轻游戏开发者的负担。
8、测试和质量保证:GPT-4可以帮助分析游戏的错误报告,确定可能的问题来源,以及为开发团队提供修复建议。
9、创意概念和美术设计:虽然GPT-4主要以文本处理为主,但它可以为美术设计团队提供创意概念和设计建议,有助于创造独特的游戏视觉效果。
通过与游戏制作团队的协作,GPT-4有望提高游戏开发的效率、创新性和质量。当然,GPT-4仍然是一个AI辅助工具,它不能完全替代人类的创造力和专业知识。在实际应用中,开发者需要根据自己的需求和项目特点,合理地利用GPT-4的能力。
看完以上GPT-4的回答,不禁会想问ChatGPT回答真的能够在现实中实现吗?目前来看,ChatGPT的确可以制作一些简单的数字游戏,但对于制作3A游戏大作而言,显然有些捉襟见肘。
Digital Trends的一份新报告详细介绍了如何使用流行的对话和脚本生成器来创建可玩的PC游戏。报告指出,只需来自用户的几个简单提示,ChatGPT就发明了自己的基于数学的逻辑益智游戏。不仅如此,它还生成了一些简单的游戏代码,后来变成了一款令人上瘾的免费浏览器游戏,已经在网上引起了一些轰动。但是,当被问到是否可以制作出像《最后生还者》(The Last of US)这样的3A游戏大作时,ChatGPT显然有些“茫然”,只能够简单吐露出一些故事情节,无法为游戏生成代码。[10]
图3 ChatGPT自动生成简单的数字游戏
虽然对于游戏复杂规则的设计、代码的编写等工作,在短期内依旧需要依靠人工来解决,但是以ChatGPT为代表的人工智能,已经能够帮助游戏开发者们生成对话、脚本和其他数字资产,提升游戏开发者的工作效率,帮助游戏开发者们简单地填充虚拟的游戏空间,缩短游戏制作的周期。
而随着AIGC技术发展,游戏AI智能体(决策智能)也会随之不断迭代升级。正如文章开头提及的斯坦福和谷歌团队训练的AI智能体,其已经能够基于大模型实现一些简单的决策,而生成式智能(AIGC)和决策智能的结合,将打开通用人工智能的大门。
可以预见的是,未来AI与游戏的发展势必会更加紧密的联系在一起。现实中,已经有越多越多的人们意识到游戏与人工智能的共生关系:2023年3月25日出版的最新一期《经济学人》刊文,认为游戏在21世纪全球流行文化及国际竞争中扮演重要地位。在系列报道中,《经济学人》也为AI 技术的革命和普及,将会带动“用户自制游戏的兴起”,“人工智能技术的发展将允许开发者用简单的文本、语音指令创建交互式3D模型”,极大降低游戏制作的门槛。Omdia发布的2023年技术趋势展望报告中,也将“游戏科技(GamesTech)”列为最值得关注的技术趋势之一,并认为游戏AI将成为2023年游戏开发中最受关注的热门技术话题。[11] 此外,在中国音数协游戏工委、中国游戏产业研究院与多家单位合作推出《游戏科技能力与科技价值研究报告》中,面向游戏与电子通信、硬件制造等领域的行业调研数据显示,81%的受访者认同游戏促进了AI技术的发展。
在OpenAI Five之后,包括索尼、腾讯在内的多家科技公司都开始基于游戏训练AI智能体。前者基于《GT赛车》游戏创新了AI强化学习算法,研究成果登上《Nature》杂志封面;后者基于《王者荣耀》游戏开发出AI开放研究平台“开悟”,助力构建产学研体系。
回到文章的开头,OpenAI团队选择游戏训练AI的初心是想要打造出“通用人工智能”。而对于通用人工智能的发展而言,目前以ChatGPT为代表的大语言训练模型,让人们窥见到了AGI(通用人工智能)的未来图景,而以游戏AI为代表的决策智能,以及游戏提供的绝佳AI训练场,也正在加快AI走向通用的进程。
我们期待未来的AI能够与游戏在实现“通用人工智能”的道路上携手共进,为人类社会的发展带来更多美好的期待。
感谢腾讯AI Lab danierdeng,腾讯研究院田小军、胡璇等多位老师在本文写作过程中给予的支持与帮助!
参考资料来源:
[1]Source:https://www.businessinsider.com/ai-avatars-let-loose-in-virtual-town-display-beginnings-agi-2023-4
[2]Source:https://openai.com/research/universe
[3]Source:https://openai.com/research/universe
[4]Source:https://openai.com/research/openai-five
[5]Source:https://openai.com/research/openai-five
[6]Source:https://openai.com/research/openai-five-defeats-dota-2-world-champions
[7]Source:https://blogs.nvidia.com/blog/2023/03/22/sutskever-openai-gtc/
[8]Source:https://www.youtube.com/watch?v=goOa0biX6Tc
[9]笔者根据GPT-4回答整理
[10]Source:https://www.digitaltrends.com/gaming/sumplete-chatgpt-ai-game-design-ethics/
[11]Source:https://omdia.tech.informa.com/OM027558/2023-Trends-to-Watch-Games-Tech
论文笔记:基于大规模深度强化学习的Dota 2 AI - 知乎
论文笔记:基于大规模深度强化学习的Dota 2 AI - 知乎首发于壳中魂切换模式写文章登录/注册论文笔记:基于大规模深度强化学习的Dota 2 AI龙归土人热爱做饭的码农本文介绍OpenAI在2019年12月13日公开的论文“Dota 2 with large scale deep reinforcement learning”,原文请见https://arxiv.org/abs/1912.06680
所设计的AI程序OpenAI Five在2019年4月13日击败了Dota 2世界冠军战队OG。以下按照文章的主要结构来介绍OpenAI Five的设计和关键细节。
当前笔记版本为V1.01 基本情况Dota 2是知名的MOBA类游戏,和以往DRL解决的问题(如象棋、围棋)相比,Dota 2的游戏复杂度更高,主要体现在如下几个方面:决策序列长:Dota 2的帧率是30/秒,而一局游戏的平均时长是45分钟,OpenAI Five的设定是每4帧(一个timestep)做一个动作,所以总的决策数(动作数)= 30 * 60 * 45 / 4 = 20250,也就是一局可能要做2万次以上的动作,而国际象棋大概每局是80步,围棋大概每局是150步,都远低于Dota 2;部分状态可见:游戏中每方都只能看见他们的单位和建筑附近的区域状态(战争迷雾),因此要达到很高的强度,需要基于不完全数据进行推断,以及进行对手建模;高维动作和观察空间:Dota 2的游戏环境较为复杂,双方共十个英雄,数十个建筑,小兵等,大概可以相当于每步可以观测到16000个不同的变量(包括连续和离散两种类型)来描述环境;同样的,在对动作空间进行离散化之后,在每步可供选择的动作在8000到80000不等(视英雄而定);同样的,象棋和围棋与此相比会简单很多,象棋是每步可以观测到1000个左右的变量,每步可选动作35,而围棋是每步客户观测6000个左右的变量,每步可选动作250。OpenAI Five的一些限制,和正常的Dota 2比,游戏机制有以下变化:游戏中有117个不同的英雄,在Openai Five里只支持其中的17个;游戏中有部分道具允许玩家同时控制多个单位,在OpenAI Five中禁用;以上都是一些在降低复杂度上的考虑。2 训练系统训练系统的构成是整个OpenAI Five中最为复杂也是最为关键部分,由于DRL的训练涉及游戏环境与模型训练模块的交互,也涉及到CPU和GPU两种不同计算设备间的交互,如何实现一套高并发训练系统,是用DRL处理类似复杂游戏的关键。图1 简化的OpenAI Five架构2.1 整体架构OpenAI Five通过程序接口和游戏进行交互,出于显而易见的原因(模型训练成本、游戏环境模拟成本),AI并不是通过实际游戏画面来感知环境,而是直接从游戏中获取诸如生命值、位置等具体的状态值,在获取观测到的状态后,AI反馈回一个离散化后的动作指令,如移动、攻击、使用技能等。值得注意的是,游戏的部分机制或操作,是基于预先编写的脚本实现,而不由AI控制,如物品的购买、买鸡、部分单位的操作等,虽然这样做降低了理论上AI能达到的强度上限,但是能一定程度简化难度。在训练时,为了提高AI的鲁棒性,一些游戏的元素进行了随机化,如英雄的选择和物品的购买等。在AI的训练上,如同所有的机器学习问题一样,我们将“玩Dota 2并达到超越人类的水平”这个问题转化为一个最优化问题,试图找到一个最优的策略函数 \pi ,在给定一个任意的观测到状态 S 时,可以找到一个对应的最优动作 a 。在通过训练得到一个这样的策略函数后,同一队的每个英雄都会有独立的策略函数进行控制。下面针对几个训练系统中的核心要点进行进一步展开。2.1.1 状态空间图2 完整的观测状态空间图3 观测状态空间结构前面提到,在观测到的状态空间上有将近16000个变量,图2和图3中分类列举了这里的变量设计,可以用以下的公式进行简要的汇总:全局数据(22) + 每个单位详细数据(45) * 189个单位((5英雄+30小兵+21建筑 + 30守卫+ 1鸡) * 2 + 15 * 野怪) + 每个英雄额外数据(25) * 10个英雄 + Modifier(即buff效果,3) * (10英雄 * 10个/英雄 + 179非英雄 * 2个/非英雄) + 每个英雄额外数据(25) * 10个英雄 + 己方英雄额外数据(213) * 5个英雄 + 技能(8) * 10个英雄 * 6个技能/英雄 + 物品(14) * 10个英雄 * 16个物品/英雄 + 附近地图信息(8) * 8 * 8 + 上一次动作信息(310) + 神符(16) * 6 + 小地图(9) * 10 * 10 = 16004从状态空间的设计上,尽可能的接近人类玩家玩游戏时的体验,如单位被战争迷雾所覆盖,其数据也不会体现在状态空间中,而是被0所填充。2.1.2 动作空间玩过Dota 2或者类似游戏的人都知道,游戏的输入是通过键盘和鼠标来控制英雄实现的,包括了移动,攻击,释放技能,使用道具等,但这里的输入包括了许多在屏幕上点击拖拽的操作,涉及在空间和时间上进行连续变化的操作,如何合理的进行离散化是动作设计的主要难点。OpenAI Five在动作上的处理是将各种动作抽象为一个带参数的函数形式,通过不同的函数类型配合不同的参数来模拟不同的动作,可以简单理解如下:\text{Action} = p(\text{Delay, Unit Selection, Offset}) 这里的 p 代表primary action,共30种,可以按照动作的目标,分为6类,每类:图4 动作目标分类如图4所示:无目标型:如使用道具,例如假腿,参数为delay点目标型:如移动,参数为delay和offset;单位目标型:如攻击,参数为delay和unit selection;单位偏移目标型:如某些技能,例如火枪的榴霰弹,参数为delay,unit selection和offset;传送目标型:如使用回城卷轴,参数为delay, unit selection(teleport)和offset;守卫目标型:如放置假眼,参数为delay, offset(ward)而三种参数的含义分别是:Delay: 延迟,0-3的整数,用于控制对应动作的生效时间,0对应当前帧,3对应当前这个timestep的最后一帧;Unit selection: 所有可能的189个单位,进行选择,如果选定的单位无效,返回空动作;Offset: 一个二维的网格,大小为9*9=81,网格中心为施法者自己或者unit selection的对象;通过上述的设计,完整的动作空间应该包括 30 * 4 * 189 * 81 = 1837080种组合,但实际上大部分情况下,由于动作或者动作目标的限制,许多动作是无效的,在实际的比赛中,平均来说,动作空间的大小在8000 - 80000的范围内(不同英雄动作空间差异较大)。值得注意的是,在unit selection的处理上,传送和普通目标的unit selection进行了区分,这是由于传送的目标分布与普通目标不太一样,而且在训练样本中极为不平衡(出现传送的比例非常低),所以在动作中需要分开进行处理。还有一部分动作是基于脚本写死的,不属于AI控制部分,暂缺。2.1.3 Reward设计reward的设计和权重调整是强化学习中至关重要的一环,AI的设计者需要通过设计reward来引导AI完成某个具体目标以及达到特定具体行为模式。在解决Dota 2的问题时,为了简化credit assignment的问题,reward是基于事件(包括单个英雄和整个队伍)和加权重的方式实现的,这样的好处是便于理解,和人类的直觉比较接近。图5 reward组成与权重设计从图5可见,reward的类型分为“solo”和“team”,solo类型的只分配给做出对应action的英雄,而team类型则分配给全队的英雄,简单为汇总如下:Solo类型:死亡经验获得金币获得金币使用血量变化蓝量变化击杀英雄击中(英雄/小兵/建筑物/野怪)走线Team类型:比赛胜利鸡死亡基地血量变化获得肉山盾推1塔推2塔推3塔(高地塔)推4塔(门牙塔)推兵营推圣坛解锁超级兵在基础设计之外,还有三个重要的因素:零和:游戏玩法本身是零和的,一方的胜利意味着另外一方的失败,因此折算到所有的reward上,都是零和的,每个英雄在指定事件上获得的reward分数会减去对手全队在同样事件上的平均得分;时间惩罚:游戏机制导致英雄的能力随着时间增长而增长,这就导致后期英雄更容易通过击杀小兵获得金钱获得大量的reward,从而AI难以学习到前期的有效策略,因此需要调整,具体的方法是将所有的reward信号(除结局胜负之外)乘上一个随时间衰减的系数:\rho_i \leftarrow \rho_i \times 0.6^{T/10 \text{ mins}} 团队合作:由于Dota 2是一个团队游戏,而我们建模的部分没有考虑到多智能体之间互动的问题,在1前面reward设计的时候,由于有team类型的reward存在,而且solo类型和team类型的reward共存,导致在AI训练时可能带来更多的不确定性,团队合作是一个用来控制在最后$reward计算中自身产生的reward部分和团队产生reward部分比例的变量,其可以简单表示为:r_i = (1-\tau)\rho_i+\tau \bar{\rho} 这里 r_i 是第 i 个角色最后获得的reward,而 \rho_i 是其自己产生的reward,$\bar{\rho}$是团队对应reward的平均值,显而易见,当 \tau=0 时,没有团队合作,每个AI都只考虑自己的操作带来的收益,而当 \tau=1 时,就是大家都考虑团队的整体收益。在实际训练中,发现在一开始训练时,降低团队合作权重可以更有效的帮助AI学习到单体操作的技巧,更有利于整体的学习,而过早强调团队合作只会带来更多的随机性。2.1.4 神经网络模型结构除了MDP设计之外,与训练系统相关的另外一个核心要点是深度神经网络的结构,在深度强化学习建模中,需要通过深度神经网络对价值函数(value function)和策略函数(policy function)进行拟合,拟合效果的好坏,深度神经网络的结构是至关重要的因素。在2.1.1中可以看到,由于所感知的环境比较复杂,包含了许多不同类型的输入,从数据结构上面来说有连续型的也有离散型的,即包括了角色状态相关的也包括了空间相关的,所以在输入进网络之前,重要的问题就是如何将这些变量拼接和向量化。图6 状态处理与网络输入从图6中我们可以看到,在OpenAI Five中,对不同类型的变量进行分别处理:连续型变量:归一化;类别型变量:做嵌入表示;空间数据:主要是小地图和邻近环境,2层卷积;无序集合:譬如己方\敌方英雄,小兵,野怪等单位的状态变量,先经过2层全连接,然后分为两路:全局表示,经过一层max pooling,用于表示该集合的平均状态单位嵌入,直接用全连接的输出作为对应单位的嵌入表示这样处理完之后,得到一个全局表示和自己控制的英雄的状态的嵌入表示,可以注意到,对于同一方的5个英雄,输入几乎是一致的,只有邻近区域、前一次动作等变量有区别,为了让控制某个英雄的模型可以利用另外几个英雄的信息,又引入了一个cross-hero pool,将5个网络的前25%的向量进行了maxpooling。图7 LSTM输入的处理这样对于一个英雄来说,全局表示和自己状态的嵌入表示通过一个全连接层进行拼接,然后再经过一个cross-hero pool的操作来获取别的英雄的部分信息,然后输入到一个单层,4096单元的LSTM中。图8 从LSTM到输出动作的映射LSTM的输出分多个头,经过了一系列的映射才变成最后的输出,主要是以下三个步骤:LSTM的输出层和可用动作交叉,基于动作分布采样生成选用的动作id;基于选定的动作id,通过一个attention机制来选择可能的单位,这里需要用到在处理原始输入时产生的各个单位的嵌入表示;LSTM输出到偏移和延迟等输出变量。所以,我们可以看到,模型从设计上来说本身是具有泛化能力的。2.2 训练机制在了解了基础的MDP设计和神经网络结构之后,下一个关键问题就是如何进行训练。在深度强化学习的算法选用上,OpenAI Five使用的是PPO+GAE的标准设定,神经网络的结构则是单层4096单元的LSTM。图9 OpenAI Five的训练系统架构从图9可以看到,训练系统的四个主要组成部分:rollout worker: CPU集群,Dota 2的游戏运行环境,接收动作指令,返回新的游戏状态;Forward Pass GPU:GPU集群,用来做当前模型的inference,从controller获得最新版本的模型参数,从rollout worker这里获得环境状态,进行inference后将获得的action返回给rollout worker;Optimizer: GPU集群,用来进行模型的训练,从rollout worker收集训练样本,存在experience buffers中,按batch进行训练;controller:redis集群,用于存储模型参数和系统的中间数据;在rollout worker上,Dota 2的客户端有一个Lua的接口,用于编写机器人脚本,这里被改造成为从游戏内获取状态和输入动作的接口,同时,通过在游戏中集成一个gRPC server的形式,实现远程调用的功能,这样就可以以docker容器的形式将dota 2的客户端运行在大量的CPU集群上,方便部署和调试。同时值得注意的是,gRPC server这里进行step的时候,会阻塞并等待Lua接口模块返回状态,而游戏内核部分在返回了当前的游戏状态之后,也会阻塞并等待gRPC server返回对应的动作,所以客户端方面运行是一个同步的机制,对于大量高并发的计算环境来说,降低了系统设计上的难度。图10 rollout worker中的样本组成从图10中可以看到,rollout worker中运行的游戏环境,并不是等到一局游戏结束后才生成训练样本,而是在一局游戏中按固定长度的segment进行划分,每4个游戏的逻辑帧才构成1个timestep(0.133秒),每16个timestep组成一个LSTM样本(2.1秒),每16个样本一个segment(34秒),这样一局游戏被分成大概几十个定长的segment。训练是通过self-play进行的,总的来说,80%的训练来自于最新模型间的对抗,20%对抗历史模型来保证模型的鲁棒性,防止出现策略崩塌。这里历史模型的管理,包含两个主要部分:评分: 每个历史模型有一个质量评分 q_i ,如果在训练中,历史模型击败了最新的模型,则评分不变,要是历史模型输给了最新的模型,则按照 q_i \leftarrow q_i - \frac{\eta}{Np_i}, \eta = 0.01 来更新;对手采样机制:根据质量评分,按照softmax分布进行采样,即第 i 个历史模型的采样概率 p_i 为 e^{q_i} ;按照这个评分的更新机制,原始评分更高的历史模型在对战失败之后评分下降更慢。图11 历史模型的采样概率分布从图11中可以看到,随着训练进行(version增加),模型能力增长,在训练的早期,历史模型与最新模型相比,能力下降非常快(左上角的图),而训练到后面,模型能力增长放缓,历史模型的概率分布更为平均(右上角的图)。而这里值得注意的是,这里在能力评估上引入的是一个额外的评分机制,而没有使用评估模型能力的Trueskill,可能是出于性能上的考虑。2.3 迁移学习与“手术”机制在整个训练的进行过程中,游戏环境是一直在变化的:随着对游戏和AI设计的理解加深,模型的细节,如MDP设计、网络结构等,是会持续变化的;系统所处理的问题和机制是逐渐扩展的,这是按照建设一个复杂系统的必然路径,从易到难;Valve会逐步更新Dota 2的客户端,发布新版本,在游戏机制、平衡性上会有改变;由于以上这些原因,游戏的环境是不停的在变化的,按照惯常的思路,在环境变化后最为安全的做法是从零开始重新训练,虽然前后两个版本的模型大部分应该差别不大,但是对于一个参数量超过1亿的黑盒模型来说,没有办法逐个逐个的进行参数的修正来充分利用旧版本的模型。但是对于Dota 2的AI这种级别的问题,每次模型的训练的成本是非常高的,每次环境变化后都从头开始重新训练的代价是没有办法接受的。在OpenAI Five中,引入了一个被称为“Surgery”的机制,是一套可以将旧模型 \pi_\theta 经过操作之后变成适应新环境的 \hat{\pi}_\theta 的工具,使得环境更新后模型的能力并没有下降,并可以在 \hat{\pi}_\theta 上继续进行训练。图12 OpenAI Five训练过程中主要surgery的记录从图12中可以看到,在10个月的时间里,OpenAI Five的主要surgery统计,这里不包括失败的,或者影响非常微小的改动,在这段时间里模型的参数量从一开始的4300万增加到1.58亿,迭代轮数依次递增到22万。汇总一下,改动的类型主要是几个方面:神经网络模型的参数增加,状态增加,动作增加,玩法改变,改变游戏版本等,下面我们分类别来解释surgery机制的实现:改变神经网络结构的参数量:假设我们有输入变量 x ,其维度为 d_x ,经过一个激活函数后得到向量 y=W_1x+B_1 ,其维度为 d_y ,然后再经过一层全连接层得到向量 z=W_2y+B_2 ,其维度为 d_z 。如果需要增加向量 y 的参数量,增加其维度从 d_y 到 \hat{d}_y ,那会导致 W_1,B_1,W_2 的维度都发生改变: \hat{W}_1 = \begin{bmatrix} W_1 \\ R() \ \end{bmatrix} \text{ } \hat{B}_1 = \begin{bmatrix} B_1 \\ R() \ \end{bmatrix} \text{ } \hat{W}_2 = \left[ \begin{array} &W_2 & 0 \ \end{array} \right] 这里 R() 指的是随机初始化,经过这个操作后,可以发现 \hat{W}_1 , \hat{B}_1 的前 d_y 个权重和 W_1 , B_1 是完全一致的,随机初始化保证了新加入的权重参数进行优化时可以获得足够的梯度信息,同时, \hat{W}_2 新增加的权重参数进行置零操作,保证了前面激活部分新增加的变量不影响到全连接层的输出,只将部分的权重置零也不会影响后续的训练。值得注意的是,在LSTM的网络结构中,由于单元之间是循环前后相连的,没有办法如同上面的全连接层一样做到新旧权重参数的完全隔离,如果进行随机初始化,会导致原有模型的能力下降,要是置零,则会导致梯度信息丢失,在实际操作中,采用的方式是两者的综合,即采用一个很小的随机值做初始化,在避免丢失梯度信息的同时最大程度的减少对旧模型能力的影响。 改变观测状态:在图12中可以看到,surgery的一个主要部分是增加了许多新的观测状态,放在模型训练上,可以认为是模型的输入发生了变化,在前面2.1.1部分我们可以看到,游戏的原始状态是经过一系列的转化和编码操作之后才输入到模型的,因此可以理解为原始的输入并没有发生变化,发生变化的只是对原始输入进行编码的部分。因此只要可以保证 \forall s \text{ } \hat{\pi}_{\hat{\theta}}(\hat{E}(S))=\pi_{\theta}(E(S)) ,这里 S 是原始游戏状态,而 E(S) 则是编码之后的输入,即新模型对扩展后的编码状态的能力水平相比旧模型并没有下降,然后套用上述1的方法,将新增部分的编码对应权重做置零操作后进行训练即可。 改变环境或动作空间:上述surgery的改动部分还涉及游戏版本的更新,也包括了新增动作,将原来通过脚本完成的操作改为由模型控制。明显的与前两种类型不同,这里涉及到学习到的策略函数 \pi 的改变,因此在训练过程中采用类似退火的策略。在环境改变后,将训练对局中新环境的比例从0%(即完全旧环境)慢慢上升到100%(过渡到新环境),来避免环境突变时导致模型能力出现陡变,同时如果发现模型的Trueskill分在退火过程中出现下降,则进行回退并减慢退火的速度。 模型删减:处于保证模型在surgery后能力不变的考虑,很多删减变量或模型参数的需求没有被考虑在内,这些被废除的变量暂时还是被保存在模型内。 模型训练重启:在模型经过修改并重启训练之后,优化器中的梯度动量信息可能会带来问题,由于参数空间发生了变化,可能会导致梯度优化方向发生改变而进一步影响训练。因此在重启之后的一小段时间内,优化器的学习率被置零,几小时后等所有的rollout对局稳定后才开始正常的训练。另外,surgery不仅需要保证对当前训练的最新版本模型有效,还需要保证对所有的历史模型而言都有效,否则会导致对战时历史模型能力在surgery后出现下降,影响训练效率。 这里可以看到,Surgery机制的引入,加快了模型训练迭代的循环,降低了模型新设计验证的成本,是OpenAI Five整个项目中的一个主要亮点。3 实验与评估数据在经过10个月的训练之后,OpenAI Five击败了Dota 2世界冠军OG,并在线上开放体验环节击败了99.4%的人类对手。在计算规模上,整个计算量达到了 770 \pm 50 PFlops/s·days,而在各个模块的资源和计算量上,几个关键数据是:Rollout workers,51200 CPU核上57600个worker,每个worker每分钟产出256个tilmestep;Optimizer,512 GPU,每约2秒一个optimizer step,每个GPU处理1920个timestep,每32个optimizer step更新一次模型参数;Forward Pass GPU, 512 GPU,每0.25秒每个rollout worker做1次预测;在optimizer的训练过程中,有效的batch size达到1-3百万,最终版本模型总参数量达到1.5亿,有效训练时间在180天。3.1 人类测试情况图13 OpenAI Five的主要人类对战结果从图13中可见,从2018年6月开始,OpenAI Five就开始从OpenAI内部队伍开始,逐步进行了与人类对战的测试,直至2019年4月,OpenAI Five以2-0击败了OG,并在接下来的4天时间中,在线上与3193支不同的人类队伍进行了7257场比赛,并赢得了其中的99.4%。在和人类的能力比较中,非常重要的一点就是反应时间,AI如果在反应时间上要明显短于人类,那AI在公平性上是值得质疑的。在前面提到,Dota 2游戏本身的帧率是30,OpenAI Five的处理是每4帧一个timestep,相当于将帧率降为7.5,同时由于游戏和AI模型间采取了错开一个timestep的方式进行通信(游戏在第T个timestep发出观测状态,并继续运行到第T+1个timestep,AI模型将第T个timestep对应的动作返回给游戏),同时由于动作设计上的delay机制(允许AI在一个timestep里的任意一帧进行动作),所以实际上可以认为OpenAI Five的反应时间有5-8帧的延迟,换算成时间大概在167ms到267ms,而参考人类的平均反应时间在250ms左右,所以基本认为在反应时间上做的是比较公平的。图14 反应时间与延迟机制但是有一个比较迷惑的点,文章中提到delay机制,在模型学习过程中并没有学习到有效的利用这个delay机制,大部分情况下模型都在timestep的第一帧就执行动作了,所以这样意味着大部分情况下,模型的帧率是6,反应时间是167ms,比参考人类的反应时间要短一些。在整个训练过程中,除了和人类对战检验效果之外,需要有一个更为量化且可持续的评估手段来控制和理解模型的训练进展。在OpenAI Five中,具体使用的是Trueskill,其具体介绍可见:随着训练的进展,其Trueskill分的进展可见图15图15 OpenAI Five的Trueskill分分布可以看到,在训练的早期,Trueskill的增长是非常迅猛的,其实在总训练量的10%左右,AI能力已经可以和半职业队伍一较高低了(casters),后续90%的训练量只是推动了Trueskill分从230分增加到250,达到了可以击败OG的水平。而在游戏风格上,早期的AI倾向于大规模团战,企图通过团战来取得前期优势,但是缺乏运营能力,导致对局结果两极化,要么前期快速胜利,要么前期崩盘,后期没有还手之力。随着训练的进展,AI的对战风格发生了明显的变化,主要的关注点从团战转移到了资源的积累上,学会了在当前的优势英雄身上积累资源,在通过大规模团战积累资源的同时,也学会了在劣势情况下避免开团。最终版本的OpenAI Five,与高等级人类选手的行为已经比较接近了,但是还是存在部分有特点的行为,如频繁的在地图上前后移动,更喜欢采取一些高风险的操作,如低血量的时候采取更有侵略性的行为,同时AI也更愿意消耗手上的资源,如更愿意使用CD长的技能,而相比之下人类选手更愿意保留这些技能直到遇到更好的机会。3.2 手术机制的验证为了验证surgery机制的效果,在2019年5月18日到2019年6月12日之间,OpenAI训练了另外一个被称为“Rerun”版本的AI模型,这个AI直接用最后版本的游戏环境和模型结构以及超参数从零开始训练,因此和经历了surgery过程的原始模型不一样。Rerun版本的模型,用了2个月的时间, 150 \pm 5 PFlops/s·days的计算量,在物理时间上要明显长于平均surgery的时间(平均1-2星期)。因此,单从时间上来说,surgery的引入大大的降低了从头训练的成本。图16 Surgery和Rerun的训练效率对比从图16中可见,如果将surgery的每次操作都改成重新从头训练,其所需要时间远大于surgery。但是可以注意到的是,Rerun版本的模型训练之后,能力高于surgery版本的模型,其对战胜率达到了98%。如何通过surgery这样持续的改进和训练,同时不影响最后的模型能力,是一个值得关注的问题。3.3 Batch Size在前面提到,由于训练系统的计算能力很强,为了充分利用这些计算能力,需要增大optimizer这里进行模型训练的batch size。在过往的一系列研究中,图片识别的监督学习任务中,增大batch size可以有效的提高训练效率,可以达到次线性的加速效果。在OpenAI Five的深度强化学习场景中,试图解决的问题是,在生产的数据加倍(rollout worker加倍),消费的数据加倍(optimizer训练用的GPU加倍)时,是否能用一半的物理时间(wall time)来达到同样的训练效果(达到某个指定的Trueskill分)。图17 batch size与训练效率用Rerun版本的模型做实验,baseline为123k timestep,我们可以在图17的左侧图中,当训练持续进行的时候(parameter version代表优化器迭代的步数),更大batch size的模型在Trueskill上的上升更为陡峭,说明大batch size的训练效果更好。更进一步,在右边看到,当batch size增加到983k timestep的时候,在到达Trueskill 175分的时候加速倍率为2.5倍,即8倍的数据量带来了2.5倍的训练效率提升,这个加速比是远达不到线性提升的,但是依然还是有一定的效果。而当Trueskill分下降到125分甚至更低的时候,其加速倍率甚至低于1.5倍,可以想象的是,当训练目标设定的更低的时候,更大的batch size带来的提升是会更低的(更少的optimization step)。当然这里Trueskill分最高只看到175分,比最后版本的250分低很多,可以想象Trueskill分目标设定更高的时候,大batch size带来的提升会更为明显。3.4 数据质量Dota 2的一个特点是单局游戏时间较长,由于rollout worker实际运行速度为15FPS,一局游戏结束的物理时间可能会接近2小时,由于OpenAI Five是基于PPO进行训练,所以如果要严格遵守on-policy的训练方式,也就意味着每两小时才能更新一次梯度信息。但是在实际操作中,为了加快训练的效率,生产数据的rollout worker和消费数据的optimizer之间是一个异步的机制,rollout worker基于当前最新的模型参数(放在forward pass GPU里面)产生的结果进行游戏,产生的数据上报到optimizer,并存放到一个经验回放的缓存区里,optimizer以一个固定的速率从缓存区里取样本进行训练。由于优化所使用的batch size非常大,这样就导致一个问题,非常大的可能性出现rollout worker上执行的policy与正在优化的policy不一致的情况,即不符合on-policy的假设,从而影响训练效果。因此,在rollout worker处,每隔一小段时间(34秒,产生16个样本),就向optimizer发送一次数据,optimizer每1分钟左右更新一次参数。对于一个训练时间长达两个月的复杂问题而言,这种近分钟级的更新和同步看起来是个小问题,但实际上这里异步带来的很小的时间上的差异对训练效果有明显的影响。为了量化分析这个因素,引入了一个称为数据陈旧度(Staleness)的指标,其定义为 M-N ,其中 M 为当前优化器在优化的参数版本,而 N 为rollout worker生成样本的参数版本,可以知道 M \geq N 。同时在rollout worker上加入一个队列来缓存发往optimizer的数据,通过控制这个队列的长度就可以在不改变训练架构和参数的情况下模拟不同程度的staleness对训练效率的影响。图18 数据陈旧度与训练效率从图18中可见,Queue length越长代表staleness越高,同等迭代轮次下强度就越低(Trueskill分低),加速比也越差。所以在训练中,希望陈旧度越低越好。另外一个值得注意的部分是经验回放机制,这是一个缓冲区,rollout workers生成的数据上报到缓冲区中后,再进行采样进行训练,这样处理的主要原因是用于解决异步机制带来的问题(保证缓冲区中有数据可供训练,如果rollout worker没有产生新数据,就反复使用旧数据)。缓冲区的大小是4096个timestep,而样本复用率(Sample Reuse)的定义为: \text{Sample Reuse} \equiv \frac{(\text{samples per batch}) \times (\text{batches per second})}{(\text{experience buffer intake samples per second})} 所以样本复用率是用于衡量经验回放缓冲区中数据消耗和产生速率的比例的,当这个值为1时,说明数据使用完就会被更新,要是远大于1,说明同一个样本会被训练多次,可能会导致过拟合等问题。和前面陈旧度部分类似,我们通过减少rollout worker的数目来模拟不同水平的样本复用率,也增加了rollout worker的数目来模拟复用率小于1的情况。图19 样本复用率与训练效率从图19中可见,样本复用率和训练效率成反比,复用率越高,训练效果越差,值得注意的是,小于1的样本复用率对训练有正向帮助,虽然不明显,考虑到当样本复用率为0.5时带来的额外rollout计算开销,性价比上可能并不理想。但这里充分说明了当前强化学习应用的通病,样本利用效率低,由于我们从经验回放缓冲区中均匀采样,当样本复用率为1时,并不意味着每个样本都刚好被训练了一次,而是有的可能训练2-3次,有的完全没有被采样到,当生成的样本远大于消耗的样本时,用于训练的样本之间的关联性更差,对训练更有利。3.5 长期信用分配信用分配(credit assignment)一直是强化学习研究和应用中的关键问题,在Dota 2的相关研究中,这个问题更为突出,因为和以往的象棋、围棋或Atari这样的问题相比,Dota 2的决策需要长的多,因此在一局完整的游戏中如何做好长期的信用分配是一个难点。为了研究信用分配问题的影响,定义一个变量 H 用于表示reward衰减所影响的时间范围: H=\frac{T}{1-\gamma} 这里 T 是每个timestep对应的实际时间(0.133秒,即相当于7.5的帧率), \gamma 为衰减系数。图20 reward衰减所影响的时间范围对训练的影响从图20中可以看到,基于 H=180s ,即相当于 \gamma = 0.9993进行模型训练到一定程度(不知道到什么强度),停止后,换5个不同的配置继续训练,可以发现,减少衰减,增加时间范围,使得训练胜率上升的更快。更为复杂的问题,减少衰减,考虑reward更长的时间影响范围是一个好的想法,但是这里的实验数据略微简单,很难简单下结论把时间范围设的更长对训练一定有好处。4 总结OpenAI Five的工作基于相关领域近年来的许多成果,如强化学习算法,大规模深度学习计算框架和博弈论等。以往DRL方法在棋类、牌类和视频游戏上的成果也提供了非常多有价值的先验知识,才使得大规模应用深度强化学习解决Dota 2这样复杂的多智能体长序列决策问题成为可能。从全篇文章可以看到,一套高性能的训练系统是所有相关研究的基础,而且虽然整个工作并没有在理论上的创新,工程上的许多工作和tricks,包括surgery机制,才是解决最后问题的关键。在Dota 2的相关研究中,还有许多值得仔细研究和展开的点,也会成为以后类似问题研究的基础。发布于 2020-02-06 17:35OpenAI赞同 1056 条评论分享喜欢收藏申请转载文章被以下专栏收录壳中魂人工智能相关的随笔和论
OpenAI公开Dota2论文:胜率99.4%_澎湃号·湃客_澎湃新闻-The Paper
AI公开Dota2论文:胜率99.4%_澎湃号·湃客_澎湃新闻-The Paper下载客户端登录无障碍+1OpenAI公开Dota2论文:胜率99.4%2019-12-16 09:01来源:澎湃新闻·澎湃号·湃客字号机器之心选自OpenAI作者:Berner等机器之心编译参与:熊猫OpenAI 的 Dota 2 人工智能智能体项目 OpenAI Five 已经经历了三年的发展。在 2019 年 4 月 13 日,OpenAI Five 成为了首个战胜了世界冠军战队的 AI 系统,但是当时 OpenAI 没有公开相关的论文和算法细节。近日,OpenAI 终于发布了描述该项目的论文《Dota 2 with Large Scale Deep Reinforcement Learning》。人工智能的长期目标是解决高难度的真实世界难题。为了实现这一目标,研究者在近几十年的时间里将游戏作为研究 AI 发展的基石。从双陆棋(1992)到国际象棋(1997)再到 Atari 游戏(2013),在 2016 年,AlphaGo 凭借深度强化学习和蒙特卡洛树搜索战胜了围棋世界冠军。近些年来,强化学习(RL)也在更多类型的任务上得到了应用,比如机器人操作、文本摘要以及《星际争霸》和《Minecraft》等视频游戏。相比于国际象棋或围棋等之前的 AI 里程碑,复杂视频游戏更具备现实世界问题那样的复杂性和连续性。而 Dota 2 是 Valve Corporation 于 2013 年发行的一款多人实时战略游戏,该游戏在 2013 年到 2019 年之间的同时在线玩家数在 500 000 到 1 000 000 之间。该游戏也有很多全职的职业玩家;其 2019 年国际冠军赛的奖金池已经超过了 3500 万美元(这是全世界电子竞技游戏中最多的)。该游戏由于一局时间较长、部分可观测性以及高维度的观察和动作空间,这些给强化学习带来了严峻的挑战。另外,Dota 2 的规则也很复杂——该游戏已经历经超过十年的活跃开发,其游戏逻辑使用了数十万行代码来实现。要为这样复杂的环境创造合适的智能体,关键是要将现有的强化学习系统扩展至前所未有的规模,这需要在数以千计的 GPU 上执行几个月的训练。为了实现这一目标,OpenAI 构建了一个分布式的训练系统,训练出了名为 OpenAI Five 的 Dota 2 游戏智能体。2019 年 4 月,OpenAI Five 击败了一支 Dota 2 世界冠军战队(OG 战队),这是首个击败电子竞技游戏世界冠军的 AI 系统。OpenAI 也将该系统开放给了 Dota 2 社区进行对战试玩;在超过 7000 局游戏中,OpenAI Five 的胜率为 99.4%。论文地址:https://cdn.openai.com/dota-2.pdfOpenAI 表示,训练过程还面临着另外一个难题:游戏环境和代码一直在不断升级和变化。为了避免在每次变化之后再从头开始训练,他们开发出了一套工具,能以最低的性能损失继续完成训练——OpenAI 将其称之为「手术(surgery)」。在超过 10 个月的训练过程中,OpenAI 大约每两周执行一次手术。这套工具让 OpenAI 可以经常改进他们的智能体,这只需要很短的时间——比典型的从头开始训练方法要短得多。随着 AI 系统解决的问题越来越大,越来越难,进一步研究不断变化的环境和迭代开发就显得至关重要了。Dota 2 难在哪儿?Dota 2 游戏对战发生在一个方形的地图中,两支队伍各自保卫位于对角线上的己方基地。每支队伍的基地都有一个远古遗迹(ancient);当某方的远古遗迹被敌方摧毁时,游戏便宣告结束。每支队伍由 5 位玩家组成,每位玩家控制一个英雄单位,每个英雄都有自己独特的技能;游戏期间,每方都有持续派出的「小兵(creep)」单位,但这些小兵不由玩家控制,它们会按路径向敌方基地前进,并会攻击任何出现在其攻击范围内的敌方单位和建筑;玩家可从小兵收集金币和经验等资源,然后可通过购买物品和升级来提升英雄的战斗力。为了玩 Dota 2,AI 系统必须解决多种难题:长时间对局。Dota 2 游戏一般会以 30 帧每秒的速度持续大约 45 分钟。OpenAI Five 每 4 帧选择一个动作,则每局比赛需要执行大约 20000 步。比较一下,国际象棋一般持续 80 步,围棋是 150 步。部分可观察的状态。每支队伍都只能看见己方单位和建筑附近的部分游戏状态;地图中的其余部分都是隐藏起来的。如果要玩得好,需要基于不完整的数据进行推断以及建模敌方的行为。高维度的动作和观察空间。Dota 2 有一个很大的地图,地图中有 10 个英雄、几十个建筑、几十个非玩家单位,另外还有神符、树和侦查守卫(眼)等长尾的游戏特征。OpenAI Five 每个时间步骤会观察大约 16 000 个值(大部分是浮点数和有数百种可能性的类别值)。同时,OpenAI 对动作空间进行了离散化处理;其模型在每个时间步骤从 8000 到 80000(具体数量取决于英雄)个动作选择一个。相比之下,国际象棋每次观察需要大约 1000 个值(这些值大都是有 6 个可能性的类别值),围棋大约需要 6000 个值(全都是二元值)。围棋的分支因子(branching factor)大约是 35 个可行动作,围棋的大约是 250。另外需要说明,OpenAI Five 在玩常规模式的游戏时还有两个限制条件:英雄池只有 17 个英雄——在常规游戏时,玩家是在比赛前从 117 个英雄中选择一个,而 OpenAI Five 目前只支持其中 17 个;不支持能让玩家同时暂时控制多个单位的物品(幻象神符、支配头盔、幻影斧、死灵书)。OpenAI 移除这些物品的原因是控制多个单位会引入额外的技术复杂性。训练系统让 AI 玩 Dota为了将「以超人级水平玩这个复杂游戏」的模糊问题转换成一个可以优化处理的详细目标,OpenAI 提出了以下框架。尽管 Dota 2 引擎的运行频率是 30 帧每秒,但 OpenAI Five 每隔 4 帧(称为一个时间步骤)才采取一个动作。在每个时间步骤,OpenAI Five 都从游戏引擎接收一个观察,其中编码了作为人类玩家可以看到的所有信息,比如单位血量、位置等。然后,OpenAI Five 向游戏引擎返回一个离散的动作,其中编码了一个所需的移动、攻击等。当然,某些游戏机制是用人工编写的逻辑控制的,而不是使用策略。这其中包括:英雄购买物品、获得技能的指令、对独特的信使单位的控制、英雄应当保留物品。OpenAI 表示,他们相信用 AI 方法替代人工编写规则最终能让智能体取得更好的表现,但即便如此,现有的智能体就已经取得了超人类的表现。在训练期间,环境中的某些属性经过了随机化处理,包括游戏中的英雄和英雄购买的物品。因为在与人类对手对战时会出现各种不同的战略和情况,所以为了保证稳健性,必须进行足够多样化的训练。OpenAI 将策略 π 定义为从观察历史映射到动作的概率分布的函数,并将其参数化为了一个有大约 1.59 亿个参数(θ)的循环神经网络。该神经网络主要由单层的 4096 单元的 LSTM 构成(见图 1)。给定一个策略,OpenAI 玩游戏的方式是在每个时间步骤不断重复地将当前观察传递为输入,然后从输出的分布采样一个动作。图 1:简化版的 OpenAI Five 模型架构为了控制一支队伍的五个英雄,OpenAI 为每个英雄都使用了同一策略函数(具有相同的参数 θ)的不同副本。因为 Dota 2 中的可见信息和战争迷雾(迷雾中友方单位附近的区域是可见的)是全队共享的,所以每位英雄的观察几乎都是相同的。不过,OpenAI Five 并不直接使用屏幕上的像素信息,而是使用了一个数据数组集来近似人类玩家可获得的信息。这样的近似是不完美的;人类玩家能够获得的很多片段信息都没有被编码在观察中。另一方面,尽管 OpenAI 已经尽力确保模型获得的所有信息都是人类可以获得的所有信息,但人类在每个时间步不可能同时看完所有可用信息——人类必须主动点击地图和状态指示器的不同部分才行。对策略进行优化OpenAI 的目标是找到能最大化与人类职业玩家对战时获胜的概率的策略。在实践中,研究者对奖励函数执行了最大化操作,这个奖励函数还包含一些其它信号,比如角色死亡、收集资源等。另外,他们还应用了多种技术以在计算奖励函数时利用该问题的零和多玩家(zerosum multiplayer)结构。比如说,通过减去敌方队伍所获得的奖励,使得智能体的奖励被对称化处理(symmetrize)。OpenAI 团队在该项目一开始就构建好了这个奖励函数,因为团队对游戏的有一定的了解。尽管随着游戏版本更新,这个奖励函数也有过些许变化,但他们发现初始的奖励选择效果已经很好。而之后增加的奖励信号对训练成功而言也非常重要。对于策略的训练则使用了近端策略优化(PPO),这是 Advantage Actor Critic 的一种变体。这种优化算法使用了通用优势估计(GAE),这是一种标准的基于优势的方差缩减技术,可稳定和加速训练。OpenAI 使用了一个中心化的共享式的 LSTM 模块来训练网络。这一模块会向不同的全连接层提供输入,从而得到策略和价值函数输出。图 2:系统概况:该训练系统由 4 种主要类型的机器构成OpenAI 使用了从 Dota 2 收集的自我博弈(self-plaer)经验来训练策略;在 16 个时间步的样本上使用了带有截断式的反向传播的 Adam 优化器。系统使用「Rollout」运行自我博弈。它们以接近 1/2 的实时时间运行这些游戏,因为 OpenAI 团队发现以这样的速度能并行运行略多于两倍的游戏,从而增大总吞吐量。「Rollout」能以异步的方式发送正在进行的游戏中的数据,而不是等到整局游戏结束才发送数据进行优化。整个系统运行在自定义的分布式训练平台 Rapid 上,基于谷歌的云平台上。为了执行快速 GPU 训练,研究者还使用了 blocksparse 软件库。通过「手术」实现连续迁移当然随着项目推进,代码和游戏环境也在逐渐变化。为了解决从头开始训练的问题,OpenAI 提出了一种名为「手术(surgery)」的新方法。「手术」可被视为一套工具集,它能够对旧模型执行离线操作,从而得到与新环境兼容的新模型。即便这个新模型的参数向量与旧模型的大小和语义不同,但它也仍然能以同样的水平执行游戏策略。然后,OpenAI 使用有新参数向量的新模型开始在新环境中进行训练。在环境、观察和动作空间都不变的最简单情况下,其标准简化为:坚持让新策略实现与旧策略一样的从所观察状态到动作的概率的函数:这是保留变换的 Net2Net 风格的函数的一个特例。OpenAI 已经开发出了能尽可能准确地实现公式(1)的工具(如添加观察、扩展层和其它情况);而当对环境、观察空间或动作空间的修改类型无法完全满足准确实现的标准时,也可以近似地实现它。表 1:在 OpenAI Five 训练期间执行过的所有成功的「手术」和重大的环境改变「手术」能在无损性能的同时实现连续的训练(见图 4)。图 4:在正在开发中的环境中训练实验和评估OpenAI Five 是从 2018 年 6 月 30 日到 2019 年 4 月 22 日的单次训练过程的产物。经过十个月的 770±50 PFlops/s·days 计算量的训练之后,其在三局两胜制比赛中击败了 Dota 2 冠军战队,并在持续多日的在线展示中击败了 99.4% 的人类玩家。为了有效地利用这种水平的算力,整个系统进行了三个方向的扩展。第一,批大小为 100 万到 300 万的时间步(将其分组为长度在 16 的展开式 LSTM 窗口)。第二,使用了超过 1.5 亿参数的模型。第三,OpenAI Five 的训练用去了 180 天(由于重启和恢复,实际时间超过 10 个月)。相比于 AlphaGo,OpenAI Five 的批大小大 50 到 150 倍,模型大 20 倍,训练时间长 25 倍。但同期也有另一些研究能在规模与这一项目匹敌或甚至规模更大一些,比如 DeepMind 的《星际争霸 2》智能体研究《Grandmaster level in StarCraft II using multi-agent reinforcement learning》以及 OpenAI 的一项机器人研究《Solving Rubik's Cube with a Robot Hand》。人类评估在训练期间,OpenAI Five 与许多业余玩家、职业玩家和职业战队进行了比赛,以便跟踪记录研究进展。4 月 13 日,OpenAI Five 与 Dota 2 现世界冠军 OG 战队进行了一场高水平的竞技比赛,在三局两胜比赛中获胜(2-0),这表明 OpenAI Five 确实能学习到最高水平的操作技术。但是,机器学习系统通常不能很好地应对意料之外的情况。尽管在展示比赛中胜过世界冠军确实能说明 OpenAI Five 能力出色,但这不能证明其能够广泛地理解人类社区可能面临的各种难题。为了探索 OpenAI Five 能否被稳定地用于创造性或分布外的玩法,OpenAI 启动了 OpenAI Five Arena(竞技场),在 2019 年 4 月 18-21 日期间开放给公众进行在线挑战。OpenAI Five 与 3193 支队伍共进行了 7257 局比赛,胜率为 99.4%。29 支队伍在总共 42 场比赛中击败了 OpenAI Five。尽管人类评估才是最终目标,但也需要在训练期间对智能体进行自动化的评估。OpenAI 的做法是以 TrueSKill 评分系统为指标,比较一些固定的参照。图 3 给出了 OpenAI Five 的 TrueSkill 评分随时间的变化情况。图 3:OpenAI Five 的 TrueSkill 评分在训练期间的变化情况通过 Rerun 验证「手术」的效果为了验证新提出的「手术」方法所能节省的时间和资源,OpenAI 在 2019 年 5 月 18 日到 2019 年 6 月 12 日之间训练了另一个智能体,但仅使用了最终的环境、模型架构等。OpenAI 称这个训练过程为 Rerun,其没有经历蜿蜒曲折的游戏规则变化、对神经网络参数的修改、对超参数的在线实验等等。Rerun 完成了两个月的 150 ± 5 PFlops/s·days 计算量的训练(见图 4)。这个时间跨度显著长于「手术」变化的频率(每 1-2 周一次)。简单比较来看,如果在 20 次重大手术之后的每一次都从头开始训练,则该项目需要耗时 40 个月,而不是 10 个月(在实际操作时,一般更倾向于做更少的改变)。手术的另一个优势是总是会有能力出色的智能体可供评估,这能显著收紧实验改变的迭代周期。对于 OpenAI Five 的目标(探索全新任务和构建全新环境)而言,持续性的训练具有显著的重大优势。图 4:OpenAI Five 与 Rerun 的训练过程当然,在环境是预构建的和一开始就被很好理解的环境中,对「手术」的需求会很小。Rerun 消耗的资源仅有 OpenAI Five 的 20%:如果能提前获取最终训练环境,就没有必要在不同的游戏版本上开始训练。Rerun 的最终性能比 OpenAI Five 更好,与 OpenAI Five 最终版对战的胜率超过 98%。OpenAI 团队的想法是希望验证最终的代码和超参数可以重现 OpenAI Five 的性能,因此他们就此停止了训练。他们相信 Rerun 还能实现进一步的提升,不仅包括能够继续提升的性能,还有学习率和视野范围等没有最终确定的超参数。「手术」过程让 OpenAI 能成功地每周修改环境。但是,OpenAI Five 最终达到的水平还是逊于从头开始训练的模型所能实现的水平。学习如何在长时间训练的同时又不影响最终性能是一个很有潜力的未来研究方向。最后,尽管目前构想的「手术」还远不够完美,有了合适的工具,这种方法能在无需为重启训练的同时,将特定的变化整合进长时间运行的实验中。机器之心「SOTA模型」:22大领域、127个任务,机器学习 SOTA 研究一网打尽。原标题:《OpenAI公开Dota 2论文:胜率99.4%,「手术」工具连续迁移训练》阅读原文特别声明本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。+1收藏我要举报#Dota#OpenAI查看更多查看更多开始答题扫码下载澎湃新闻客户端Android版iPhone版iPad版关于澎湃加入澎湃联系我们广告合作法律声明隐私政策澎湃矩阵澎湃新闻微博澎湃新闻公众号澎湃新闻抖音号IP SHANGHAISIXTH TONE新闻报料报料热线: 021-962866报料邮箱: news@thepaper.cn沪ICP备14003370号沪公网安备31010602000299号互联网新闻信息服务许可证:31120170006增值电信业务经营许可证:沪B2-2017116© 2014-2024 上海东方报业有限公OpenAI Five
OpenAI Five
CloseSearch Submit Skip to main contentSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer storiesSearch Navigation quick links Log inTry ChatGPTMenu Mobile Navigation CloseSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer stories Quick Links Log inTry ChatGPTSearch Submit ResearchOpenAI FiveOur team of five neural networks, OpenAI Five, has started to defeat amateur human teams at Dota 2.June 25, 2018Dota 2, Reinforcement learning, Self-play, Games, Software engineering, OpenAI FiveOur team of five neural networks, OpenAI Five, has started to defeat amateur human teams at Dota 2. While today we play with restrictions, we aim to beat a team of top professionals at The International in August subject only to a limited set of heroes. We may not succeed: Dota 2 is one of the most popular and complex esports games in the world, with creative and motivated professionals who train year-round to earn part of Dota’s annual $40M prize pool (the largest of any esports game).OpenAI Five plays 180 years worth of games against itself every day, learning via self-play. It trains using a scaled-up version of Proximal Policy Optimization running on 256 GPUs and 128,000 CPU cores—a larger-scale version of the system we built to play the much-simpler solo variant of the game last year. Using a separate LSTM for each hero and no human data, it learns recognizable strategies. This indicates that reinforcement learning can yield long-term planning with large but achievable scale—without fundamental advances, contrary to our own expectations upon starting the project.To benchmark our progress, we’ll host a match versus top players on August 5th. Follow us on Twitch to view the live broadcast, or request an invite to attend in person!Play videoThe problemOne AI milestone is to exceed human capabilities in a complex video game like StarCraft or Dota. Relative to previous AI milestones like Chess or Go, complex video games start to capture the messiness and continuous nature of the real world. The hope is that systems which solve complex video games will be highly general, with applications outside of games.Dota 2 is a real-time strategy game played between two teams of five players, with each player controlling a character called a “hero”. A Dota-playing AI must master the following:Long time horizons. Dota games run at 30 frames per second for an average of 45 minutes, resulting in 80,000 ticks per game. Most actions (like ordering a hero to move to a location) have minor impact individually, but some individual actions like town portal usage can affect the game strategically; some strategies can play out over an entire game. OpenAI Five observes every fourth frame, yielding 20,000 moves. Chess usually ends before 40 moves, Go before 150 moves, with almost every move being strategic.Partially-observed state. Units and buildings can only see the area around them. The rest of the map is covered in a fog hiding enemies and their strategies. Strong play requires making inferences based on incomplete data, as well as modeling what one’s opponent might be up to. Both chess and Go are full-information games.High-dimensional, continuous action space. In Dota, each hero can take dozens of actions, and many actions target either another unit or a position on the ground. We discretize the space into 170,000 possible actions per hero (not all valid each tick, such as using a spell on cooldown); not counting the continuous parts, there are an average of ~1,000 valid actions each tick. The average number of actions in chess is 35; in Go, 250.High-dimensional, continuous observation space. Dota is played on a large continuous map containing ten heroes, dozens of buildings, dozens of NPC units, and a long tail of game features such as runes, trees, and wards. Our model observes the state of a Dota game via Valve’s Bot API as 20,000 (mostly floating-point) numbers representing all information a human is allowed to access. A chess board is naturally represented as about 70 enumeration values (a 8x8 board of 6 piece types and minor historical info); a Go board as about 400 enumeration values (a 19x19 board of 2 piece types plus Ko).The Dota rules are also very complex — the game has been actively developed for over a decade, with game logic implemented in hundreds of thousands of lines of code. This logic takes milliseconds per tick to execute, versus nanoseconds for Chess or Go engines. The game also gets an update about once every two weeks, constantly changing the environment semantics.Our approachOur system learns using a massively-scaled version of Proximal Policy Optimization. Both OpenAI Five and our earlier 1v1 bot learn entirely from self-play. They start with random parameters and do not use search or bootstrap from human replays.OpenAI 1v1 botOpenAI FiveCPUs60,000 CPU cores on Azure128,000 preemptible CPU cores on GCPGPUs256 K80 GPUs on Azure256 P100 GPUs on GCPExperience collected~300 years per day~180 years per day (~900 years per day counting each hero separately)Size of observation~3.3 kB~36.8 kBObservations per second of gameplay107.5Batch size8,388,608 observations1,048,576 observationsBatches per minute~20~60RL researchers (including ourselves) have generally believed that long time horizons would require fundamentally new advances, such as hierarchical reinforcement learning. Our results suggest that we haven’t been giving today’s algorithms enough credit — at least when they’re run at sufficient scale and with a reasonable way of exploring.Our agent is trained to maximize the exponentially decayed sum of future rewards, weighted by an exponential decay factor called γ. During the latest training run of OpenAI Five, we annealed γ from 0.998 (valuing future rewards with a half-life of 46 seconds) to 0.9997 (valuing future rewards with a half-life of five minutes). For comparison, the longest horizon in the PPO paper was a half-life of 0.5 seconds, the longest in the Rainbow paper was a half-life of 4.4 seconds, and the Observe and Look Further paper used a half-life of 46 seconds.While the current version of OpenAI Five is weak at last-hitting (observing our test matches, the professional Dota commentator Blitz estimated it around median for Dota players), its objective prioritization matches a common professional strategy. Gaining long-term rewards such as strategic map control often requires sacrificing short-term rewards such as gold gained from farming, since grouping up to attack towers takes time. This observation reinforces our belief that the system is truly optimizing over a long horizon.OpenAI Five: Dota Gamplay4:20Model structureEach of OpenAI Five’s networks contain a single-layer, 1024-unit LSTM that sees the current game state (extracted from Valve’s Bot API) and emits actions through several possible action heads. Each head has semantic meaning, for example, the number of ticks to delay this action, which action to select, the X or Y coordinate of this action in a grid around the unit, etc. Action heads are computed independently.Interactive demonstration of the observation space and action space used by OpenAI Five. OpenAI Five views the world as a list of 20,000 numbers, and takes an action by emitting a list of 8 enumeration values. Select different actions and targets to understand how OpenAI Five encodes each action, and how it observes the world. The image shows the scene as a human would see it.OpenAI Five can react to missing pieces of state that correlate with what it does see. For example, until recently OpenAI Five’s observations did not include shrapnel zones (areas where projectiles rain down on enemies), which humans see on screen. However, we observed OpenAI Five learning to walk out of (though not avoid entering) active shrapnel zones, since it could see its health decreasing.ExplorationGiven a learning algorithm capable of handling long horizons, we still need to explore the environment. Even with our restrictions, there are hundreds of items, dozens of buildings, spells, and unit types, and a long tail of game mechanics to learn about—many of which yield powerful combinations. It’s not easy to explore this combinatorially-vast space efficiently.OpenAI Five learns from self-play (starting from random weights), which provides a natural curriculum for exploring the environment. To avoid “strategy collapse”, the agent trains 80% of its games against itself and the other 20% against its past selves. In the first games, the heroes walk aimlessly around the map. After several hours of training, concepts such as laning, farming, or fighting over mid emerge. After several days, they consistently adopt basic human strategies: attempt to steal Bounty runes from their opponents, walk to their tier one towers to farm, and rotate heroes around the map to gain lane advantage. And with further training, they become proficient at high-level strategies like 5-hero push.In March 2017, our first agent defeated bots but got confused against humans. To force exploration in strategy space, during training (and only during training) we randomized the properties (health, speed, start level, etc.) of the units, and it began beating humans. Later on, when a test player was consistently beating our 1v1 bot, we increased our training randomizations and the test player started to lose. (Our robotics team concurrently applied similar randomization techniques to physical robots to transfer from simulation to the real world.)OpenAI Five uses the randomizations we wrote for our 1v1 bot. It also uses a new “lane assignment” one. At the beginning of each training game, we randomly “assign” each hero to some subset of lanes and penalize it for straying from those lanes until a randomly-chosen time in the game.Exploration is also helped by a good reward. Our reward consists mostly of metrics humans track to decide how they’re doing in the game: net worth, kills, deaths, assists, last hits, and the like. We postprocess each agent’s reward by subtracting the other team’s average reward to prevent the agents from finding positive-sum situations.We hardcode item and skill builds (originally written for our scripted baseline), and choose which of the builds to use at random. Courier management is also imported from the scripted baseline.CoordinationOpenAI Five does not contain an explicit communication channel between the heroes’ neural networks. Teamwork is controlled by a hyperparameter we dubbed “team spirit”. Team spirit ranges from 0 to 1, putting a weight on how much each of OpenAI Five’s heroes should care about its individual reward function versus the average of the team’s reward functions. We anneal its value from 0 to 1 over training.RapidOur system is implemented as a general-purpose RL training system called Rapid, which can be applied to any Gym environment. We’ve used Rapid to solve other problems at OpenAI, including Competitive Self-Play.The training system is separated into rollout workers, which run a copy of the game and an agent gathering experience, and optimizer nodes, which perform synchronous gradient descent across a fleet of GPUs. The rollout workers sync their experience through Redis to the optimizers. Each experiment also contains workers evaluating the trained agent versus reference agents, as well as monitoring software such as TensorBoard, Sentry, and Grafana.During synchronous gradient descent, each GPU computes a gradient on its part of the batch, and then the gradients are globally averaged. We originally used MPI’s allreduce for averaging, but now use our own NCCL2 wrappers that parallelize GPU computations and network data transfer.The latencies for synchronizing 58MB of data (size of OpenAI Five’s parameters) across different numbers of GPUs are shown on the right. The latency is low enough to be largely masked by GPU computation which runs in parallel with it.We’ve implemented Kubernetes, Azure, and GCP backends for Rapid.The gamesThus far OpenAI Five has played (with our restrictions) versus each of these teams:Best OpenAI employee team: 2.5k MMR (46th percentile)Best audience players watching OpenAI employee match (including Blitz, who commentated the first OpenAI employee match): 4–6k MMR (90th-99th percentile), though they’d never played as a team.Valve employee team: 2.5–4k MMR (46th-90th percentile).Amateur team: 4.2k MMR (93rd percentile), trains as a team.Semi-pro team: 5.5k MMR (99th percentile), trains as a team.The April 23rd version of OpenAI Five was the first to beat our scripted baseline. The May 15th version of OpenAI Five was evenly matched versus team 1, winning one game and losing another. The June 6th version of OpenAI Five decisively won all its games versus teams 1–3. We set up informal scrims with teams 4 & 5, expecting to lose soundly, but OpenAI Five won two of its first three games versus both.The teamwork aspect of the bot was just overwhelming. It feels like five selfless players that know a good general strategy.BlitzWe observed that OpenAI Five:Repeatedly sacrificed its own safe lane (top lane for dire; bottom lane for radiant) in exchange for controlling the enemy’s safe lane, forcing the fight onto the side that is harder for their opponent to defend. This strategy emerged in the professional scene in the last few years, and is now considered to be the prevailing tactic. Blitz commented that he only learned this after eight years of play, when Team Liquid told him about it.Pushed the transitions from early- to mid-game faster than its opponents. It did this by: (1) setting up successful ganks (when players move around the map to ambush an enemy hero—see animation) when players overextended in their lane, and (2) by grouping up to take towers before the opponents could organize a counterplay.Deviated from current playstyle in a few areas, such as giving support heroes (which usually do not take priority for resources) lots of early experience and gold. OpenAI Five’s prioritization allows for its damage to peak sooner and push its advantage harder, winning team fights and capitalizing on mistakes to ensure a fast win.Trophies awarded after the match between the best players at OpenAI and our bot team. One trophy for the humans, one trophy for the bots (represented by Susan Zhang from our team!)Differences versus humansOpenAI Five is given access to the same information as humans, but instantly sees data like positions, healths, and item inventories that humans have to check manually. Our method isn’t fundamentally tied to observing state, but just rendering pixels from the game would require thousands of GPUs.OpenAI Five averages around 150-170 actions per minute (and has a theoretical maximum of 450 due to observing every 4th frame). Frame-perfect timing, while possible for skilled players, is trivial for OpenAI Five. OpenAI Five has an average reaction time of 80ms, which is faster than humans.These differences matter most in 1v1 (where our bot had a reaction time of 67ms), but the playing field is relatively equitable as we’ve seen humans learn from and adapt to the bot. Dozens of professionals used our 1v1 bot for training in the months after last year’s TI. According to Blitz, the 1v1 bot has changed the way people think about 1v1s (the bot adopted a fast-paced playstyle, and everyone has now adapted to keep up).Surprising findingsBinary rewards can give good performance. Our 1v1 model had a shaped reward, including rewards for last hits, kills, and the like. We ran an experiment where we only rewarded the agent for winning or losing, and it trained an order of magnitude slower and somewhat plateaued in the middle, in contrast to the smooth learning curves we usually see. The experiment ran on 4,500 cores and 16 k80 GPUs, training to the level of semi-pros (70 TrueSkill) rather than 90 TrueSkill of our best 1v1 bot).Creep blocking can be learned from scratch. For 1v1, we learned creep blocking using traditional RL with a “creep block” reward. One of our team members left a 2v2 model training when he went on vacation (proposing to his now wife!), intending to see how much longer training would boost performance. To his surprise, the model had learned to creep block without any special guidance or reward.We’re still fixing bugs. The chart shows a training run of the code that defeated amateur players, compared to a version where we simply fixed a number of bugs, such as rare crashes during training, or a bug which resulted in a large negative reward for reaching level 25. It turns out it’s possible to beat good humans while still hiding serious bugs!A subset of the OpenAI Dota team, holding the laptop that defeated the world’s top professionals at Dota 1v1 at The International last year.*What’s nextOur team is focused on making our August goal. We don’t know if it will be achievable, but we believe that with hard work (and some luck) we have a real shot.This post described a snapshot of our system as of June 6th. We’ll release updates along the way to surpassing human performance and write a report on our final system once we complete the project. Please join us on August 5th virtually or in person, when we’ll play a team of top players!Our underlying motivation reaches beyond Dota. Real-world AI deployments will need to deal with the challenges raised by Dota which are not reflected in Chess, Go, Atari games, or Mujoco benchmark tasks. Ultimately, we will measure the success of our Dota system in its application to real-world tasks. If you’d like to be part of what comes next, we’re hiring!AuthorsAuthorsGreg BrockmanChristy DennisonSusan ZhangJakub PachockiMichael PetrovHenrique PondéPrzemysław DębiakDavid FarhiFilip WolskiJonathan RaimanJie TangSzymon SidorBrooke ChanContributorsQuirin FischerChristopher HesseShariq HashmeIlya SutskeverAlec RadfordScott GrayJack ClarkPaul ChristianoDavid LuanChristopher BernerEric SiglerJonas SchneiderLarissa SchiavoDiane YoonJohn SchulmanAcknowledgmentsCurrent set of restrictionsMirror match of Necrophos, Sniper, Viper, Crystal Maiden, and LichNo wardingNo RoshanNo invisibility (consumables and relevant items)No summons/illusionsNo Divine Rapier, Bottle, Quelling Blade, Boots of Travel, Tome of Knowledge, Infused Raindrop5 invulnerable couriers, no exploiting them by scouting or tankingNo ScanThe hero set restriction makes the game very different from how Dota is played at world-elite level (i.e. Captains Mode drafting from all 100+ heroes). However, the difference from regular “public” games (All Pick / Random Draft) is smaller.Most of the restrictions come from remaining aspects of the game we haven’t integrated yet. Some restrictions, in particular wards and Roshan, are central components of professional-level play. We’re working to add these as soon as possible.Draft feedbackThanks to the following for feedback on drafts of this post: Alexander Lavin, Andrew Gibiansky, Anna Goldie, Azalia Mirhoseini, Catherine Olsson, David Dohan, David Ha, Denny Britz, Erich Elsen, James Bradbury, John Miller, Luke Metz, Maddie Hall, Miles Brundage, Nelson Elhage, Ofir Nachum, Pieter Abbeel, Rumen Hristov, Shubho Sengupta, Solomon Boulos, Stephen Merity, Tom Brown, Zak StoneResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTCompanyAboutBlogCareersCharterSecurityCustomer storiesSafetyOpenAI © 2015 – 2024Terms & policiesPrivacy policyBrand guidelinesSocialTwitterYouTubeGitHubSoundCloudLinkedInBack to top
OpenAI Five defeats Dota 2 world champions
OpenAI Five defeats Dota 2 world champions
CloseSearch Submit Skip to main contentSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer storiesSearch Navigation quick links Log inTry ChatGPTMenu Mobile Navigation CloseSite NavigationResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTSafetyCompanyAboutBlogCareersResidencyCharterSecurityCustomer stories Quick Links Log inTry ChatGPTSearch Submit ResearchOpenAI Five defeats Dota 2 world championsOpenAI Five is the first AI to beat the world champions in an esports game, having won two back-to-back games versus the world champion Dota 2 team, OG, at Finals this weekend. Both OpenAI Five and DeepMind’s AlphaStar had previously beaten good pros privately but lost their live pro matches, making this also the first time an AI has beaten esports pros on livestream.April 15, 2019Dota 2, Games, Reinforcement learning, Self-play, Software engineering, OpenAI FiveAt OpenAI Five Finals, we also shared two surprises:OpenAI Five discovered a rudimentary ability to be a teammate with humans, even though our training process focuses exclusively on beating other bots. The ease with which we turned a competitive AI into a cooperative one makes us hopeful that future AI systems can be very beneficial for humans given active development effort.From April 18–21, we’re scaling up OpenAI Five to play the Internet, whether as a competitor or teammate. This final test will let us answer an important research question—to what extent OpenAI Five is exploitable or can otherwise be reliably beaten—and be potentially the largest-ever deployment of a highly-competent deep reinforcement learning agent that people can knowingly interact with.Replays + OpenAI Five planning viewWhy Dota?We started OpenAI Five in order to work on a problem that felt outside of the reach of existing deep reinforcement learning[^footnote-learning] algorithms. We hoped that by working on a problem that was unsolvable by current methods, we’d need to make a big increase in the capability of our tools. We were expecting to need sophisticated algorithmic ideas, such as hierarchical reinforcement learning, but we were surprised by what we found: the fundamental improvement we needed for this problem was scale. Achieving and utilizing that scale wasn’t easy and was the bulk of our research effort!OpenAI Five sees the world as a bunch of numbers that it must decipher. It uses the same general-purpose learning code whether those numbers represent the state of a Dota game (about 20,000 numbers) or robotic hand (about 200).To build OpenAI Five, we created a system called Rapid which let us run PPO at previously unprecedented scale. The results exceeded our wildest expectations, and we produced a world-class Dota bot without hitting any fundamental performance limits.The surprising power of today’s RL algorithms comes at the cost of massive amounts of experience, which can be impractical outside of a game or simulated environment. This limitation may not be as bad as sounds—for example, we used Rapid to control a robotic hand to dexterously reorient a block, trained entirely in simulation and executed on a physical robot. But we think decreasing the amount of experience is a next challenge for RL.We are retiring OpenAI Five as a competitor today, but progress made and technology developed will continue to drive our future work. This isn’t the end of our Dota work—we think that Dota is a much more intrinsically interesting and difficult (and now well-understood!) environment for RL development than the standard ones used today.ComputeOpenAI Five’s victories on Saturday, as compared to its losses at The International 2018, are due to a major change: 8x more training compute. In many previous phases of the project, we’d drive further progress by increasing our training scale. But after The International, we’d already dedicated the vast majority of our project’s compute to training a single OpenAI Five model. So we increased the scale of compute in the only way available to us: training for longer.In total, the current version of OpenAI Five has consumed 800 petaflop/s-days and experienced about 45,000 years of Dota self-play over 10 realtime months (up from about 10,000 years over 1.5 realtime months as of The International), for an average of 250 years of simulated experience per day. The Finals version of OpenAI Five has a 99.9% winrate versus the TI version.[^footenote-winrate]Transfer learningThe current version of OpenAI Five has been training continuously since June 2018, despite changes to the model size and the game rules (including some fairly large game patch updates and newly implemented features). In each case, we were able to transfer the model over and continue training—something that is an open challenge for RL in other domains. To the best of our knowledge, this is the first time an RL agent has been trained using such a long-lived training run.To make this work, we’ve continued to flesh out our surgery tooling so that we can start from trained parameters even across substantial architecture changes.More heroesWe saw very little slowdown in training going from 5 to 18 heroes. We hypothesized the same would be true going to even more heroes, and after The International, we put a lot of effort into integrating new ones.We spent several weeks training with hero pools up to 25 heroes, bringing those heroes to approximately 5k MMR (about 95th percentile of Dota players). Although they were still improving, they weren’t learning fast enough to reach pro level before Finals. We haven’t yet had time to investigate why, but our hypotheses range from insufficient model capacity to needing better matchmaking for the expanded hero pool to requiring more training time for new heroes to catch up to old heroes. Imagine how hard it is for a human to learn a new hero when everyone else has mastered theirs!We believe these issues are fundamentally solvable, and solving them could be interesting in its own right. The Finals version plays with 17 heroes—we removed Lich because his abilities were changed significantly in Dota version 7.20.Cooperative modeIt actually felt nice; my Viper gave his life for me at some point. He tried to help me, thinking “I’m sure she knows what she’s doing” and then obviously I didn’t. But, you know, he believed in me. I don’t get that a lot with [human] teammates. —SheeverOpenAI Five’s ability to play with humans presents a compelling vision for the future of human-AI interaction, one where AI systems collaborate and enhance the human experience. Our testers reported feeling supported by their bot teammates, that they learned from playing alongside these advanced systems, and that it was generally a fun experience overall. Note that OpenAI Five exhibits zero-shot transfer learning—it was trained to have all heroes controlled by copies of itself, but generalizes to controlling a subset of heroes, playing with or against humans. We were very surprised this worked as well as it did. In fact, we’d considered doing a cooperative match at The International but assumed it’d require dedicated training.ArenaWe’re launching OpenAI Five Arena, a public experiment where we’ll let anyone play OpenAI Five in both competitive and cooperative modes. We’d known that our 1v1 bot would be exploitable through clever strategies; we don’t know to what extent the same is true of OpenAI Five, but we’re excited to invite the community to help us find out!Arena opens Thursday, April 18 at 6pm PST and will close 11:59pm PST on Sunday, April 21. Please register so we can ensure there’s enough server capacity in your region! Results of all games will be automatically reported to the Arena public leaderboard.We’re incredibly grateful for all the support the Dota community has shown us over the past two years, and we hope that Arena will also serve as one small way of giving back. Have fun with it!What’s nextWe will be releasing a more technical analysis of OpenAI Five once we’ve reviewed the outcomes of OpenAI Five Arena.Afterwards, we’ll continue working with the Dota 2 environment within OpenAI. We’ve seen rapid progress in the past two years on RL capabilities, and we think that Dota 2 will continue to help us push forward what’s possible—whether with achieving competent performance from less data or true human-AI cooperation.If you are interested in advancing AI capabilities and helping further our mission of ensuring they benefit humanity, we’re hiring!AuthorsOpenAI AcknowledgmentsGame Replays & Planning ViewsOG Game 1: Replay, OpenAI Five planning viewOG Game 2: Replay, OpenAI Five planning viewCoop Game: Replay, OpenAI Five planning viewPlanning View LegendResearchOverviewIndexGPT-4DALL·E 3SoraAPIOverviewPricingDocsChatGPTOverviewTeamEnterprisePricingTry ChatGPTCompanyAboutBlogCareersCharterSecurityCustomer storiesSafetyOpenAI © 2015 – 2024Terms & policiesPrivacy policyBrand guidelinesSocialTwitterYouTubeGitHubSoundCloudLinkedInBack to top
-1.5%����
1819 0 obj
<< /Linearized 1 /L 8544627 /H [ 3565 1236 ] /O 1823 /E 232871 /N 66 /T 8533438 >>
endobj
1820 0 obj
<< /Type /XRef /Length 132 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Index [ 1819 412 ] /Info 1070 0 R /Root 1821 0 R /Size 2231 /Prev 8533439 /ID [<62f44ebb13ce46b373f5775f2409b5b3><796ef4b56fb17e358bda20e04ba347aa>] >>
stream
x�cbd`�g`b``8 "y���6�zD2>�>
endobj
1822 0 obj
<< /Filter /FlateDecode /S 1410 /O 1938 /Length 1144 >>
stream
x��UkTTU�.3���;s�G��%��4aJ(�_Y��fhQ�Yj��i���PT$�w��(��R���eaY:̠s�1i��~�ϝ��媵�?��������o�{��3 � �td�"���z��6��� طncBo���p����Ȑ����HT���d-��|$���V�j�˒��c*�!�Yc�}���jX���XS�`"P����X��Y���5cf���l�)�Nۄa����̈����q��a~���}|3�S��%k��u��ꅶI;�=���=8h���M��~���tq�����S�m6�і��+zY4j��:�V��EL)2���tGpHhXx��Ȩ蘞�q�z���/>������dtwr�=�NM�����!��Y�Æ�9j���>�и܇�O�{d�G'?�?e���'
�,|��iE�Lv�s�Ϝ5��9s���_P���E�_Zb[ZZ�l���_y�����W�Y[�������6nڼe�۶��㭝�v�y�������ށ�����Gj����O>=^�Y}��_�h<�t�˯N�M�o[�~����~>
endobj
1824 0 obj
<< /Filter /FlateDecode /Length 2830 >>
stream
xڅ�n#��}�B�X=M��<�;3��Ύ� ��<�ݔD�-�5��Se��&/j�XUd뤒�f�,��$�������KU.Tk�g���B)�"]Eg�^ܴ�ߣ��l��T���σ��<������uc:~�vǣ�� ��7���R�,d��� �巛�o/S8���<�t�R�e�-Vi�Z�~!~��}bU�dE\&5E����E�e����fq��P�I��c�R5����U�`�[�y�m���� ����I]y���+�4K����pq
�q�2�(QEf�����cb��~ؐH��9GK�:��h_����q�չ68|`��D'_�������Yq�����P����G�7�����w���rY������{��ր��d�E�ЙU�Tvz����&�����E��n���&_��֦c�Ϸi�>���{=��I\7�<3ѕ��?.+��c&�-�Z��n"qY�y��J�[�q?����~A��.h{|�A?��m���Z�� ����ަ�bH{8��N��a��<
���`���qdr$IW�S�q=�]�1'��g�ф&p�W�z��<[�Z0u�Pn�E�k� ��؏r�k��{$� �~��X���ى�7de��U��U�B�Kc���n:���~
*�(g�\�X%)ܰ��D��G۰���]�V�0҉���U�|{ Ѣ��� ��,�U*!���4{��F���W���䠣 �q��������p�'��p�L�t6bt���H�h7����jcz�\�xr�����[ ��q�A3�=2��kko�
�2^ߵ� fGv�S0R���p\ ��#%^@^1��C#��,U��r�-�+�*z����X�3��1(����9���9>�bwt��M�R^��3�+����8�> �T-�1-����+�-�lM�[�v��<� R����,�ա O�oQ�iFE���A��:�CL�ҕ�G."F��*�d���RR�컙�f3��\�C�)%�
.�5T�%��`��PB)n�iXBÀ�6�C"��B%q������EZN3iN|5[��t3�y� |���Y��
�1xk�6V���_2���2�i�:���Fh��<����a}k$���4�3�v&�<&�9O��w��s�h �`e�HK�ܝ w�z�$�,�PZ��c ���Z��8�V�� ��\ ^յF#gixA�3M'H� ��ޑ֡� $�oH�Q
;"��'�� tI�KX�� u��J�)��
8������jd8� Rs��L�C_g�a�C "P-+��~b�����i ������_CL����,O?߉A��
pR>�+�eg����PJ��c�a�#Y��d�pCh�������9�{�%��&L�:o�3G���m]S��xh��.�]@ p?r#0ΐta����d����lT��B��������{���HI�W|�W�6=S�-�y��'�\U��>+E��5�G��z~�u�jkԲ
v����[�穫3V�[\Ctr/_-j��2.�,�:������
E�=D#�w��v�'������)��P*�jP ��|ƘOE���t��W焑-\x8ѥ��.��9¡U'Ya!�Q�AH���LgRV�fl', O�y���(���y�q(�p��\`@�s�Z�9�Nެ w��@�{ `�ے�Å�0}h��+ʌ� QP��V���¢�9�A��B�w��|^�z�Z�'�E�$BO&P�� ��h�����y��� ��s����ڤ]kQv!ޒA5�-ZK0�y2�� _|���Ť�ܚp<���{l�*�$��q . *6��4-�ݓ=�j8�uc$��B z����6Y?��m���l��K����-G�*�k�3r�1$�,���u��<�<��)���� ��L�,�%�� �R{��_.^ VY��58���D�U�6~Z����� �b ���5 ��qp&+"M'm(7� h��5���� �:�_ ���d�.��jB̃wc���4���<8T�@���2U; lt��G�֧\�X�?^���8���4�}���z+�oӉ��y��7
��B-J�P����Z4��߿%�� y���⁰����X�%�����_��].�.Kzq��X%������_i���(�?hT MF\%���Ϡډ��d~ ���5p��<�Ȑ&����2U�f�C]^}x�K0�����GH��6���9�����q��f̂�����������ʏ%�`��2�������wN�Y�ӿ2+�r��۷���Ő���P���� =��|�ӮL�*�Uj��"�g�^�����o
endstream
endobj
1825 0 obj
<< /Filter /FlateDecode /Length1 1377 /Length2 6085 /Length3 0 /Length 7036 >>
stream
xڍvT��6�)%2@�F�Jw���`&l�m�A���E�NE�Ti���x���{����=;g�~����s_������TT�r�i��XQ0$P�7���@@H�����u��5S�Z��8
)�� �h���A�x�>
��r�% `iy��<���D��jo8�蠐0�*�����b�e��p���dD~��04� ��C��0���`�r�ð��Pt�b=���|||��B������ ���A�@�?�)xf�p��)��A� x�;� ���#��P�/0��z���z "��w ��N�7�W"8�w0�� ��� qp���j���X ���cP�x�7�q�~wh( ����qB�=� ��kD�_i������՟ s�_;N��fݐ(��߃3 u�5��C� ��i����M����� )����� � ��:���Jo���v����{�<