GPT版超级马里奥来了!输进文本即可自定义游戏关卡 | GitHub标星500+
丰色 发自 凹非寺
量子位 | 公众号 QbitAI
用 文字生成 游戏关卡自己玩是一种什么样的体验?
GitHub今日热榜项目 《GPT版马里奥》了解一下~
瞧,你只需在文本框中输进“多点管道,多点敌人,少点阻碍物,elevation低点”:
点击“Generate level”,就能获得自己的马里奥游戏了:
左边是玩耍区,按方向键和a、s、d键进行掌握就能直接玩,右边则是依据你的要求生成的整体效果图。
随意设置这几个选项,还能解锁更多样式。
比如阻碍物少一点的:
展开全文
又或者是管道少一点、阻碍物多一点的:
这一波,简直童年回忆拉满,妈妈再也不用担心我无聊了
不得不提的是,以上你看到的这些效果,都是基于 GPT-2完成的——
大语言模型又立功了~
用GPT2生成马里奥关卡
该项目背后的模型名喊 MarioGPT。
它是 首个基于文本生成游戏关卡 (text2level)的模型,在GPT2 (distilgpt2)上微调而成,作者来自哥本哈根信息技术大学。
其练习素材包括《超级马里奥兄弟》和《超级马里奥兄弟:失落的关卡》,由视频游戏关卡语料库提供。
具体原理如下图所示:
和GPT2一样,MarioGPT能够对下一个token序列进行推测。
其中的关卡被表达为字符串,它会经过一个字节对编码器 (Byte-Pair Encoding)进行tokenize。
关卡是被按列进行分解的,并展平为单个向量 (或者是多个关卡组成一批向量)。
为了将用户输进的信息进行合并,作者给MarioGPT安顿了一个冻结文本编码器,它以预练习的双向LLM (BART)形式出现。
与此同时,在这里输出模型前向传播的平均隐躲状态 (hidden state)。
最后,将输出的状态用于GPT2架构的交叉注重力层,并与传递到模型中的实际关卡序列进行结合就可以了。
对于MarioGPT的效果,作者则表达 很惊诧,因为它最终生成的结果中,有 88%都是可以用来实际进行闯关的。
怎么玩?
由于MarioGPT已经开源,大家也可以自己下载体验一把。
确保电脑安装了3.8+版本的python后,使用pip命令或者git一下:
“pip install mario-gpt” 或 “git clone git@github.com:shyamsn97/mario-gpt.git python setup.py install”
生成关卡最少只需要下面这些代码:
作者在项目中也提供了更深进的教程。
要想自己上手试一试生成的关卡,可以:
(1)往Huggingface上的demo上玩。它甚至可以不用你输进文本,直接在每个元素上抉择“多”或者“少”等选项生成任意关卡。
(2)通过代码掌握:使用play和astar函数,前提是你电脑安装了Java 8+。
感兴致的朋友快往试试吧~目前MarioGPT已经有超过500+人标星了。
论文地址:
项目地址:
HF试玩地址:
— 完—
《中国AIGC产业全景报告暨AIGC 50》调研启动
谁会是中国的“ChatGPT”?最有竞争力和潜力的AIGC力量位于何方?
量子位《中国AIGC产业全景报暨AIGC 50》正式启动对外征集,期待有更多优异的机构、产品、案例与技术能够被大众看到。
点这里 👇关注我,记得标星哦~
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~
我来回答