SwarmBrain: 通过大模型玩实时战略游戏《星际争霸II》

news2024/9/19 15:15:53

人工智能咨询培训老师叶梓 转载标明出处

实时战略(RTS)游戏如《星际争霸II》一直被视为测试和提升AI能力的绝佳平台。尽管基于强化学习(RL)的AI代理在《星际争霸II》中取得了显著进展,但它们在处理复杂环境时仍面临挑战。LLMs以其高层次的抽象能力和对复杂情境的理解能力,为AI代理提供了更全面的战场视角,从而可能提高其在复杂场景中的表现和适应性。

最近,来自宝马诚迈公司的研究团队在各种探索性任务中取得了显著成就,甚至超越了传统基于强化学习的方法。本文将探讨LLMs在执行《星际争霸II》游戏中实时战略任务的有效性,并介绍一个名为SwarmBrain的执行实时战略的嵌入式智能体。

SwarmBrain框架

SwarmBrain与《星际争霸II》环境交互的框架图

图1框架是理解SwarmBrain如何在实时战略游戏中运作的关键。

环境观察:SwarmBrain通过python-sc2 API接口获取游戏状态信息。这个接口充当了SwarmBrain与游戏环境之间的桥梁,提供了关于游戏内各种单位、建筑和资源的实时数据。

数据提取:从游戏环境中获取的原始数据是复杂且庞大的。SwarmBrain采用选择性提取过程,只提取对决策过程至关重要的数据。这有助于减少处理数据所需的计算资源,并提高决策速度。

数学计算:提取的数据经过一系列数学运算,转化为必要的参数。这些参数为SwarmBrain提供了对游戏状态的定量理解,比如资源数量、单位状态和敌人的位置等。

自然语言输入:将处理后的数据封装成自然语言描述,作为主宰智能矩阵(Overmind Intelligence Matrix)的输入。这种自然语言描述使得大型语言模型(LLM)能够理解和分析游戏状态。

策略制定:主宰智能矩阵基于输入的自然语言数据,制定战略指令。这些指令包括资源分配、扩张方向和攻击协调等。主宰大脑(Overmind Brain)和星际争霸II大脑(SC2 Brain)共同工作,将战略概念转化为可执行的命令。

命令执行:Swarm ReflexNet接收主宰智能矩阵的指令,并将其转化为具体的操作。这些操作包括单位移动、攻击和建筑建造等。Swarm ReflexNet确保这些操作能够快速、准确地执行。

反馈循环:执行的操作结果会反馈到SwarmBrain,形成闭环。这样,SwarmBrain可以根据最新的游戏状态调整其战略和战术,确保持续的适应性和有效性。

实时决策:SwarmBrain的设计允许它在游戏进行中不断做出实时决策。这种实时性对于《星际争霸II》这样的快节奏游戏至关重要,因为它需要快速响应不断变化的战场情况。

在SwarmBrain框架中,主宰大脑扮演着至关重要的角色,其设计灵感来源于《星际争霸II》中的异虫主宰。这种生物以其高度智能和对异虫族群的全面控制而著称。主宰大脑的主要任务是制定战术策略,保护和扩展异虫族群。它通过模拟异虫的“生存本能”,能够快速有效地响应外部威胁。

为了更好地制定战略,主宰大脑需要对战场的地理分布有深刻的理解。地图位置信息在这里扮演着关键角色,主宰大脑通过这些信息来理解矿场的位置,从而生成与资源地理分布相关的战略洞察。此外,主宰大脑还维护一个策略库,记录历史战术策略,确保新策略与过去的策略协同,避免重复指令。

在全面战场评估协议的帮助下,主宰大脑能够从全面的角度评估战场条件。这包括对当前比赛阶段的判断、己方和敌方单位和建筑的状态评估,以及对敌方战术计划和潜在风险的预测。关键战场信息的识别和优先级排序对于主宰大脑在异虫部队与敌军交战时迅速有效地响应至关重要。

为了提高推理过程的准确性,主宰大脑采用思维链(Chain of Thought)方法,逐步推理当前战场情况,并结合双方单位和建筑的状态。生成的动作列表以JSON格式结构化,便于后续处理和执行。

主宰智能矩阵的整体框架

星际争霸II大脑是主宰智能矩阵的另一个关键组件,负责将主宰大脑的战略构想转化为可执行的游戏命令。其主要功能包括:

任务转换:将主宰大脑的自然语言战术概念转化为《星际争霸II》环境中的具体命令。

命令解码:解析主宰大脑生成的结构化操作命令,确保命令的清晰和可执行。

条件验证:确保生成的命令在当前游戏条件下是可行的,避免执行无效或不适当的操作。

