llm-colosseum
让大模型在街霸III中格斗对战,用游戏评测LLM实时决策与策略能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让大模型在街霸III中格斗对战,用游戏评测LLM实时决策与策略能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个这样的场景:两个大模型各自操控《街霸III》中的角色,在实时的像素战场上你来我往、见招拆招——这不是玩笑,而是 LLM Colosseum 正在做的事。这个开源项目用格斗游戏作为大模型能力评测的全新竞技场,让 GPT-4o、Mistral、Pixtral 等模型真刀真枪地比拼反应速度、策略深度和适应能力。
传统的大模型评测基准(如 MMLU、GSM8K)侧重于静态问答或数学推理,无法衡量模型在实时决策环境下的表现。而格斗游戏天然具备以下评测维度:
LLM Colosseum 基于 DIAMBRA Arena 游戏环境,该环境封装了《街霸III:第三击》(Street Fighter III: 3rd Strike)的核心逻辑,提供了标准化的动作空间(18个动作)和观测接口。
项目实现了两种 Agent 模式:
TextRobot:将游戏状态转换为文本描述发送给 LLM,包括双方角色的位置坐标、生命值、能量槽、上一回合的动作历史等。LLM 根据这段文字上下文输出下一步的行动指令。代码位于 agent/robot.py,核心决策循环为:
def plan(self):
if len(self.next_steps) > 0:
return # 已有动作队列,直接执行
next_steps_from_llm = self.get_moves_from_llm()
# 将 LLM 返回的招式名翻译为游戏按键序列
next_buttons = [
button
for combo in next_steps_from_llm
for button in META_INSTRUCTIONS_WITH_LOWER[combo][self.current_direction.lower()]
+ [0] * NB_FRAME_WAIT # 每按键后等待1帧
]
self.next_steps.extend(next_buttons)
VisionRobot:直接将游戏截图发给多模态大模型(如 GPT-4o-vision、Pixtral),让模型基于视觉输入做出反应。这种模式更接近人类玩家的感知方式,考验的是模型的视觉理解和实时推理能力。
项目以 LlamaIndex 作为 LLM 调用的核心抽象层,支持以下服务提供商:
| 提供商 | 模型示例 | 调用方式 |
|---|---|---|
| OpenAI | gpt-4o, gpt-4o-mini | llama-index-llms-openai |
| Anthropic | claude-3-haiku, claude-3-sonnet | llama-index-llms-anthropic |
| Mistral | mistral-large, pixtral | llama-index-llms-mistralai |
| Groq | gemma-7b-it | llama-index-llms-groq |
| Ollama | mistral(本地) | llama-index-llms-ollama |
| Cerebras | llama3.1-8b/70b | llama-index-llms-cerebras |
| Together.ai | Llama-3.2-90B-Vision | OpenAI-compatible API |
agent/llm.py 中的 get_client() 和 get_client_multimodal() 函数负责根据模型字符串前缀(如 openai:gpt-4o)动态路由到对应 provider,非常适合进行多模型横向对比实验。
项目通过大量对战(目前已进行 546 场)积累数据,使用 ELO 评分系统对各模型进行排名。部分结果如下:
| 排名 | 模型 | ELO 评分 |
|---|---|---|
| 🥇 | openai:gpt-4o:text | 1912.5 |
| 🥈 | openai:gpt-4o-mini:vision | 1835.3 |
| 🥉 | openai:gpt-4o-mini:text | 1670.9 |
| 4 | openai:gpt-4o:vision | 1656.9 |
| 5 | mistral:pixtral-large-latest:vision | 1654.6 |
| 11 | anthropic:claude-3-haiku-20240307:text | 1333.6 |
| 14 | anthropic:claude-3-sonnet-20240229:text | 1029.3 |
值得注意的是,Claude 3 Sonnet 因频繁拒绝和 API 延迟较高排名靠后——这揭示了 实时性要求与 内容安全策略之间的矛盾,也说明了不同模型在特定评测维度上的取舍差异。
项目提供两条部署路径:
Docker 部署(推荐):
docker build -t diambra-app .
docker run --name diambra-container -v ~/.diambra/roms:/app/roms diambra-app
docker-compose 方式:可一键启动包含 Ollama 本地模型的完整环境。
本地部署需手动完成:下载游戏 ROM → 安装依赖 → 配置 API Key → 运行 make local。
无论哪种方式,游戏 ROM 是必须的,这是部署的唯一门槛。
LLM Colosseum 代表了 LLM 评测从"静态问答"向"动态交互"演进的一个有趣方向。与 RL 模型不同,LLM 对环境有完整认知,能基于上下文做出有意图的决策——这个项目用最直观的方式呈现了这一点。
它也让我们思考:在真实时间压力下,模型的"思考"能力与"反应"速度之间如何权衡? 这个问题对 Agent 系统、游戏 AI、实时助手等场景都有直接的参考价值。
项目主页:https://llm-colosseum.phospho.ai
在线体验:https://llm-colosseum.phospho.ai
排行榜:https://huggingface.co/spaces/junior-labs/llm-colosseum
仓库:https://github.com/OpenGenerativeAI/llm-colosseum
许可证:MIT
主要语言:Jupyter Notebook
Stars:1483 | Forks:180
主题标签:benchmark, genai, llm, streetfighterai