熱門資訊> 正文
2025-10-29 17:15
Minecraft可以説是近十年玩家數量最多的遊戲之一,發售快15年了,月活躍玩家仍有1.5億之多,大人小孩都喜歡。
在Minecraft的像素方塊世界里,你能砍樹挖礦,打造神裝,搭建基地,也能養馬養雞,探索世界,體驗冒險人生。
這樣的開放世界遊戲很多,但像Minecraft這麼開放的沒多少。當我還在地下深處的礦洞和綠皮殭屍激情肉搏時,博主Sammyuri已經在遊戲里造出了一個能運行的簡化版 ChatGPT,他將其稱為CraftGPT。
CraftGPT全貌
在遊戲里,CraftGPT的交互界面是一個顯示器和一個鍵盤,玩家用鍵盤輸入文字,CraftGPT通過顯示器回覆。
CraftGPT正在和你閒聊
事情是這樣的:Sammyuri團隊在外部訓練好了模型,把神經網絡的計算圖翻譯成紅石電路,使用了4.39億個方塊,把五百萬參數的模型的各個成分導入了Minecraft中,直接用紅石電路硬編碼了神經網絡。
在遊戲里追求真實本來就有點問題,在遊戲里搭建一個AI更是有套娃一樣的詭異效果。
實現這個效果就好像把大象關進冰箱——在Minecraft中搭建大模型AI只需要四步。
1:在外部訓練好數據集;
2:把訓練好的數據編譯成紅石電路,導入Minecraft;
3:把紅石電路層層堆疊,組成神經網絡;
4:最后搭建輸入鍵盤以及輸出的屏幕,愉快地開始與大模型聊天。
第一步是大模型數據集的訓練。
雖然叫做CraftGPT,但這個模型和ChatGPT關係不大,是Sammyuri從0搭建起來的。他用Python訓練了一個參數為500萬的小模型,可以識別1920個詞、維度為240、6層、5頭。
一個參數可以看作是一種詞與詞之間的聯繫,參數越多,模型對語言的理解就越細緻,而維度、層數、頭數代表着模型思考的深度,數字越大,模型思考的深度就越深。
在今天已經沒人瞧得上的元祖GPT-1,都有着1.17 億的參數,可以識別5萬多個詞、有着768個維度、12層和12頭。並不是作者不想整個大活,Minecraft中的「模擬計算機」的計算速度遠比不上真實電腦,爲了在Minecraft中運行后,還能在有生之年看到結果,這個模型不得不經過相當的瘦身。
右下角的藍色曲線——訓練損失(train loss)代表了模型對訓練集的學習效果,而橙色曲線——驗證損失(val loss)代表了模型在驗證集上對新句子的表現。如果只有藍色下降,橙色不變甚至升高,説明模型學傻了,只能死記硬背教材內容,出現了過擬合;但如果這兩個同時下降,説明模型學得不錯,不僅記住了知識,還對未知文本具備了理解力。
訓練階段的CraftGPT
當這兩條曲線都下降到穩定水平后,研究者會再拿出最后一部分從未使用過的測試集進行檢驗。不過,CraftGPT 在測試集上的表現,Sammyuri 團隊並未公開提及。
第二步就是逐步將訓練好的神經網絡大模型搬進Minecraft里。爲了在Minecraft中能讓AI跑起來,Sammyuri使用了遊戲中一種叫做紅石電路的玩意。
紅石是Minecraft里的礦物,可以理解為一種兼具了導體和移動電源功能的資源,在紅石之外還有不少配套的組件,比如開關、按鈕、壓力板等。
通過開關的通斷,紅石電路可以在遊戲中模擬二進制的0或1,從而構建出基礎的三種邏輯門。
紅石電路中的非門、或門、與門 | 嗶哩嗶哩 @yhDAF
三種門是所有計算機的基礎,有了它們,任何邏輯關係都能被實現。不過這只是開端,想要做出更厲害的東西,玩家們還需要像樂高一樣堆疊出能存儲、計算、傳輸的複雜結構。
在Python中訓練完成的大模型仍然是一組組抽象的數字,如何在方塊世界中賦予它們形狀呢?
第二步中,這些訓練出來的數字就要被編譯成紅石電路。在編譯過程中,每個參數的數值會被轉換成紅石信號的強弱,而參數在模型中的位置則決定了方塊的擺放位置和連線方式。就這樣,500萬個參數都會變成Minecraft中的方塊組合。
CraftGPT宏大的結構,模擬了大模型的功能
當數據全部完成了方塊化,第三步神經網絡的搭建就要開始了。Sammyuri團隊選擇與ChatGPT相同的transformer架構,這種架構會通過橫向聯想和縱向聯想,讓模型既能理解上下文,又語義豐富。最后,爲了讓語義關係更穩固,在輸出前,縱橫聯想會重複六輪,逐層深化。
最后,搭建完鍵盤與屏幕,CraftGPT的效果就可以展現在我們眼前了。
雖然因為詞匯量有限讓孩子有點車軲轆話,但CraftGPT也有着自我認知
CraftGPT的完成度相當高。
雖然它的詞匯量和生成的句子長度有限,但它依然能進行簡單的對話,回答基礎的事實問題。更有趣的是,由於遊戲中的seed(在世界生成時產生的一種隨機參數)不同,它給出的回答也會隨之變化,這讓CraftGPT的輸出帶有一定的隨機性和多樣性,而不是每次都一模一樣。
雖然簡單,但每次CraftGPT提供的户外活動建議都略有不同
不過,它的運行效率極低。因為紅石信號傳播的距離有限——只能傳播15個遊戲方格的長度,15格后就需要中繼器來延長信號。問題就在這里,通過中繼器雖然會給信號再次續命15格,但是會產生0.1秒的延迟。一個複雜的計算模塊可能包含成千上萬箇中繼器,這意味着一次運算要等待幾分鍾才能完成。相對現實中接近光速的電子流動來説,紅石電路簡直是蝸牛蠕動。
即便在經過特別優化,速度超快的服務器上,生成一個回答也可能需要耗費數小時;如果換到普通電腦上運行,回答一次的時間甚至可能長達十年。畢竟這是一個由紅石電路堆出來的小模型,能運轉就足夠讓人驚歎了。
CraftGPT就像那位試圖徒步環球的探險家卡爾·布什比(Karl Bushby),從智利出發,歷盡艱難險阻,花了整整27年纔在今年5月重新踏上歐洲大陸,就算加快腳步,坐上飛機繞地球赤道一圈,也需要約 42 小時。至於真正的計算機,它們的速度更像0.134 秒就能繞地球一圈的光。
CraftGPT項目的核心——紅石電路誕生於2010年的Minecraft Alpha 1.0.1版本。
在一款冒險遊戲里,紅石原本應該是什麼角色呢?
一個2010年的攻略貼展示了當時最流行的紅石用法:踩下踏板就會開的自動門、TNT地雷陷阱等,用來讓生活更方便,或者坑朋友。
紅石在遊戲里引發了第二次工業革命,很快,玩家們邁入了電氣自動化的新時代。他們製造出了可以檢測礦車經過的「自動地鐵站」,能自動收集農作物、殺怪收集掉落物品的自動化農場,還有轉動式燈塔、機關式雕塑等有趣又實用的建築。
這些用途是大多數玩家最早接觸紅石的起點。
當時的紅石農場,紅石實用派代表作之一
Minecraft的最初創造者Notch從一開始就知道紅石的潛力,他在一次訪談里提到,紅石系統使得Minecraft具備了圖靈完備性,也就是説,在Minecraft中只要有足夠多的時間和儲存,玩家理論上就能在遊戲中計算出任何可計算的東西。
早在紅石剛推出的2010年,就有人跟隨着《計算機系統要素》的指導,試圖在Minecraft中模擬簡單的計算機。從機關陷阱到邏輯電路,再到 CPU 雛形,紅石的發展軌跡也從單純的遊戲機關,走歪出了一個「吃力不討好」的模擬計算機之路。
當時簡陋的計算機結構
在社區中,玩家們開始交流設計工具,優化紅石電路的經驗,大大推動了技術的發展,加上隨着遊戲版本更新,更多好用方便的紅石組件加入了遊戲,大型計算機項目的實現成爲了可能。
Minecraft項目的成型,就像原始人手搓噴氣機,從鍊鐵開始。
紅石電路只提供了表現0和1的信號的功能,也就是開關的閉合與開啟,更加進階的邏輯門、寄存器、時鍾電路則需要玩家自己搭建,讓信號能計算、存儲並循環。而上述結構只有繼續堆疊成更加複雜的部件,纔可以組成完整的系統。可以説,這其中每一步都必須從項目底層的計算邏輯以及原理出發,逐個組件拼接,可以説是費工又費力。
不過,就是有這麼一些團隊痴迷於手搓一切,做出讓人驚艷的傑作。
WildEngineering手搓過GPU;MattBatWings 做出了8-bit 可編程計算機;而Craftgpt的創造者Sammyuri更進一步,做出過16 bit電腦,在那上面可以運行多種程序,甚至還能終極套娃,在Minecraft里玩Minecraft。
看着他們的作品,彷彿是在上計算機組成原理。
WildEngineering的GPU,運算速度達到了驚人的5Hz(每秒計算五次),雖然現代GPU的運算次數以萬億次/秒計
中國也有不少紅石電路高手。
2022年,up主辰佔鰲頭就早於Sammyuri,把神經網絡搬進過Minecraft,並實現了堪稱機器學習屆「Hello World」的手寫數字識別。除此之外,他還實現過漢字編碼全像素顯示屏,把中國特色創意發揮到了極致。
辰佔鰲頭的漢字編碼全像素顯示屏
有意義嗎?這是技術成為藝術的一刻
雖然這些紅石作品在實用性上幾乎沒有意義,遠不如現成的計算機高效,但他們展現出的好奇和探索,也是人類文明繁榮的源頭所在。
手搓電腦不是爲了造出一臺真正能使用的機器,只爲了證明:即便是在像素方塊的虛擬世界中,也可以從0起步,堆出複雜的邏輯和計算。
這也是工程師的浪漫精神所在,拼接簡單的開與關、0和1,直到成為讓人直呼「漂亮」的精妙工程。這是一種浪漫,是對我們為什麼要鑽研技術的一種藝術性的回答。
參考文獻
[1]https://www.youtube.com/watch?v=VaeI9YgE1o8
3年手搓ChatGPT!劍橋天才少年在Minecraft遊戲中爆火迴歸[2]https://mp.weixin.qq.com/s/fmgsWl-HNBlRo9O7V-gg1Q
[3]https://Minecraft.fandom.com/wiki/
[4]https://gaming.stackexchange.com/questions/7852/what-is-redstone-used-for-in-Minecraft
[5]https://www.youtube.com/watch?v=LGkkyKZVzug
[6]https://www.bilibili.com/video/BV1wP4y1s7jy/
[7]https://www.bilibili.com/video/BV1JzNUeuEg2/
本文來自微信公眾號 「果殼」(ID:Guokr42),作者:李小雅,36氪經授權發佈。