把 AI 人机炼成高玩,游戏 AI 技术实践指南,码住!

news2025/1/11 18:37:08

今天,为大家深入浅出地讲明白上亚运的经典 IP《梦三国 2》,到底应用了哪些来自网易数智的 AI 黑科技。看完你就会觉得:原来做 AI,我也行!

方案概述

游戏作为 AI 落地最佳的试验田,近年来已经产生了多个极具影响力的案例,如《星际争霸 2》中的 AlphaStar、《Dota2》中的 OpenAI Five 等,各大游戏厂商更是早早开始了 AI 实验室的布局。但与之相对的,国内还没有跑出特别标杆的游戏 AI 应用实践。随着 AI + 游戏落地案例越来越多,AI 在游戏中的商业价值亦成为海内外各大厂商的共识。

基于自研的分布式强化学习训练框架,为超大型 MOBA 游戏《梦三国 2》训练出高水平游戏 AI 智能体,满足游戏中迫切的陪玩、对决需求

游戏环境的开发

为了训练强化学习 AI 机器人,首先需要将游戏接入训练框架中,因此游戏本身需要开发一些额外的功能。

我们将需要开发的游戏环境称为 GameCore,其基本定义为:在游戏客户端基础上,添加了与 AI 服务器通信交互功能。通过 GameCore 将游戏状态发送给 AI,AI 收到状态后做出一次决策,决策返回至 GameCore 中并得到执行,如此往复。

由于训练阶段需要同时开启多个 GameCore,为满足大量 GameCore 同时训练的需求,必须使用大规模分布式训练框架

训练框架的接入

游戏 AI 的训练离不开模仿学习和强化学习,而这些都依赖于海量的数据、算力,以及高效的训练算法。分布式强化学习框架就是要提供这样一个高效的训练平台,支持游戏仿真环境并行采样,支持流水线式数据处理,支持高吞吐低延迟的模型预测以及支持多机多卡并行训练。

现有的开源强化学习框架比如 Ray(RLlib)、OpenAI Baselines、PyMARL 等,更多的是实验和研究性质,满足了强化学习算法探索、效果对齐等需求,特点是通用性强,算法可拓展性高,但面对真实的游戏场景往往不够实用。

为了解决以上问题,数智自研了分布式强化学习训推一体化框架 BrayBray 面向真实的游戏 AI 落地进行优化,在算法侧做减法,保证框架的简单易于上手,同时用模块化设计理念保证了框架的高可用。具体地,Bray 解决了以下几个痛点问题:

1. 统一训练和推理框架

游戏 AI 的研发上线往往经过训练和部署两个阶段,部署阶段的特征处理和模型推理逻辑是训练的子集,二者的代码可以复用。为了进一步降低训练到部署的迁移成本,保证迁移的正确性,Bray 在框架层面支持了训练到部署的无缝迁移

2. 规范化游戏 AI 的接入流程

一个游戏 AI 的接入涉及到游戏开发、算法对接、性能优化等,通过规范接入过程的流程和接口,Bray 实现了各个模块的并行接入、测试和验证,缩短了游戏 AI 的接入周期

3. 模块化设计和简单易用的 API

Bray 中明确定义了 Actor、Model、Buffer、Trainer 等概念,对应到 Python 中的类和模块,模块间充分解耦,让游戏接入、算法调优和性能优化可以独立进行。此外模块化设计保证了框架的高可拓展性,快速支持 SelfPlay 和 League 等多智能体训练

由于《梦三国 2》游戏环境在强化学习中属于经典的稀疏奖励问题(sparse reward), 即在一个完整的 episode 中,绝大部分 step 的 reward 为 0,这导致智能体(下称“agent”)从 init state(初始状态)开始的随机探索效率非常低,极大降低了训练效率。

我们首先使用状态完全随机初始化,如对于一个打野英雄,它可能会被直接传送到一个残血的野怪附近;从而极大提升有效样本在前期探索中的比例。

但这种方法无法解决的问题是,随着训练的迭代,agent 对某些初始状态的探索已足够充分,我们需要更加关注 agent 探索不够充分的状态,比如对于打野英雄,它很快就会学会刷野,但却要花费非常多的时间来学会如何 gank 及反野,因此我们进一步引入了加权随机初始化,具体地:

