人工智能

POKELLMON:一种用于宝可梦战斗的人类级别代理,采用大型语言模型

mm
POKELLMON: A Human-Parity Agent for Pokemon Battles with LLMs

大型语言模型和生成式人工智能在自然语言处理任务中取得了前所未有的成功。随着NLP领域的征服,GenAI和LLM研究人员的下一个挑战是探索如何使大型语言模型在现实世界中自主行动,具有从文本到行动的延长生成间隙,因此代表着人工通用智能追求中的一个重要范式。在线游戏被认为是开发大型语言模型代理的合适测试基础,这些代理可以像人类一样与视觉环境交互。

例如,在流行的在线模拟游戏Minecraft中,可以使用决策代理来帮助玩家探索世界以及开发技能和解决任务。另一个LLM代理与视觉环境交互的例子是The Sims游戏,其中代理在社会交互中表现出色,并表现出类似人类的行为。然而,相比现有的游戏,战术战斗游戏可能是衡量大型语言模型玩虚拟游戏能力的更好选择。战术游戏之所以成为更好的基准,是因为赢得率可以直接衡量,并且始终有稳定的对手,包括人类玩家和AI。

基于此,POKELLMON旨在成为世界上第一个实现战术游戏中的人类级别性能的代理,类似于宝可梦战斗中看到的。POKELLMON框架的核心包括三个主要策略。

  1. 上下文强化学习,它消耗来自战斗的基于文本的反馈,以迭代地改进策略。
  2. 知识增强生成,它检索外部知识以对抗幻觉,使代理能够及时和恰当地采取行动。
  3. 一致的行动生成,以最小化代理遇到强大对手时的惊慌切换情况,并希望避免面对他们。

本文旨在深入介绍POKELLMON框架,并探讨其机制、方法、架构以及与最先进框架的比较。我们还将讨论POKELLMON框架如何展示出卓越的人类般战斗策略和实时决策能力,实现了几乎50%的赢得率。让我们开始吧。

POKELLMON:一个人类级别的宝可梦战斗代理,采用大型语言模型

近年来,大型语言模型和生成式人工智能框架在自然语言处理任务中的能力和效率增长非常惊人。最近,开发人员和AI研究人员一直在努力使生成式人工智能和LLM在现实世界中更加突出,具有在物理世界中自主行动的能力。为了实现这种自主性能,研究人员和开发人员认为游戏是开发LLM代理的合适测试基础,这些代理可以像人类一样与虚拟环境交互。

以前,开发人员曾尝试在Minecraft和The Sims等虚拟模拟游戏中开发LLM代理,尽管人们认为战术游戏如宝可梦可能是开发这些代理的更好选择。宝可梦战斗使开发人员能够评估训练师在知名宝可梦游戏中的战斗能力,并提供了多个优势,包括可以直接将行动和状态空间转换为文本而不会丢失任何信息。以下图表展示了一个典型的宝可梦战斗,玩家被要求在每个回合生成一个行动,给定每边宝可梦的当前状态。用户可以从五个不同的宝可梦中选择,并且有四个动作可供选择。此外,游戏有助于减轻LLM的推理时间和推理成本的压力,因为回合制格式消除了需要密集游戏的要求。因此,性能主要取决于大型语言模型的推理能力。

POKELLMON:方法和架构

POKELLMON框架的整体架构如下图所示。

在每个回合中,POKELLMON框架使用之前的行动和对应的基于文本的反馈来迭代地改进策略,同时使用外部知识(如能力/动作效果或优势/劣势关系)来增强当前状态信息。对于输入信息,POKELLMON框架生成多个行动,然后选择最一致的行动作为最终输出。

上下文强化学习

人类玩家和运动员经常根据当前状态做出决定,但他们也会反思之前行动的反馈以及其他玩家的经验。可以说,正面的反馈有助于玩家从错误中学习,并避免重复同样的错误。如果没有适当的反馈,POKELLMON代理可能会坚持同样的错误行动,如下图所示。

如图所示,游戏代理使用水基攻击对抗具有“干燥皮肤”能力的宝可梦,使其能够抵消水基攻击的伤害。游戏尝试通过在屏幕上闪烁“免疫”消息来提醒用户,这可能会提示人类玩家重新考虑他们的行动,即使他们不知道“干燥皮肤”。然而,由于它不包含在状态描述中,代理会重复同样的错误。

为了确保POKELLMON代理从之前的错误中学习,框架实现了上下文强化学习方法。强化学习是一种流行的机器学习方法,它有助于开发人员改进策略,因为它需要数值奖励来评估行动。由于大型语言模型具有解释和理解语言的能力,基于文本的描述已成为LLM的新型奖励。通过包含来自之前行动的基于文本的反馈,POKELLMON代理能够迭代地和瞬间地改进其策略,即上下文强化学习。POKELLMON框架开发了四种类型的反馈:

  1. 基于两个连续回合的HP差异计算出的实际伤害。
  2. 攻击动作的有效性。反馈指示攻击的有效性,包括无效、免疫、超有效或因能力/动作效果或类型优势而产生的效果。
  3. 执行动作的优先顺序。由于对手宝可梦的确切属性不可用,优先顺序反馈提供了速度的粗略估计。
  4. 执行的动作对对手的实际效果。攻击动作和状态可能会产生恢复HP、属性提升或减益、冻结、烧伤或中毒等结果。