指挥中心作为SwarmBrain与《星际争霸II》环境交互的关键环节,负责将星际争霸II大脑的命令转化为游戏中的实际操作。通过正则表达式解析命令,提取关键信息,并进行条件验证,确保命令在实际游戏中的可行性。如果条件不满足,命令将被暂时挂起,直到条件满足后再执行。

SwarmBrain的群蜂反射网络(Swarm ReflexNet)是其设计中的关键部分,它使得SwarmBrain能够对游戏中的即时情况做出快速反应。这一网络模拟了异虫单位的本能反应,允许它们在没有复杂决策过程的情况下执行基本操作。

工蜂的反射网络(Drone’s ReflexNet)**是这一系统的核心,它为工蜂单位定义了三种基本行为状态:收集资源、攻击和逃跑。在默认情况下,工蜂处于收集状态,专注于采集矿物和瓦斯。然而,当工蜂面临威胁时,它们可以迅速切换到攻击状态,以保护自身或基地。如果攻击者的力量超出了工蜂的应对能力,它们则会自动转换到逃跑状态,以避免不必要的损失。

这种状态转换不是随意的,而是通过一系列预定义的条件来触发。例如,当工蜂检测到敌方单位进入其攻击范围时,它们可能会从收集状态转换到攻击状态。而在敌方单位撤退或被消灭后,工蜂则可能返回到收集状态。这种灵活的状态转换机制使得工蜂能够在不同的战场环境中保持最高的效率和生存能力。

Drone(工蜂)的状态转换图,包括Gather(收集)、Attack(攻击)和Flee(逃跑)状态

领主的反射网络(Overlord’s ReflexNet)**则更为简单,主要包含两种状态:空闲和逃跑。领主在没有受到攻击时会保持空闲状态,进行资源运输和视野扩展。一旦领主受到攻击,它们会立即进入逃跑状态,以减少损失。这种简单的反应机制确保了领主在战场上的生存,同时也为异虫族群提供了必要的支持。

Overlord(领主)的状态转换图,包括Idle(空闲)和Flee(逃跑)状态

对于战斗单位的反射网络(Combat unit’s ReflexNet),如刺蛇和蟑螂,这些单位的行为更为复杂。它们在空闲、攻击和逃跑三种状态下进行操作。空闲状态下,这些单位会等待命令或自动巡逻。当检测到敌方单位时,它们会根据敌方单位的类型和位置,自动进入攻击状态。如果敌方单位的威胁超出了它们的应对能力,或者在执行攻击后,它们则可能转换到逃跑状态,以避免被消灭。

这种反射网络的设计使得战斗单位能够根据战场情况自主做出反应,减少了对中央决策系统的依赖。例如,刺蛇在攻击敌方单位时,会优先攻击敌方的战斗单位,而不是建筑。在完成攻击任务或检测到敌方单位撤退后,刺蛇会返回到空闲状态,等待新的命令。

Zergling(异虫小兵)的状态转换图,包括Idle(空闲)、Attack(攻击)和Flee(逃跑)状态

实验

研究人员使用了OpenAI的gpt-3.5-turbo模型作为SwarmBrain的LLM(大型语言模型)组件,并利用python-sc2包作为与《星际争霸II》环境交互的接口。这个设置允许SwarmBrain接收游戏状态信息,并根据这些信息生成相应的战略和战术命令。

研究人员报告了SwarmBrain在与不同难度级别计算机对手进行的30场比赛中的胜率和平均比赛时间。结果显示,SwarmBrain在“Very Easy”(非常容易)、“Easy”(容易)、“Medium”(中等)和“Medium Hard”(中等困难)难度级别中均取得了100%的胜率。即使在“Hard”(困难)难度级别中,SwarmBrain也保持了76%的胜率。这表明SwarmBrain能够有效地执行战略任务,并在大多数情况下战胜计算机对手。

研究人员还分析了SwarmBrain在不同难度级别比赛中的平均胜利时间。结果显示,在面对“Very Easy”和“Easy”难度的对手时,SwarmBrain通常在大约9分钟内取得胜利。随着对手难度的增加,平均胜利时间也相应增加,这反映了更高难度的对手需要更复杂的战略和更长的时间来克服。

SwarmBrain在不同难度级别计算机对手中的胜利率和平均比赛时间

研究人员分析了SwarmBrain在与不同难度级别计算机对手比赛期间发出的命令类型和频率。他们发现,在面对“Very Easy”和“Easy”难度的对手时,SwarmBrain倾向于使用基本的异虫攻击单位,如Zerglings(刺蛇)、Banelings(爆炸虫)和Roaches(蟑螂)。而在面对更高难度的对手时,SwarmBrain开始训练更高级的单位,如Mutalisks(飞龙)、Infestors(感染者)和Ultralisks(雷兽)。

