From Code to Play: Benchmarking Program Search for Games Using Large Language Models
作者: Manuel Eberhardinger, James Goodman, Alexander Dockhorn, Diego Perez-Liebana, Raluca D. Gaina, Duygu Çakmak, Setareh Maghsudi, Simon Lucas
分类: cs.AI
发布日期: 2024-12-05 (更新: 2025-07-15)
备注: Submitted to Transactions on Games Special Issue on Large Language Models and Games, standardised LLMs used and run more experiments
💡 一句话要点
利用大型语言模型进行游戏程序搜索的基准测试研究
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 程序搜索 游戏AI 代码生成 进化算法
📋 核心要点
- 现有方法难以直接利用LLM生成高质量游戏代码,缺乏系统性的评估框架。
- 利用LLM驱动的进化爬山算法,通过LLM控制变异和种子,搜索高质量游戏代码。
- 在29个游戏任务上评估了多个LLM,发现模型性能受任务影响大于模型大小,且多模型策略更优。
📝 摘要(中文)
本文探讨了大型语言模型(LLMs)在游戏应用中直接合成可用代码的潜力,重点关注Python和Java两种编程语言。研究采用进化爬山算法,其中初始程序的变异和种子由LLMs控制。对于Python,框架涵盖了各种游戏相关任务,包括五个Atari游戏的微型版本、Baba is You的十个关卡、一个受Asteroids启发的环境和一个迷宫生成任务。对于Java,框架包含来自TAG桌面游戏框架的12个游戏。在29个任务中,评估了12个Python语言模型和8个Java语言模型。研究结果表明,LLMs的性能更多地取决于任务本身,而不是模型大小。虽然较大的模型生成更多可执行的程序,但这些程序并不总是产生更高质量的解决方案,而且成本更高。没有哪个模型具有明显的优势,尽管在任何特定任务上,一个模型可能更好。在问题上尝试多个模型并使用其中最好的结果比仅使用一个模型更可靠。
🔬 方法详解
问题定义:论文旨在解决如何利用大型语言模型(LLMs)自动生成游戏代码的问题。现有方法在游戏代码生成方面存在挑战,例如生成的代码质量不高、难以适应不同类型的游戏任务、缺乏统一的评估标准等。因此,需要一种能够有效利用LLMs能力,并能针对不同游戏任务进行评估的程序搜索方法。
核心思路:论文的核心思路是利用LLMs作为进化爬山算法的驱动力,通过LLMs控制初始程序的生成和变异,从而在游戏代码空间中进行高效搜索。这种方法结合了LLMs的代码生成能力和进化算法的搜索能力,旨在找到能够解决特定游戏任务的高质量代码。
技术框架:整体框架包括以下几个主要阶段:1) 初始化:使用LLM生成初始程序种子。2) 变异:使用LLM对现有程序进行变异,生成新的候选程序。3) 评估:运行候选程序,并根据其在游戏任务中的表现进行评估。4) 选择:选择表现最好的候选程序作为下一轮迭代的种子。重复变异、评估和选择过程,直到达到预定的停止条件。该框架分别针对Python和Java两种编程语言进行了实现,并应用于不同的游戏任务。
关键创新:论文的关键创新在于将LLMs与进化爬山算法相结合,利用LLMs的代码生成能力来指导程序搜索过程。与传统的进化算法相比,这种方法能够更有效地探索代码空间,并生成更高质量的游戏代码。此外,论文还构建了一个包含多种游戏任务的基准测试框架,为评估LLMs在游戏代码生成方面的性能提供了统一的标准。
关键设计:在算法设计方面,论文使用了温度系数来控制LLM生成代码的多样性。较高的温度系数会生成更多样化的代码,但可能降低代码的质量;较低的温度系数会生成更保守的代码,但可能限制搜索空间。论文还设计了不同的变异策略,例如代码插入、代码删除和代码替换等,以探索不同的代码变异方式。在评估方面,论文使用了游戏任务的特定指标来评估生成代码的性能,例如游戏得分、通关率等。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LLMs在游戏代码生成方面具有一定的潜力,但其性能受任务影响较大。虽然较大的模型生成更多可执行的程序,但并不总是产生更高质量的解决方案。在多个模型中选择最佳结果比仅使用一个模型更可靠。例如,在某些任务上,特定的LLM能够生成接近人类水平的游戏代码。
🎯 应用场景
该研究成果可应用于游戏AI开发、游戏自动化测试、游戏内容生成等领域。通过自动生成游戏代码,可以降低游戏开发的成本和时间,提高游戏开发的效率。此外,该研究还可以促进LLMs在游戏领域的应用,为游戏AI的智能化发展提供新的思路。
📄 摘要(原文)
Large language models (LLMs) have shown impressive capabilities in generating program code, opening exciting opportunities for applying program synthesis to games. In this work, we explore the potential of LLMs to directly synthesize usable code for a wide range of gaming applications, focusing on two programming languages, Python and Java. We use an evolutionary hill-climbing algorithm, where the mutations and seeds of the initial programs are controlled by LLMs. For Python, the framework covers various game-related tasks, including five miniature versions of Atari games, ten levels of Baba is You, an environment inspired by Asteroids, and a maze generation task. For Java, the framework contains 12 games from the TAG tabletop games framework. Across 29 tasks, we evaluated 12 language models for Python and 8 for Java. Our findings suggest that the performance of LLMs depends more on the task than on model size. While larger models generate more executable programs, these do not always result in higher-quality solutions but are much more expensive. No model has a clear advantage, although on any specific task, one model may be better. Trying many models on a problem and using the best results across them is more reliable than using just one.