栗子 发自 凹非寺
量子位 报道 | 公众号 QbitAI

15亿参数的终极版GPT-2,就是OpenAI那只编故事成瘾的AI,都能拿来做些什么?

有人用它做了个文字冒险游戏,并赐以优美的名字,叫“AI地牢 (AI Dungeon) ”。

大概是在说,你一旦进去就出不来了,里面的故事太迷人。

现在,这座地牢进化出了2.0版本。有网友盛情安利,表示不可错过,推特11小时已有1600赞:

ai游戏机制作:谁说AI编故事逻辑乱(1)

一向看重情节的我,必然吃下了这颗安利,反正只要打开Colab就能玩。

有一说一,原本没对GPT-2的逻辑能力抱有太多期待,结果真的有惊喜。

老年骑士屠龙之旅

开始运行之后,首先看到了摇摇欲坠的“AI Dungeon”两个字,预示着我即将落入“地牢”。

ai游戏机制作:谁说AI编故事逻辑乱(2)

那么,AI会讲一个怎样的故事,来让我难以自拔?

我在奇幻 (Fantasy) 、神秘 (Mystery) 、世界末日 (Apocalyptic) 和僵尸 (Zombies) 里面,选择了官方推荐的奇幻设定:

ai游戏机制作:谁说AI编故事逻辑乱(3)

然后,在贵族骑士乡绅巫师护林员农夫流氓这些角色里,选中了骑士:

ai游戏机制作:谁说AI编故事逻辑乱(4)

再给自己起个像样的名字,故事就开始了:

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游戏机制作:谁说AI编故事逻辑乱(5)

如果真的想要达成屠龙的理想,还需要好好设计一番,遇到怎样的对手/友军时,应该怎样行事。

至于如何避免危险,避免正面交锋,可适当利用游戏规则:撤回 (Revert) 。

回到上个动作发生的时候,再好好思考一次,下一步怎么走才更科学。

比起那些只能做选择题的文字冒险游戏,这里的表演空间大了许多呢。

还记得开头发推特安利的那个小姐姐么?

她让自己变成了一条龙,还要吃掉月亮:

ai游戏机制作:谁说AI编故事逻辑乱(6)

AI就在一旁配合她的表演,从一句话延展出壮 (zhong) 美 (er) 的情节。

输入:变成一条龙

输出:你变成一条龙飞了起来。很快你就发现,自己已经翱翔在天空。突然,你感觉自己正在被一股力量吸往太阳的方向。你停下来,转过身去。太阳放射着耀眼的光,你看到了它背后那片黑暗的空间。

怎样做的游戏

游戏的作者,是一位自动驾驶汽车的感知工程师,名叫Nick Walton。

至于为什么同样是GPT-2,到了“AI地牢”里显得逻辑清晰了许多,他在博客里是这样解释的:

像之前提到的那样,游戏开始前玩家选择了设定 (奇幻) 和角色 (骑士) ,AI便是在这基础上生成了一段故事背景。

而这段背景,在游戏的进展当中,一直都会作为模型的输入,让AI不要忘了最初的设定。这样不论情节发展怎样天马行空,也不会脱离大前提。

我们每输入一个动作,模型就会根据背景段,和之前多个“动作 结果”组成的数据对,来输出新的结果。实验发现,回溯8个动作,效果是最好的。

虽然,作者也说有的时候人物多了,AI认不清谁是谁,也会出现人物关系混乱的现象,不过这个游戏已经能让人类感受到GPT-2的强大了。

一起中毒吧

除了老年骑士屠龙之旅,你还有其他故事可以选。

ai游戏机制作:谁说AI编故事逻辑乱(7)

比如,选择神秘 (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 · 头条号签约

关注我们,第一时间获知前沿科技动态

,