此外,使用上下文强化学习方法会导致性能显著提高,如下图所示。

与原始GPT-4性能相比,赢得率提高了近10%,战斗得分提高了近13%。此外,如下图所示,代理开始分析和改变其行动,如果之前的行动未能达到预期。

知识增强生成(KAG)

虽然实施上下文强化学习有助于减少幻觉,但在代理接收到反馈之前,它仍可能导致致命的后果。例如,如果代理决定用草类型的宝可梦对战火类型的宝可梦,后者可能会在一回合内获胜。为了进一步减少幻觉并提高代理的决策能力,POKELLMON框架实施了知识增强生成(KAG)方法,这是一种使用外部知识来增强生成的技术。

现在,当模型生成上述四种反馈时,它会注释宝可梦的动作和信息,允许代理自行推断类型优势关系。在尝试进一步减少推理中的幻觉时,POKELLMON框架会显式地注释对手宝可梦和代理宝可梦的类型优势和弱点,并提供足够的描述。此外,很难记住具有不同效果的宝可梦的动作和能力,尤其是因为有很多。以下表格显示了知识增强生成的结果。值得注意的是,通过实施知识增强生成方法,POKELLMON框架能够将赢得率提高约20%,从现有的36%提高到55%。

此外,开发人员观察到,当代理提供外部知识时,它开始在正确的时间使用特殊动作,如下图所示。

一致的行动生成

现有的模型表明,实施提示和推理方法可以增强LLM在解决复杂任务方面的能力。与其生成一次性行动,POKELLMON框架评估现有的提示策略,包括CoT(思维链)和ToT(思维树)以及自一致性。对于思维链,代理首先生成一个分析当前战斗场景的思维,并输出一个条件化的行动。对于自一致性,代理生成三次行动,并选择获得最多票数的输出。对于思维树方法,框架生成三个行动,就像自一致性方法一样,但选择它认为最好的一个。以下表格总结了提示方法的性能。

只有每回合一个行动,这意味着即使代理决定切换,而对手决定攻击,切入的宝可梦也会承受伤害。通常,代理决定切换,因为它希望类型优势切换一个不在场的宝可梦,因此切入的宝可梦可以承受伤害,因为它对对手的动作具有类型抵抗力。然而,如上所述,对于具有CoT推理的代理,即使对手强大,也可能会出现不一致的行动,这是因为它可能不想切入到一个宝可梦,而是多个宝可梦,我们称之为惊慌切换。惊慌切换消除了采取行动的机会,并导致失败。

POKELLMON:结果和实验

在讨论结果之前,了解战斗环境至关重要。在每个回合开始时,环境会从服务器接收到一个操作请求消息,并在回合结束时响应该消息,该消息还包含上一个回合的执行结果。

  1. 首先解析消息并更新本地状态变量,2. 然后将状态变量转换为文本。文本描述主要有四个部分:1. 自己队伍的信息,包含在场和不在场(未使用)的宝可梦的属性。
  2. 对手队伍的信息,包含在场和不在场(部分信息未知)的宝可梦的属性。
  3. 战斗场景的信息,包括天气、进入危险和地形。
  4. 历史回合日志信息,包含双方宝可梦的之前行动,并存储在日志队列中。LLM以转换后的状态作为输入并输出下一步的行动。然后将该行动发送到服务器并在与人类玩家采取行动的同时执行。

与人类玩家战斗

以下表格显示了POKELLMON代理与人类玩家的性能。

如图所示,POKELLMON代理的性能与具有更高赢得率的梯队玩家相当,后者具有更广泛的战斗经验。

战斗技能分析

POKELLMON框架很少在选择有效动作时犯错,并由于知识增强生成策略而切换到另一个合适的宝可梦。

如上图所示,代理使用一个宝可梦击败整个对手队伍,因为它能够选择对对手最有效的不同攻击动作。此外,POKELLMON框架还表现出类似人类的消耗策略。一些宝可梦具有“毒”动作,可以在每个回合造成额外的伤害,而“恢复”动作可以让它恢复HP。代理利用这一点,首先中毒对手的宝可梦,然后使用恢复动作来防止自己晕厥。

最后的思考

在本文中,我们讨论了POKELLMON,一种使大型语言模型能够自主地与人类进行宝可梦战斗的方法。POKELLMON的目标是成为世界上第一个实现战术游戏中的人类级别性能的代理,类似于宝可梦战斗中看到的。POKELLMON框架引入了三个关键策略:上下文强化学习,它消耗基于文本的反馈作为“奖励”来迭代地改进行动生成策略,而无需训练;知识增强生成,它检索外部知识来对抗幻觉,并确保代理能够及时和恰当地采取行动;以及一致的行动生成,它防止代理遇到强大对手时出现惊慌切换问题。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。