AI热点 4 hours ago 197 Views 0 Comments

用4.39亿方块在《我的世界》手搓一款ChatGPT?玩家又一次“整活”,还把游戏玩出了新高度

CSDN
CSDN

Published 174 Articles

在《我的世界》里搭建一个虚拟的“世界”,然后待在里面玩 GPT,这可行吗?

别眨眼,总之已经有人真的这么干了,而且构建起来的排面还颇为惊人!

最近,一位网友在社交媒体 X 上分享了自己的震惊感受:“这对我来说简直震撼到不行。有人居然在 Minecraft 里建了一个 500 万参数的语言模型,还训练好了,让它具备基本的对话能力。说实话,这是我这个月看到的最牛的东西了。”

虚拟“世界”长这样,左下角显示的 CraftGPT 就是这名牛人创造的 GPT 项目,另外他还搭配了虚拟键盘,方便与这个 GPT 进行对话:

那么,在方块世界里运行 AI 模型,他究竟是怎么做到的?我们不妨一起看看!

4.39 亿个方块,在《我的世界》里造了一款 GPT

这名开发者名为 Sammyuri,他花了数月的时间,经过大量的规划和投入,才完成了在《Minecraft》中运行的小型语言模型 CraftGPT 以及支撑它的世界。

据 Sammyuri 介绍,起初他只是在 ChatGPT 提了一个问题:“能在《Minecraft》中构建一个你吗?”

然后就有了后续的 CraftGPT。

他在发布的视频中表示:“从技术上讲,它算是一个‘小型语言模型’,因为它只有 500 万个参数,这大概是我那台可怜的老笔记本电脑能处理的极限了。不过,从物理尺寸上来说,它绝对是巨大的。”

据悉,整个项目在游戏里占地面积惊人——长 1020 方块 × 高 260 方块 × 宽 1656 方块,总共差不多用了 4.39 亿个方块。

这台运行着小模型的“巨型电脑”内部如下所示:

CraftGPT 的内部构造非常复杂,包括各种核心组件:

  • 分词器(Tokenizer)
  • 位置嵌入(Positional embedding)
  • 词元嵌入(Token embedding)
  • 层归一化(LayerNorm)
  • 240×240 矩阵乘法器(4 个)
  • 多头注意力机制(Multi-headed attention)
  • 键值缓存(KV cache)
  • 960×240 矩阵乘法器
  • 修正线性单元(ReLU)
  • 240×960 矩阵乘法器
  • 以及第二层到第六层的循环处理
  • 解嵌入矩阵乘法器(Unembedding matrix multiplier)
  • 下一词元选择(Next token selection)
  • 输出词元(Token output)等等。

那他到底是怎么做到的?

一切的关键就在于《Minecraft》里的红石。

在《我的世界》游戏中,红石电路就像电子元件,可以模拟真实世界的电路和逻辑系统。玩家可以用红石粉、红石火把、活塞、按钮、拉杆等道具搭建开关、计时器、门禁系统,甚至更复杂的计算装置。

简单来说,红石电路让方块世界里的物体能够“动起来”,可以传递信号、触发动作,进行加减运算和逻辑判断,所以它常被玩家用来建造自动化机器、迷宫机关,甚至像这次 CraftGPT 这样复杂的计算模型。

上面提到的分词器、矩阵乘法器等组件,全部都是靠红石搭建出来的。Sammyuri 还特别说明,这套系统完全没有使用命令方块或数据包。

模型本身有 5,087,280 个参数,用 Python 在 TinyChat 数据集上训练,内容都是一些基础英语对话。

对于 AI 爱好者来说,CraftGPT 的技术细节也非常有趣:它的 embedding 维度为 240,词汇表大小为 1920 个 token,总共由 6 层组成。

为了节省计算资源,Sammyuri 补充道,大部分权重被量化为 8 位,不过 embedding 和 LayerNorm 的权重分别保留了 18 位和 24 位的精度。

Sammyuri 还把 CraftGPT 核心给开源出来了:https://github.com/sammyuri/craftgpt

弊端:一次对话的回复,等待时长太久了

当然啦,即使这台红石工程再厉害,也不可能真的取代你电脑上那些运行飞快的大语言模型。

Sammyuri 在 GitHub 页面上也提醒大家:在尝试运行 CraftGPT 之前,别抱太高期望。这个模型容易跑题,生成的语法可能乱七八糟,有时候甚至会直接输出一堆没用的内容。而且它的上下文窗口非常小——只有 64 个 token,也就是说只能处理非常短的对话。

视频里的演示效果是模型表现最好的情况,并不代表它平时的平均水平。

它确实可以用,但最大的问题是……你得等上好几个小时,它才能回你一句话。Sammyuri 称,这套系统哪怕只是回答一个很简单的问题,也可能需要两个小时才能完成。而要在合理时间内运行 CraftGPT,MCHPRS(Minecraft 高性能红石服务器) 是必不可少的。

毕竟 CraftGPT 是用原版红石机制搭建的,理论上在原版 Minecraft 中也能运行,但如果不提高 tick 速率,生成一次回复可能要 10 年以上!所以,如果你不想等那么久,就必须先按照说明安装 MCHPRS。

即便使用了 MCHPRS,生成一次回复仍可能需要几个小时。因此,Sammyuri 建议玩家先在模拟器里测试自己的输入,也可以尝试不同的随机种子,以便更高效地查看模型的输出。

如何运行 CraftGPT

对于想要试玩的爱好者,Sammyuri 也在 GitHub 项目页面中提供了完整的安装过程以及前提条件说明:

  • 你至少需要一台 32GB 内存的电脑才能加载服务器,但最好是 64GB 或更多。
  • 下载 MCHPRS,把 plot scale 设置为 7(位置在 ./crates/core/src/plot/mod.rs),然后编译。
  • 下载 MCHPRS 的世界文件,解压到 ./target/release,并重命名为 world。
  • 登录 MCHPRS(版本 1.20.4),输入命令 /rp c -io。

其中 -io 参数会启用优化编译,并防止向玩家发送非输入/输出方块更新。

如果不加这些参数,也能运行,但会明显慢很多。

在作者的机器上,编译大约需要 10 分钟。

  • 输入命令 /rtps unlimited 和 /wsr 1。
  • 默认的随机种子(RNG seed)是 1。如果想用其他种子,可以在坐标 230, 150, 1000 输入二进制数,然后按按钮确认。
  • 输入你的 prompt(提问或指令),按回车键。然后等几个小时,让模型生成回复。

进度条显示当前 token 的生成进度。

二进制计数器显示已经处理的 token 数量。

完成后,可以输入新的 prompt。

  • 没有重置或退格按钮。如果想重置,最快的方法是重新加载世界存档。不过也可以手动重置:按屏幕后面的按钮,操作所有注意力方块 token 计数器,然后清空输入缓冲区。

《我的世界》的创意天花板又被刷新

很多网友在亲眼见证了 CraftGPT 项目之后,虽然觉得太离谱,但也不得不承认,这也颇为有趣了。

《我的世界》里的限制只有人类的创意而已。其实在 CraftGPT 之前,Minecraft 里已经出现过不少让人震惊的红石作品,比如能够独立运行的 16 位 CPU,以及那台能在游戏里运行 1993 年版《毁灭战士(DOOM)》的 IRIS 电脑。

此外,还有玩家在 Minecraft 中构建完整的 CNN,这还是去年的事。

更早之前,有人在 Minecraft 里搭建 CPU:

还有一个用红石实现神经网络的项目:

甚至有人提出在游戏里实现互联网的想法——你可以用命令方块传输输入输出,再用脚本处理实际计算。

对于 CraftGPT 的作者 Sammyuri 来说,他曾在游戏里用红石搭建过一台“1Hz CPU”。而 CraftGPT,无疑又把“玩家造疯了”的天花板往上抬了一截。

网友们也纷纷表达了惊叹:

  • @myrmatta1:给好奇的朋友们参考一下,CraftGPT 比 GPT-1 小大约 23 倍,甚至比 GPT-3 小 175,000 倍!至少在参数数量上是这样的。
  • @luna1534:光是搭建 4 兆字节的内存本身就已经够疯狂了,但他还用这 4 兆字节去创造出一个能运行的 AI,这个 AI 的能力远超 10 年前开发的同类系统。这不仅是《Minecraft》里最令人惊叹的壮举之一,也是在计算机领域真正令人佩服的成就。

来源:

https://www.youtube.com/watch?v=VaeI9YgE1o8

https://www.pcgamer.com/software/ai/the-gamers-have-done-it-again-this-time-building-a-functional-chatgpt-in-minecraft-but-before-you-get-too-excited-it-takes-literally-hours-to-provide-a-response/

https://x.com/tokenbender/status/1972670561689165906

本文来自微信公众号“CSDN”,作者:屠敏,36氪经授权发布。

CSDN

CSDN

174 Articles 25373 Views 0 Fans

Comment (0)

睡觉动画