这种单位选择趋势表明,SwarmBrain能够根据对手的难度和战术变化灵活调整其战略。在面对更高难度的对手时,SwarmBrain的命令更加全面,显示出其在复杂战术环境中的适应性。

研究人员还讨论了SwarmBrain在游戏中采取的一些关键战略。他们指出,SwarmBrain非常重视侦察情报的收集,经常派遣Overlords(领主)或Zerglings(刺蛇)去监视对手的矿区,获取敌人的动态和战略信息。

在比赛的早期阶段,SwarmBrain会迅速响应任何检测到的威胁,并根据主宰大脑和群蜂反射网络的指导,动员相应的单位进行防御或攻击。例如,如果检测到敌方部队准备攻击,SwarmBrain会立即调动附近的Roaches(蟑螂)和Zerglings(刺蛇)进行反击。

随着比赛进入后期阶段,SwarmBrain显示出对空中和地面部队混合编队的偏好,并利用Overseer(监察者)进行侦察。地面部队包括Zerglings(刺蛇)、Roaches(蟑螂)、Hydralisks(刺蛇)、Ultralisks(雷兽),而空中部队则包括Mutalisks(飞龙)、Corruptors(腐蚀者)、Overseers(监察者)和Brood Lords(虫群宿主)。这种混合编队策略使得SwarmBrain能够在不同的战斗场景中灵活应对。

有无Swarm ReflexNet时SwarmBrain的表现对比

在消融研究中研究人员探讨了不同组件对SwarmBrain性能的影响。他们比较了使用gpt-3.5-turbo和gpt-4.0-turbo模型时SwarmBrain的表现差异。研究发现,尽管gpt-4.0-turbo在理解游戏场景方面更为深入和全面,但其推理时间大约是gpt-3.5-turbo的两倍。在需要快速反应的游戏中,这种延迟可能会影响SwarmBrain的战术执行。

gpt-3.5-turbo推理错误的例子

研究人员还对群蜂反射网络进行了消融研究,比较了有无该网络时SwarmBrain的表现。结果表明,群蜂反射网络能够显著提高SwarmBrain在战斗中的战术反应能力,使其能够更有效地应对敌方的经济和军事单位。

通过这些实验和分析,研究人员展示了SwarmBrain在《星际争霸II》中的有效性和潜力,同时也揭示了其在实际应用中可能面临的挑战和需要进一步改进的地方。

虽然SwarmBrain在《星际争霸II》中取得了显著的进展,但仍存在挑战。主要问题包括大模型在处理视觉信息方面的局限性,以及推理速度对游戏实时决策的影响。未来研究的方向,即如何提升模型对视觉场景的理解能力,并优化其决策速度,以便在快节奏的RTS游戏中更好地模拟人类玩家的策略和反应。

论文链接:https://arxiv.org/abs/2401.17749

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

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

相关文章

SpringBoot、SpringCloud、SpringCloud Alibaba版本对应关系

1. 概述 随着SpringBoot和SpringCloud的发展,有些服务进入停更运维状态,一些新的框架出现,在开发微服务的时候不同组件的版本对应关系也是不可忽视的问题,如果版本不对应,可能会出现很多莫名的错误,给开发…

5G mmWave PAAM 开发平台

Avnet-Fujikura-AMD 5G 毫米波相控阵天线模块开发平台 Avnet 和 Fujikura 为毫米波频段创建了一个领先的 5G FR2 相控阵天线开发平台。该平台使开发人员能够使用 AMD Xilinx 的 Zynq UltraScale™ RFSoC Gen3 和 Fujikura 的 FutureAcess™ 相控阵天线模块 (PAAM) 快速创建和制…

AI周报(7.14-7.20)

AI应用-本届欧洲杯的AI技术应用 卢卡库在两场比赛中共有三次庆祝进球的情况,但遗憾的是这三次庆祝均未能转化为有效的进球。这种“吐饼王”的表现也让他成为了本届欧洲杯的一个另类焦点人物。虽然稍显悲情,但有了AI的深度应用,即使这样极端的…

震惊,搜索二叉树告诉我们不要生二胎?本篇(带图)让你轻松拿下

