Bootstrap

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

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

实时战略(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

;