我们设计了一个打分函数,用于给每个初始状态打分,agent 对该状态的收敛度越高,分数便越低,该初始状态及分数会被存储在一个特殊的 buffer 中;在环境每次 reset 时,我们都会以一定的概率从 buffer 中以分值为权重采样出一个初始状态,由此,agent 可以更加专注于探索不充分的状态,训练效率得到极大提升。

风格多样性的微调

在过去的方法中,如果我们想让 agent 学会一种新的策略(风格),往往通过设计一套新的奖励函数来实现,并且过程中还需要根据 agent 实际表现对奖励函数的权重进行不断微调重新训练。

据此,我们采用了一种新的方法来避免耗费过多的时间在调整权重上,具体地:

我们为奖励函数的组成部分中,所有会影响策略风格的实体添加一个系数,比如推掉外层一塔便是一个实体;在每个 episode 开始时,我们为每一个 player 重置一套新的风格系数,并将风格系数添加至神经网络的输入中,由此让神经网络拟合风格系数与策略表现之间的映射关系,在模型收敛后,我们便可以通过观察每一组风格系数对应的策略来找到多组风格迥异的模型

为了满足不同段位玩家的体验,我们对 agent 的能力进行了难度分级,具体地:

我们希望不同难度 agent 的区分度主要表现在 agent 对游戏的理解能力及操作能力,即大局观和微操

据此,我们首先对神经网络的输入加入了层次噪声,来使得 agent 对局势判断出现误差,从而模拟不同段位玩家的大局观;进一步地,我们对神经网络的输出加入了分层延迟及扰动,从而模拟不同段位玩家的手速及微操能力。

最后,我们多组难度的模型投放到线上与真实玩家对战,选取天梯分稳定在某个段位的模型作为该段位的分级模型

强化学习方案优势

  • 通过让游戏 AI 智能体在每局比赛中都“精彩地输掉”,解决公平竞技游戏中“双方都想赢那谁来输”的问题

  • 为玩家分配更加贴近其真实水平的智能体,让玩家获得更真实的对抗体验,酣畅淋漓地获胜!

  • 通过优化训练方案,极大降低训练智能体需要的机器成本

戳我即可收获《网易数智年度技术精选》

《2023年度游戏安全观察与实践报告》戳我查看

《 2023 中国移动游戏私域运营指南 · 启动篇》

《网易数智游戏AI实践指南》更多干货内容,可以✉✉~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1886747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven构建断网springboot

maven构建断网springboot 我的依赖仓库(本地电脑,记住常用的那几个)org.springframework.boot下的 spring-boot-starter-parent spring-boot-starter-web /Users/lin/Documents/repo 使用maven进行创建空白项目 在pom.xml中补全parent类…

【文档+源码+调试讲解】科研经费管理系统

目 录 目 录 摘 要 ABSTRACT 1 绪论 1.1 课题背景 1.2 研究现状 1.3 研究内容 2 系统开发环境 2.1 vue技术 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 2.5 SSM框架技术 3 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3 经济可行性 3.1…

51单片机嵌入式开发:STC89C52操作GPIO口LED灯

STC89C52操作GPIO口LED灯 1 芯片介绍1.1 芯片类型1.2 芯片系列说明 2 GPIO引脚寄存器说明3 GPIO操作3.1 GPIO输入3.2 GPIO输出3.3 GPIO流水灯3.4 Protues仿真 4 总结 1 芯片介绍 1.1 芯片类型 芯片采用宏晶科技品牌下的STC89C52RC单片机 选择STC89C52RC系列STC89C58RD系列单片…

echarts的折线图实现部分虚线部分实线

