丰色发自凹非寺 量子位公众号QbitAI 用文字生成游戏关卡自己玩是一种什么样的体验? GitHub今日热榜项目《GPT版马里奥》了解一下 瞧,你只需在文本框中输入多点管道,多点敌人,少点障碍物,elevation低点: 点击Generatelevel,就能获得自己的马里奥游戏了: 左边是玩耍区,按方向键和a、s、d键进行控制就能直接玩,右边则是根据你的要求生成的整体效果图。 随意设置这几个选项,还能解锁更多样式。 比如障碍物少一点的: 又或者是管道少一点、障碍物多一点的: 这一波,简直童年回忆拉满,妈妈再也不用担心我无聊了〔狗头〕 不得不提的是,以上你看到的这些效果,都是基于GPT2完成的 大语言模型又立功了用GPT2生成马里奥关卡 该项目背后的模型名叫MarioGPT。 它是首个基于文本生成游戏关卡(text2level)的模型,在GPT2(distilgpt2)上微调而成,作者来自哥本哈根信息技术大学。 其训练素材包括《超级马里奥兄弟》和《超级马里奥兄弟:失落的关卡》,由视频游戏关卡语料库提供。 具体原理如下图所示: 和GPT2一样,MarioGPT能够对下一个token序列进行预测。 其中的关卡被表示为字符串,它会经过一个字节对编码器(BytePairEncoding)进行tokenize。 关卡是被按列进行分解的,并展平为单个向量(或者是多个关卡组成一批向量)。 为了将用户输入的信息进行合并,作者给MarioGPT安排了一个冻结文本编码器,它以预训练的双向LLM(BART)形式出现。 与此同时,在这里输出模型前向传播的平均隐藏状态(hiddenstate)。 最后,将输出的状态用于GPT2架构的交叉注意力层,并与传递到模型中的实际关卡序列进行结合就可以了。 对于MarioGPT的效果,作者则表示很惊讶,因为它最终生成的结果中,有88都是可以用来实际进行闯关的。怎么玩? 由于MarioGPT已经开源,大家也可以自己下载体验一把。 确保电脑安装了3。8版本的python后,使用pip命令或者git一下: pipinstallmariogpt或gitclonegitgithub。com:shyamsn97mariogpt。gitpythonsetup。pyinstall 生成关卡最少只需要下面这些代码: 作者在项目中也提供了更深入的教程。 要想自己上手试一试生成的关卡,可以: (1)去Huggingface上的demo上玩。它甚至可以不用你输入文本,直接在每个元素上选择多或者少等选项生成任意关卡。 (2)通过代码控制:使用play和astar函数,前提是你电脑安装了Java8。 感兴趣的朋友快去试试吧目前MarioGPT已经有超过500人标星了。 论文地址: https:arxiv。orgabs2302。05981 项目地址: https:github。comshyamsn97mariogpt HF试玩地址: https:huggingface。cospacesmultimodalartmariogpt 完 量子位QbitAI头条号签约 关注我们,第一时间获知前沿科技动态