VLM-Attention: 打造人类视角的星际争霸II智能体环境
突破SMAC的局限性
传统的SMAC环境虽然为多智能体强化学习提供了标准化的接口,但其设计与人类玩家的游戏体验有较大差异。SMAC环境使用预定义的离散动作空间(如NOOP、STOP、四个方向移动和攻击),观测空间也主要基于数值特征(如相对距离、血量比例等),这种设计虽然便于训练,但难以模拟人类玩家的决策过程。
VLM-Attention的系统设计
VLM-Attention通过重新设计观测空间和动作空间,构建了一个更贴近人类认知的交互环境。我们的观测空间包含三个核心组件:
观测空间与动作空间
文本观测(Text Observation)
提供游戏状态的自然语言描述
包含所有单位的生命值、护盾值等状态信息
按阵营(己方/敌方)组织信息架构
图像观测(Image Observation)
提供RGB格式的游戏画面,支可持单位标注和状态可视化.同时尺寸可配置,支持高分辨率的图像.
单位详细信息(Unit Information)
原始单位标识符(original_tag)和简化标识符(simplified_tag)
单位基础属性:阵营、类型、名称、位置等
状态值和技能信息:生命值、护盾值、能量值、可用技能列表、技能类型等
动作空间
设计包括三类核心动作:
攻击动作(Attack Actions)
使用标签对标识攻击者和目标,支持验证攻击合法性以实现精确的单位选择和目标指定.
移动动作(Move Actions)
支持两种移动模式:
- 网格移动:10x10网格系统,支持精确坐标定位,如move_to(unit_A_label,5,5)
- SMAC风格移动:四个基本方向(上下左右),与smac的移动方式一致.
技能动作(Ability Actions)
支持多种技能类型:
- 瞬发技能(quick)
- 点目标技能(point)
- 单位目标技能(unit)
- 自动施放技能(autocast)
完整的技能系统:
- 装载,卸载等等
- 兴奋剂,坦克支架,维京战机变形等等
- 其他特殊技能
single-player setting
player1视角
player2视角
2-players setting
核心优势
VLM-Attention环境的设计具有以下优势:
认知对齐
- 观测方式与人类玩家视角一致.AlphaStar 的观测空间包含了Game core的大量信息,比如deepmind使用到的17层feature map(高度,unit tag等等);而 SMAC的观测空间则包含了游戏内的物理量信息,同时没有视觉输入. 所以当前的星际争霸2 AI在观测上并不能做到和人类对齐.而我们的观测空间为RGB游戏图像与文本信息,基本做到了与人类一致的观测空间,从而实现了认知对齐.
AlphaStar framework
SMAC observation space
- 支持基于视觉和语言的决策过程,实现更自然的决策. 环境支持每个step接收对应的文本和RGB图像信息,同时提供了对应的标签函数,为对应的单位标明指定的序号.
原始3m 环境图像
自动化标注的3m 环境图像, 不同单位的simple_tag是不同的,我们通过跟踪unit_tag(即星际争霸2 游戏引擎为每个单位提供的tag),进行转换,保证每个单位在同一局游戏内的tag恒定不变.
丰富的地图设计
我们的环境支持 single player(类似于SMAC), 2 players(即支持self-play), ability usage 1/2 player(SMAC 本身并不支持 ability,我们的新环境支持ability-使用技能).
与此同时,我们设计了更加符合星际争霸2 真实游戏情况的微观操作对抗地图以及对SMAC地图进行了改进.新地图将有效测试 Agent的推理和决策能力
VLM-Agent设计
我们探索了VLM-SELF-ATTENTION, RAG对agent的影响
VLM-SELF-ATTENTION
在VLM-SELF-Attention中,我们引入了基于视觉语言模型的自注意力机制,使智能体能够像人类玩家一样感知和理解战场。当环境向智能体提供游戏画面时,系统首先对所有单位进行完整标注,生成第一轮图像注释。随后,视觉语言模型会分析场上形势,识别具有高战略价值的敌方单位,并生成包含这些重要单位的第二轮重点标注。这种双重标注机制让智能体能够在复杂的战场环境中快速锁定关键目标,模拟了人类玩家在对战中的注意力分配过程。
RAG
为了提升决策的专业性,我们设计了基于检索增强生成(RAG)的知识系统。该系统维护了一个专业的星际争霸II单位数据库,能够针对场上单位实时检索相关信息。在每个决策周期中,系统会检索当前战场上所有相关单位的专业数据,包括单位特性、战术价值和常用策略等信息。这些知识会被整合成一份简洁的单位信息摘要,帮助智能体制定更有针对性的战术决策。系统还会记录最近几个决策步骤的历史信息,使智能体能够根据战局发展调整策略。
VLM驱动的多智能体任务分配
在多智能体环境中,任务分配是一个至关重要且富有挑战性的问题,尤其是在复杂的动态场景中。人类社会通常通过分工协作来有效地解决这一问题,而在虚拟环境中,如星际争霸II,任务分配不仅要考虑单位的类型和特性,还需要实时应对战场上的不断变化。因此,设计一个能够灵活适应各种情境的任务分配系统是提升智能体协作效率的关键。在星际争霸II等实时战略游戏中,任务分配涉及多个智能体协同工作,需要考虑到战场形势、资源分配、单位特性以及敌方的策略等因素。一个高效的任务分配机制能够确保每个智能体在特定时刻执行最优任务,从而提高整体作战效率,减少资源浪费,并增强在动态复杂环境中的适应能力。例如,在一场战斗中,某些单位可能需要专注于进攻,而其他单位则应负责防守或资源采集。任务分配的不当可能导致战斗中的协调失败,进而影响整个团队的表现。
在人类社会中,这一问题通常通过分工协作来解决。为了解决这一问题,我们提出了一个基于视觉语言模型(VLM)的任务分配系统。该系统通过融合来自游戏画面和文本信息的多模态数据,识别战场上的关键单位,综合其类型、状态以及周围环境信息,为每个单位分配最适合的任务。这种多模态输入不仅能增强系统对环境的感知能力,还能提高智能体在复杂环境中的任务分配和协作效果。
具体而言,我们设计了一个角色分配(role assignment)模块,主要由对比学习(contrastive learning)以及反思机制(reflection)构成。首先,在游戏开始或战场变化时,系统首先基于战场情势和单位特性生成一个初步的任务分配方案。这一方案考虑了单位的功能需求、战术需求以及敌方活动等因素。例如,对于具有较强攻击力的单位,系统可能将其分配为攻击任务;对于防御能力较强的单位,则分配为防守任务。随后,对比学习被用于优化任务的分配,使得系统能够根据任务的相似性调整分配策略。具体来说,系统会通过对比学习算法,将相似类型的任务映射到相近的空间,而不同类型的任务则被拉远。例如,任务“集火”与“反打”可能有较高的相似性,而“放风筝”则与“控场”类型的任务差异较大。通过对比学习,任务之间的关系被有效编码,为后续的任务调整提供了理论支持。最后,在任务分配过程中,反思机制能够根据对比学习的反馈调整初始任务分配方案。例如,如果系统发现某些单位在执行任务时效率低下,它会通过反思机制重新评估任务分配的合理性,并进行调整。这种动态调整不仅能够提升任务分配的准确性,还能应对战场中不断变化的复杂情况。
在角色表示层面,我们摒弃了传统的one-hot编码方式,采用了更为灵活的encoder-decoder结构,将每个角色的任务信息编码成一个连续的向量。与传统的one-hot编码相比,连续向量能够更有效地捕捉角色之间的相似性和差异性。例如,两个类型相似的单位(如两个战斗单位)在编码空间中的距离会更近,而任务需求差异较大的单位(如采集单位与战斗单位)则会被编码为距离较远的向量。这种编码方式不仅提高了对比学习和反思机制的效果,还能进一步优化任务分配和智能体之间的协作。
pipeline
VLM-Attention的完整决策流程展现了智能体如何将视觉理解、知识检索和战术规划有机结合。当接收到新的观测时,智能体首先进行场景理解,处理游戏画面并提取单位信息。随后通过自注意力机制识别关键目标,并从知识库中检索相关信息。然后通过角色分配模块为每个智能体划分合理的分工。基于这些输入,智能体会生成初步的决策方案,经过规范化处理和合法性验证后执行。这种设计使VLM-Attention能够像人类玩家一样,通过观察、分析和决策进行游戏,体现了AI在复杂战略环境中的认知能力。
我们希望本工作不仅为VLM/RL提供了理想的测试平台,也研究者提供了一个更接近真实游戏体验的研究环境。
demo链接:Qwen-vl模型也能打星际!_哔哩哔哩_bilibili
关于Camel社区
Camel社区是一个致力于推动人工智能(AI)技术创新的开源社区,专注于 Agent领域的研究与应用。作为Camel社区的一员,我们始终秉持开放、协作和创新的理念,积极参与社区项目,推动AI技术的透明性和可访问性。
Camel社区的核心使命是通过开源项目和跨学科合作,促进AI技术的前沿发展。社区汇聚了全球的研究者、开发者和爱好者,共同探索AI在复杂环境中的应用,如游戏智能体、机器人协作和战略决策等。我们的工作VLM-Attention正是基于Camel社区的开源精神和技术积累,致力于打造更贴近人类认知的星际争霸II智能体环境。
我们感谢Camel社区提供的支持与资源,并期待与更多社区成员合作,共同推动AI技术的进步。如果您对VLM-Attention或Camel社区感兴趣,欢迎访问Camel社区官网了解更多信息,或加入我们的开源项目。