场景: 折线图一般都是实线为准,但是由于最后一个数据是预测。所以想要实现最后一段为虚线。 效果图: 具体实现: series:[{name: "销售总金额",type: "line",smooth: true,barWidth: 10,stack: Total,itemSty…

【机器学习】人工智能与气候变化:利用深度学习与机器学习算法预测和缓解环境影响

📝个人主页:哈__ 期待您的关注 目录 🔥引言 1.1 背景介绍 1.2 人工智能与机器学习的崛起 1.3 本文内容概述 🔨气候变化的挑战 2.1 现今气候变化带来的影响和挑战 2.2 引发关注的气候变化趋势和数据 🤖人工智能…

甘肃香酥可口的烤花卷:味蕾的新宠

在美食的世界里,总有一些创新的美味能够让人眼前一亮,烤花卷便是其中之一。烤花卷,这甘肃一独特的美食,将传统花卷的柔软与烤制的香脆完美结合,为我们的味蕾带来了全新的体验。从外观上看,烤花卷呈现出诱人…

人脉社群平台微信小程序系统源码

🌟【解锁人脉新纪元:探索人脉社群平台小程序】🌟 🚀【开篇:为什么我们需要人脉社群平台小程序?】🚀 在这个快节奏的时代,人脉不再是简单的名片交换,而是通往成功与机遇…

Elasticsearch:Runtime fields - 运行时字段(一)

运行时字段(runtime fields)是在查询时计算的字段。运行时字段使你能够: 向现有文档添加字段而无需重新索引数据开始处理数据而无需了解其结构在查询时覆盖索引字段返回的值定义用于特定用途的字段而无需修改底层架构 你可以像访问其他任何…

d3dcompiler_47.dll缺失怎么修复?d3dcompiler_47.dll修复使用说明

d3dcompiler_47.dll是一个重要的系统文件,属于MicrosoftWindows操作系统中Direct3D的一部分,它主要负责处理在Windows上运行的应用程序和游戏中的3D图形编程。这个DLL文件是“DirectX”的一项组成部分,DirectX是一套核心技术,用于…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验13 静态路由配置错误导致的路由环路问题

一、实验目的 1.验证静态路由配置错误导致的路由环路问题; 二、实验要求 1.使用Cisco Packet Tracer仿真平台; 2.观看B站湖科大教书匠仿真实验视频,完成对应实验。 三、实验内容 1.构建网络拓扑; 2.验证路由环路。 四、实验…

嵌套组合请求对象的校验与全局捕捉

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)

S7-1500PLC通过工艺对象实现V90总线伺服定位控制,伺服驱动器工作在速度模式,S7-1500PLC工作在位置模式,具体控制原理框图,可以参考下面文章链接: 1、S7-1200PLC和V90总线伺服位置控制 S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_v90伺服 报文3 设…

聊聊etsy平台,一个年入百万的项目

聊聊etsy平台,一个年入百万的项目 什么是etsy,这是怎样一个平台,怎样盈利的?相信现在大家满脑子都是这些疑问。 这个平台也是无意间一个学员提到的,据说他朋友靠这个平台年赚好几百万。苦于门槛太高,他也做不了。今天…

微软预计年底实现实时语音界面;硅基智能开源 AI 数字人交互平台 Duix丨 RTE 开发者日报

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

基于matlab的控制系统串联校正—相位超前校正问题实例

1.问题 为了改进闭环系统性能,可以采用串联校正,这里用相位超前校正,即 α 常取 0.07~0.2 ,选择适当的 α 与 τ , 要使 针对新的开环传递函数 G ’ K (S)Gc(S) G(S) H(S) ,画出开环 Bode 图&#xff…

停车场车牌识别计费系统,用Python如何实现?

关注星标,每天学习Python新技能 前段时间练习过的一个小项目,今天再看看,记录一下~ 项目结构 说明: datefile文件夹:保存车辆信息表的xlsx文件 file文件夹:保存图片文件夹。ic_launcher.jpg是窗体的右上角…

Laravel swagger接口文档生成和管理

Laravel swagger接口文档生成和管理 接口开发随着时间推移接口会越来越多,随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用 这里推荐swagger生成和管理接口文档&…

Python入门 2024/7/2 While

目录 while循环的基础应用 循环输出十次:键盘敲烂,月入过万 计算1~100的和 用while循环练习猜数字 while循环的嵌套应用 打印九九乘法表 输出不换行的功能 while循环的基础应用 格式: while 条件: 条件满足时&#xff0c…

昇思25天学习打卡营第1天|yulang

今天主要了解了深度学习框架之昇思MindSpore的初学入门,没想到 ai学习入门如此简单,不愧是华为大手笔,提供的学习环境配置如此之高。这个平台有点类似百度飞桨,大大降低了AI开发门槛,使用户能够快速实现想要的模型&…

从零开始:如何设计一个现代化聊天系统

写在前面: 此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://mainjaylai.github.io/Blog/blog/system/chat-system 在当今数字化时代,聊天系统已成为我们日常生活和工作中不可或缺的一部分。从个人交流到团队协作,从客户服务到社交网络,聊天应用…