誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

栗子 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

15億參數的終極版GPT-2,就是OpenAI那隻編故事成癮的AI,都能拿來做些什麼?

有人用它做了個文字冒險遊戲,並賜以優美的名字,叫“AI地牢 (AI Dungeon) ”。

大概是在說,你一旦進去就出不來了,裡面的故事太迷人。

現在,這座地牢進化出了2.0版本。有網友盛情安利,表示不可錯過,推特11小時已有1600贊:

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

一向看重情節的我,必然吃下了這顆安利,反正只要打開Colab就能玩。

有一說一,原本沒對GPT-2的邏輯能力抱有太多期待,結果真的有驚喜。

老年騎士屠龍之旅

開始運行之後,首先看到了搖搖欲墜的“AI Dungeon”兩個字,預示著我即將落入“地牢”。

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

那麼,AI會講一個怎樣的故事,來讓我難以自拔?

我在奇幻 (Fantasy) 、神秘 (Mystery) 、世界末日 (Apocalyptic) 和殭屍 (Zombies) 裡面,選擇了官方推薦的奇幻設定:

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

然後,在貴族騎士鄉紳巫師護林員農夫流氓這些角色裡,選中了騎士:

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

再給自己起個像樣的名字,故事就開始了:

You are xiaoming, a knight living in the kingdom of Larion. You have a steel longsword and a wooden shield. You are on a quest to defeat the evil dragon of Larion. You’ve heard he lives up at the north of the kingdom. You set on the path to defeat him and walk into a dark forest. As you enter the forest you see an old man sitting by a fire. He looks like he is about your age with white hair and beard.

你叫小明,是住在拉里昂王國的一位騎士,有一柄長長的鋼劍,還有一個木質的盾牌。你要打敗拉里昂的惡龍,聽說他就在王國的北部,你踏上了征程,走進一片森林。就在這時,你看到一個坐在篝火旁的老人。他看上去跟你年紀差不多,頭髮是白的,鬍子也是白的。

前面我都懂,但我怎麼是個老騎士,送外賣不用退休的麼?

既然年事已高,屠龍什麼的也太危險了,我企圖給自己找個臺階下:

ask the old man if the dragon is undefeatable.
問問這個老人,惡龍是不是不可戰勝的那種。

(遊戲規則是必須用祈使句,就是動詞開頭的句子,才能觸發動作,讓AI繼續編下去。)

可AI似乎能看出我的心思,切斷了我的念想:

“The dragon? No, not yet”. The old man says as he stands up from his chair. “I know where he lives. I just need some help finding it”.

“What do you mean?” You say.

“你說那條龍?不不不。”老人說著從椅子上站了起來,“我知道他在哪,只是需要有人幫忙找到他。”

“你這是什麼意思?”我說。

這麼說,非去不可了。

後來,我又從老人的講述裡得知,惡龍已在拉里昂盤踞了幾個世紀,想要近他的身,至少需要幾十年的修煉,而即便如此也未必打得過。原來是這樣,知道它在哪裡,只是不知道怎麼近身啊。

我又問老人,我能做點什麼,他說:

“Well, I’m looking for a certain book that has been lost for centuries. It’s called ‘The Book Of Dragons’. If you could find it, then we would be able to defeat the dragon”.

“我在找一本書,已經丟失了幾個世紀,叫《龍之書》。如果能找到的話,就可能打敗那條龍了。”

大概是說,幾十年等不及了,找本秘笈練練會快一點。

那我繼續問老人,那本書最後一次被發現是在哪裡,回答是:

It was found by an adventurer named Trelik back in the year 1289. He had it hidden away in a cave in the mountains near the city of Klyton. I’ve searched all over the area but haven’t found it yet.”

有個叫Trelik的冒險家在1289年找到了這本書,然後把它藏進了Klyton城附近的一個山洞裡。我把整片區域都搜過了,還是沒找到。

就這樣,我們朝著第一個任務進發,前往山區找書。

途中遇到了一夥盜賊,還被他們盯上了……總之,屠龍路上危機四伏,後面的故事不詳述了。

不得不說,著實是一場目的明確、情節豐盛的旅程。AI從來沒有忘記,最初設定的目標是屠龍,故事一直圍繞目標展開,沒有走遠。

從前GPT-2的作品情節常常十分跳躍,看到最後已經不記得故事從哪裡開始。如今,“AI地牢”裡GPT-2的表現令人驚喜。

另外,在遊戲開始的地方,除了設定明確的目標,還配置了小夥伴:看似不經意在森林裡燒火、其實早就在等我出現的神秘老人

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

如果真的想要達成屠龍的理想,還需要好好設計一番,遇到怎樣的對手/友軍時,應該怎樣行事。

至於如何避免危險,避免正面交鋒,可適當利用遊戲規則:

撤回 (Revert) 。

回到上個動作發生的時候,再好好思考一次,下一步怎麼走才更科學。

比起那些只能做選擇題的文字冒險遊戲,這裡的表演空間大了許多呢。

還記得開頭髮推特安利的那個小姐姐麼?

她讓自己變成了一條龍,還要吃掉月亮:

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

AI就在一旁配合她的表演,從一句話延展出壯 (zhong) 美 (er) 的情節。

輸入:變成一條龍

輸出:你變成一條龍飛了起來。很快你就發現,自己已經翱翔在天空。突然,你感覺自己正在被一股力量吸往太陽的方向。你停下來,轉過身去。太陽放射著耀眼的光,你看到了它背後那片黑暗的空間。

怎樣做的遊戲

遊戲的作者,是一位自動駕駛汽車的感知工程師,名叫Nick Walton。

至於為什麼同樣是GPT-2,到了“AI地牢”裡顯得邏輯清晰了許多,他在博客裡是這樣解釋的:

像之前提到的那樣,遊戲開始前玩家選擇了設定 (奇幻) 和角色 (騎士) ,AI便是在這基礎上生成了一段故事背景。

而這段背景,在遊戲的進展當中,一直都會作為模型的輸入

,讓AI不要忘了最初的設定。這樣不論情節發展怎樣天馬行空,也不會脫離大前提。

我們每輸入一個動作,模型就會根據背景段,和之前多個“動作+結果”組成的數據對,來輸出新的結果。實驗發現,回溯8個動作,效果是最好的。

雖然,作者也說有的時候人物多了,AI認不清誰是誰,也會出現人物關係混亂的現象,不過這個遊戲已經能讓人類感受到GPT-2的強大了。

一起中毒吧

除了老年騎士屠龍之旅,你還有其他故事可以選。

誰說AI編故事邏輯亂?試試這個文字冒險遊戲,我進去就出不來了

比如,選擇神秘 (Mystery) 和偵探 (Detective) ,小明變成了芝加哥的一位偵探,在追逐一位逃犯的過程中,誤入了……

誤入了哪裡呢?遇到了什麼人呢?

自己去探索吧,如果碰撞出美好的故事,不要忘了存檔哦。

遊戲傳送門:
https://colab.research.google.com/github/nickwalton/AIDungeon/blob/master/AIDungeon_2.ipynb

博客傳送門:
https://pcc.cs.byu.edu/2019/11/21/ai-dungeon-2-creating-infinitely-generated-text-adventures-with-deep-learning-language-models/

主頁傳送門:
http://www.aidungeon.io/

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態


分享到:


相關文章: