2

GPT版超级马里奥来了!输入文本即可自定义游戏关卡 | GitHub标星500+

 1 year ago
source link: https://www.qbitai.com/2023/02/42209.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

GPT版超级马里奥来了!输入文本即可自定义游戏关卡 | GitHub标星500+

head.jpg丰色 2023-02-20 14:45:00 来源:量子位

来了来了,AIGC进军游戏行业

丰色 发自 凹非寺

量子位 | 公众号 QbitAI

文字生成游戏关卡自己玩是一种什么样的体验?

GitHub今日热榜项目《GPT版马里奥》了解一下~

b82e246a9bd6400f859430584e4616f4~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=HuQggVZNMhGhaqx1tCr5YqSt41A%3D

瞧,你只需在文本框中输入“多点管道,多点敌人,少点障碍物,elevation低点”:

ce530bfe089b4762a00d57907c9fe0d3~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=wWUDOzYtfwAEt969u1LwdzQzUIQ%3D

点击“Generate level”,就能获得自己的马里奥游戏了:

309c891f8f7c468c9e2648683d468600~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=%2B7Yx2uAr7SSkM116JSrojtwNNGY%3D

左边是玩耍区,按方向键和a、s、d键进行控制就能直接玩,右边则是根据你的要求生成的整体效果图。

随意设置这几个选项,还能解锁更多样式。

比如障碍物少一点的:

a91a4f035e174ba4948bc2beb9155415~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=VqEZLC8rLCPpuIb3u5V4xhBzyQw%3D

又或者是管道少一点、障碍物多一点的:

ce2a400e337c4b0ba4621e42be82875a~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=t5lum0%2BKdIifIAzUjGeZgfm4VZ8%3D

这一波,简直童年回忆拉满,妈妈再也不用担心我无聊了

不得不提的是,以上你看到的这些效果,都是基于GPT-2完成的——

大语言模型又立功了~

用GPT2生成马里奥关卡

该项目背后的模型名叫MarioGPT

它是首个基于文本生成游戏关卡(text2level)的模型,在GPT2(distilgpt2)上微调而成,作者来自哥本哈根信息技术大学。

7fd5caa95f2f48afb00dd49dd722ce93~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=QlDWIYESJ28qGul7kTzm8Jd3Iu4%3D

其训练素材包括《超级马里奥兄弟》和《超级马里奥兄弟:失落的关卡》,由视频游戏关卡语料库提供。

具体原理如下图所示:

cdd1aa5bfb2d4ec0a4a8cbd4c4ac08c8~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=z%2F7AXOg9mpnFFjqs4eN0K9xwYd0%3D

和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 [email protected]:shyamsn97/mario-gpt.git >python setup.py install”

生成关卡最少只需要下面这些代码:

5a72e8e3965c4c818e94c8ebf5a0dd37~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=cZIvAuc1a4wDXFc44Psll7J6eig%3D

作者在项目中也提供了更深入的教程。

要想自己上手试一试生成的关卡,可以:

(1)去Huggingface上的demo上玩。它甚至可以不用你输入文本,直接在每个元素上选择“多”或者“少”等选项生成任意关卡。

2355a01678f14a8699fbae8021ccf296~tplv-tt-shrink:640:0.image?traceid=20230220143611F0F54DB197CBD2DD79F7&x-expires=2147483647&x-signature=3CiKm9U1icqoy404FSTUVUwxlq8%3D

(2)通过代码控制:使用play和astar函数,前提是你电脑安装了Java 8+。

感兴趣的朋友快去试试吧~目前MarioGPT已经有超过500+人标星了。

论文地址:
https://arxiv.org/abs/2302.05981

项目地址:
https://github.com/shyamsn97/mario-gpt

HF试玩地址:

https://huggingface.co/spaces/multimodalart/mariogpt

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK