当前位置: 首页 > news >正文

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

丰色 发自 凹非寺
量子位 | 公众号 QbitAI

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

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

23888fcac0edcee9f879881a23b012f5.png

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

c1a843e2c81a6bf9e26d5b4f0759425e.png

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

193d20f4b62255b2e21b6b79e87ac580.png

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

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

比如障碍物少一点的:

53e85489700481bf3a7b98eaca586d5b.png

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

8d586a8b11f942f5dfd20162380e9369.png

……

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

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

大语言模型又立功了~

用GPT2生成马里奥关卡

该项目背后的模型名叫MarioGPT

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

548a15a175935c3283444bba4df67b56.png

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

具体原理如下图所示:

c540a78995a11b8cd691e389579829e5.png

和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”

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

5ce21ec48360607d2b2f433cbf4ae6d7.png

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

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

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

16724cdff74fdd027124bdc3857194a4.png

(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

http://www.xdnf.cn/news/839683.html

相关文章:

  • 155款安卓开源项目源码整理,总有你要找的(精心收集)
  • Android界面特效全汇总
  • 2014中秋节,用java为QQ游戏美女找茬写辅助
  • 十万字数据库笔记
  • 清华大学计算机系网络教学视频31门计算机课程
  • Mediacoder基本教程
  • 查询IP地址
  • 分析:打折网站觊觎传统行业蛋糕
  • WinSCP和PuTTY在刷openwrt固件的使用教程
  • 终端不能联网_品牌维护森算云告诉你:大智慧舆情终端有什么作用
  • VSFTP介绍安装使用
  • Python爬虫实战五之模拟登录淘宝并获取所有订单
  • 【嵌入式开发】树莓派支持硬编码的视频套件
  • 2020年生肖码表图_2020年最好的计时码表,是这4款
  • 爬虫学习(一)---爬取电影天堂下载链接
  • 深度学习openpose人体姿态检测识别-动作检测
  • 从Idea到付诸实践,你必须要知道的
  • 国内主流视频分享网站主页对比
  • 饭统网倒闭:不创新、不放权就是作死
  • 物联网RTOS新贵-TencentOS tiny入门
  • 当我们谈「以消费者为中心」时,实际上在谈什么?| 消费者数字化运营从0到1
  • pubg绝地求生大厅发生了错误/显示与主机失去连接一键解决
  • 从零开始训练一个大模型教程
  • camera isp(Image Signal Processor)
  • ESET NOD32 最新更新有效的升级ID用户名和密码
  • [Python]输入星座名查询对应Unicode编码图案
  • spring boot应用内部实现应用自身重启的两种方式
  • 常见海报的尺寸
  • Unity--向量点乘叉乘在Unity中的使用
  • 天玑1100和天玑920处理器哪个好