引子: 二叉树作为一种常见的一种数据结构,我们也经常使用,有以下几种类型:满二叉树(Full Binary Tree):所有节点都恰好有两个子节点或没有子节点。完全二叉树(Complete Binary Tree&#xff09…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十六章 Linux驱动初探

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Python list comprehension (列表推导式 - 列表解析式 - 列表生成式)

Python list comprehension {列表推导式 - 列表解析式 - 列表生成式} 1. Python list comprehension (列表推导式 - 列表解析式 - 列表生成式)2. Example3. ExampleReferences Python 中的列表解析式并不是用来解决全新的问题,只是为解决已有问题提供新的语法。 列…

易我数据恢复怎么样?这款四款也很好用

虽然我已经很小心了,但是生活中总有一些意外情况导致数据丢失,这时,数据恢复软件便成为了我们的救命稻草。不知道大家用过易我数据恢复没。我用过,但是目前更喜欢下面的四款数据恢复工具,更符合我的使用习惯&#xff0…

【ai】学习笔记:电影推荐1:协同过滤 TF-DF 余弦相似性

2020年之前都是用协同过滤2020年以后用深度学习、人工智能视频收费的,不完整,里面是电影推荐 这里有个视频讲解2016年大神分析了电影推荐 :MovieRecommendation github地址 看起来是基于用户的相似性和物品的相似性,向用户推荐物品: 大神的介绍: 大神的介绍: 基于Pytho…

Windows tasklist命令详解,Windows查看进程

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 tasklist 可以…

Chapter14 非真实感渲染 NPR——Shader入门精要

Chapter14 非真实感渲染 NPR 一、卡通风格渲染1.渲染轮廓线2.添加高光3.ToonShadingMat 二、素描风格渲染 一、卡通风格渲染 特点:物体被黑色线条描边,分明的明暗变化等方法:其中之一就是 基于色调的着色技术 1.渲染轮廓线 方法 基于观察角…

零基础入门鸿蒙开发 HarmonyOS NEXT星河版开发学习

今天开始带大家零基础入门鸿蒙开发,也就是你没有任何编程基础的情况下就可以跟着石头哥零基础学习鸿蒙开发。 目录 一,为什么要学习鸿蒙 1-1,鸿蒙介绍 1-2,为什么要学习鸿蒙 1-3,鸿蒙各个版本介绍 1-4&#xff0…

MYSQL2

1.建库以及建表: mysql> create database mydb8_woker; mysql> use mydb8_woker; mysql> create table t_worker( -> department_id int(11) not null comment 部门号, -> worker_id int(11) primary key not null comment 职工号, -&…

Java中的Heap(堆)(如果想知道Java中有关堆的知识点,那么只看这一篇就足够了!)

前言:(Heap)是一种特殊的完全二叉树,它在诸多算法中有着广泛的应用,本文将详细介绍Java中的堆。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本文大…

《Milvus Cloud向量数据库指南》——开源许可证的开放度:塑造AI开发合作与创新的双刃剑

在人工智能(AI)技术日新月异的今天,开源软件作为推动技术创新的重要力量,其许可证的开放度成为了影响AI开发合作、创新模式乃至整个行业生态的关键因素。不同的开源许可证模型,以其各自独特的开放程度,不仅决定了软件项目的可访问性和可定制性,还深刻影响着AI领域内的合…

springboot 实体类加注解校验入参数据

导入的是springboot自身的依赖包 import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid;

R语言进行K折交叉验证问题

在使用R语言进行模型参数评估优化时候,会使用K折交叉验证,其中会遇到各种各样问题: 错误: C5.0 models require a factor outcome > (1-mean(E0));(1-mean(E1)) [1] 1 [1] 1 报错说明C5.0模型需要因子变量输出,源代码如下&am…

还在为电脑录屏困扰吗?试试这4个方法,瞬间解决

现在很多人用手机进行日常操作都知道录屏的功能怎么操作,但是电脑录屏怎么录呢?如果你需要使用电脑进行录屏操作的时候就可以看看这篇文章。 1.福晰录屏大师 这个工具是一个专业的录屏软件。可以控制录制的区域范围,也能控制音频来源&#…

鸿蒙仓颉语言【匹配match】

模式匹配match match特性是现代编程语言中常见的特性,它们在不同的编程语言中有类似的概念和语法,但在细节上可能有一些差异。它们都可以提高代码的灵活性和可重用性,但用法和语法可能会因编程语言而异。 仓颉的match 支持通过箭头函数直接…

python用selenium网页模拟时xpath无法定位元素解决方法2

有时我们在使用python selenium xpath时,无法定位元素,红字显示no such element。上一篇文章写了1种情况,是包含iframe的,详见https://blog.csdn.net/Sixth5/article/details/140342929。 本篇写第2种情况,就是xpath定…

怎样对 PostgreSQL 中的慢查询进行分析和优化?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 怎样对 PostgreSQL 中的慢查询进行分析和优化?一、理解慢查询的危害二、找出慢查询&#x…