当前位置: 首页 > 科技观察

超级马里奥的GPT版本来了!输入文字自定义游戏关卡-GitHubstar500+

时间:2023-03-22 11:53:33 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。用文字生成游戏关卡自己玩是一种怎样的体验?GitHub今日热榜项目《GPT版马里奥》一起来看看吧~你只需要在文本框中输入“管道多,敌人多,障碍物少,海拔低”:点击“生成关卡”,就可以得到自己的马里奥游戏:左边是播放区,可以直接按方向键和a、s、d键控制播放,右边是根据你的要求生成的整体效果图。随意设置这几个选项以解锁更多样式。比如障碍物少的那个:或者管子少障碍物多的那个:……这一波充满了童年的回忆,妈妈再也不用担心我无聊了。不得不提的是,上面大家看到的这些效果,都是基于GPT-2——大语言模型又立功了~利用GPT2生成马里奥关卡这个项目背后的模型叫做MarioGPT。它是第一个基于文本生成游戏关卡(text2level)的模型,在GPT2(distilgpt2)上进行了微调,作者来自哥本哈根信息技术大学。它的训练材料包括《超级马里奥兄弟》和《超级马里奥兄弟:失落的关卡》,由视频游戏关卡语料库提供。具体原理如下图所示:和GPT2一样,MarioGPT可以预测下一个token序列。其中的level表示为一个字符串,会通过一个字节对编码器(Byte-PairEncoding)进行token化。级别按列分解并展平为单个向量(或多个级别为一批向量)。为了合并用户输入的信息,作者为MarioGPT安排了一个冻结文本编码器,它以预训练的双向LLM(BART)的形式出现。同时这里输出模型前向传播的平均隐藏状态(hiddenstate)。最后,将输出状态馈送到GPT2架构的交叉注意力层,并将其与传递到模型中的实际级别序列结合起来就足够了。对于MarioGPT的效果,笔者表示很惊讶,因为它最终产生的结果中有88%可以用来真正突破关卡。怎么玩?由于MarioGPT已经开源,大家也可以自行下载体验。确保电脑已安装python3.8+版本后,使用pip命令或git:“pipinstallmario-gpt”或“gitclonegit@github.com:shyamsn97/mario-gpt.git>pythonsetup.pyinstall”生成关卡至少需要以下代码:作者在项目中也提供了比较深入的教程。如果你想自己尝试生成的关卡,你可以:(1)到Huggingface上的demo上玩。它甚至可以通过在每个元素上选择“更多”或“更少”等选项来生成任意级别,而无需您输入文本。(2)代码控制:使用play和astar功能,前提是你的电脑安装了Java8+。有兴趣的朋友快去试试吧~目前MarioGPT已经有超过500+的star。论文地址:https://arxiv.org/abs/2302.05981项目地址:https://github.com/shyamsn97/mario-gptHFdemo地址:https://huggingface.co/spaces/multimodalart/mariogpt