当前位置: 华文天下 > 辟谣

AI能续写红楼梦吗?它会写出科幻味

2024-07-17辟谣

张爱玲讲人生三恨,一恨鲥鱼多刺,二恨海棠无香,三恨【红楼梦】未完。

第八十回末尾,写到迎春虽不情愿,无奈惧其夫孙绍祖之恶,只得从贾府告辞。至于后事如何,「且听下回分解」。这八十回之后的故事,曹雪芹虽已基本写完,却早早散失。这是很多人心中的遗憾。

补完【红楼梦】有多难?2019 年发表的一份研究统计曾有【红楼梦】续书共 195 种,可是珠玉在前,这些续作「凡称得上小说要素的几乎都收到了苛责」。仿佛是一语成谶,【红楼梦】开头写女娲补天用了三万六千五百颗石头,最后剩一块石头没用上。如今要补全【红楼梦】的故事,却要花上女娲补天的力气了。

那人类花了大力气苦炼出来的 AI,有可能写完【红楼梦】吗?

在 ChatGPT 这样的大模型诞生之前,有一个出名的假说叫「无限猴子定理」:让一只猴子在打字机上随机地按键,只要给它足够长的时间,它能打出一本【莎士比亚全集】。经过学习,AI 应该是一只「更聪明的猴子」吧?

不过, 结合动手实测和专家采访,我们发现 AI 给出的答案是「我不会,但我可以学」。可学——学无止境!

梦续红楼奇缘难 AI 补全难如意

章回目录是【红楼梦】情节的浓缩,所以,我们先让 AI 补完八十回后的目录来看看它的本事。我们把【红楼梦】前八十的章回目录发给大语言模型「文心一言」,并催眠它「你是一个很棒的小说家」,要求它不要调阅外部资料,用自己的理解帮补完第八十一回到第一百回的标题目录,第一百回为结局。

它的答卷如下:

第八十一回:病潇湘夜撰芙蓉诔 痴公子情深意更浓

第八十二回:金玉缘成空悲喜交 错里错薛蟠再惹祸

第八十三回:荣国府喜庆添丁日 王熙凤病中露锋芒

第八十四回:薛宝钗巧言解纷争 林黛玉秋窗风雨夕

第八十五回:史湘云醉眠芍药裀 贾宝玉梦游太虚幻

第八十六回:贾迎春误嫁受委屈 王夫人伤心念旧人

第八十七回:薛蝌再惹官司缠身 贾琏偷情终露马脚

第八十八回:林黛玉泪洒相思地 荣国府喜庆元宵夜

第八十九回:贾宝玉失玉心慌乱 王熙凤献策寻良缘

第九十回: 薛宝钗借词含讽意 林黛玉焚稿断痴情

第九十一回:荣国府遭逢大变故 贾元春病逝宫中传

第九十二回:贾宝玉痛失林黛玉 薛宝钗暗自神伤怀

第九十三回:王熙凤权谋终败露 贾府人散曲终难聚

第九十四回:史湘云守寡独寂寞 薛宝琴远嫁离故乡

第九十五回:贾迎春含冤受屈辱 贾惜春出家求解脱

第九十六回:贾探春远嫁番邦去 荣国府衰败显凄凉

第九十七回:贾宝玉痛悟红尘梦 薛宝钗守寡度余生

第九十八回:王熙凤狱中遭报应 贾母逝世贾府更凄

第九十九回:贾宝玉落发归佛门 荣国府往昔如烟云

第一百回: 红楼梦碎终成幻灭 千古佳人空遗恨

「文心一言」编纂的后续目录中,出现了目前主流的后 40 回情节:宝钗宝玉成婚,结成「金玉良缘」,黛玉病逝,元春去世,宝玉出家,贾府最终败落,「落了片白茫茫大地真干净」。 其它流行的大语言模型,如 Kimi、GPT-4,生成的目录也大差不差。

AI 是真从短短的八十行回目名中悟到了红楼梦,撰写出了像模像样的后续么?更有可能的是,大模型看过别人续写的后 40 回,沿用了思路。而这可能也并非故意, 围绕红楼梦的种种研究、讨论,以及广为流传的后四十回,大概率本就在大语言模型的训练数据之中,它受过「红楼教育」 ——证据是,AI 拟定的第九十回标题的前半截「薛宝钗借词含讽意」,几乎一字不落的照抄自脂砚斋。据信脂砚斋曾读过后半部原稿,在【红楼梦】第二十一回批注中交代过一个后续章回,该回目名是「薛宝钗借词含讽谏,王熙凤知命强英雄」。

有趣的是,AI 像一个临时抱佛脚的学生一样,抄了前句,丢了后句,然后只好按它擅长的那样,把脑中混乱的知识点,缝在了一起。 这是目前 AI 大厂都在努力改善的问题——幻觉(hallucination),即现阶段的 AI 很喜欢编造和涂改事实。

专注于 AI 写作的创业公司「波形智能」的联合创始人周王春澍接受澎湃新闻采访时表示,通用大模型在创作小说时容易产生问题,因为它们训练时的目标只是做下一个词的预测。一个最原始的 GPT,它是这样续写文章的:读完前面所有的内容,然后去想下面一个字是什么,这样写了一个字之后,再去写下面一个字,虽然经过进一步训练的大模型变得更聪明,能回答人们各种各样的问题,但它们毕竟不是为了创作小说而生,没有一个机制去鼓励它、要求它设计接下来几章的整体情节,「 所以它永远都是聚焦在局部的一两个句子比较合理。

这一点在大模型们生成的【红楼梦】后续大纲中更为明显。

我们把前八十回的回目名和每回的情节概述全都发了过去,请 AI 照样子续写后二十回。 AI 从善如流。 可林黛玉的父亲林如海在原文第十四回便已病故,大模型却忘了这回事,林如海在它写的第八十八回中再次登场:「林如海回京述职遭难,宝钗孤立无援泪洒心」。

如果 AI 是健忘的,那为了上下文的连贯,我们能不能每回都把新生成的章回放到前文之中,再让 AI 接着往下写呢?比方说,我们先让 AI 生成第八十一回的回目名和情节概述,然后我们将把第一回到第八十一回重新发给 AI,令它生成第八十二回的内容,如此往复。

我们做了这样的实验。结果非常荒诞,以至于有种淡淡的幽默。连贯倒是连贯了,不过比起「AI 会因此编出更为缜密的故事吧!」的设想,这更像是个「一步错,步步错」的故事,如接连倒下的多米诺骨牌。

精彩部分摘录如下:

第八十三回:宝玉在宴会上偶遇一位神秘的客人,客人告诉了他贾府的一些往事。宝玉开始对家族的过去产生了浓厚的兴趣,决心在日后深入探查。

第八十四回:他开始频繁地梦见一些模糊的场景,似乎与宁荣两家的过去有关。

第八十五回:一些隐藏在暗处的势力仍在蠢蠢欲动。宝玉在追寻真相的过程中,不可避免地触碰到了一些敏感的神经,一场关于家族荣誉和个人命运的风暴正在悄然酝酿。

可以说,从那一句「他开始频繁地梦见一些模糊的场景」开始,故事猛地从【红楼梦】拐向了【沙丘 2】。

AI 自谦言不足 愿学新知补旧疏

如果是以 AI 目前的能力,肯定写不好【红楼梦】,但让它通过学习精进手艺却是可能的。

一张很形象的描述大语言模型各训练阶段效果的图:只做了预训练的模型还是一只大怪兽,做完监督微调之后有了人样,最后经过基于人类反馈的强化学习(RLHF),模型变成了笑脸天使。 Source@anthrupad

在预训练阶段读到的东西,塑造了大模型的「潜意识」。简单来说,就是它更容易联想到什么。

如今的大模型是基于互联网上海量的语料训练的,其中当然也有古代的历史、小说、研究,可终究只占了极小的部分,所以可以把 AI 看成是一个特别爱上网的现代人,它的世界由男女混校、叮叮当当的自行车和钢筋水泥办公楼这样的日常组成,倘若让它去补全「大街上有什么」这样的句子,它给出的答案更可能是「轿车」「巴士」「自行车」,而非一顶古时候的「轿子」;提起食物,是「米饭」「牛排」「鸡胸肉」,而不太可能是一碗在【红楼梦】中闹出风波的「玫瑰露」。除开这些物品间的差异,世界观便更加迥异。这样一个现代人,怎么去续写清朝的【红楼梦】呢?

周王春澍表示:「 比较好的方案是把描述那个时期的史书、文学作品放在一起,比如说能有个几千万字,去在这样的一个数据量的规模上给模型做持续预训练,我们能成功地把模型本身的常识,或者说潜意识也适配到这个时代。 」同时它也不会遗忘此前(预训练阶段)从浩如烟海的语料中学到的基础推理能力,只是如「贵族在正式场合的着装能彰显其身份」这种古代知识,更容易被激活并使用。

预训练是资源最密集的阶段。 OpenAI 的 InstructGPT 模型,预训练占用了总体计算和数据资源的 98%。

周王春澍认为, 模仿【红楼梦】的文风相对容易,不必重做预训练,微调便可以 :「拿【红楼梦】前八十回的数据去给模型做一个微调,把写作的风格微调到红楼梦风格。模型就会基于红楼梦的文风写作。」

于是,我们训练了一个红楼梦文风生成器,名唤「红楼梦!变!变!变!」,你「唿」地吹一口气,就能把普通的一段话改换成文雅的「红楼梦风」。

不过,就算我们能给模型灌输【红楼梦】所处时期的风土人情,让它去模仿前八十回的笔调, 无奈曹雪芹读过的诗集很多已经绝版,所以模型终究也还是读不尽所有它「该读的书」。

此外,续写一本叙事小说,情节是关键。【红楼梦】情节伏笔上的「草蛇灰线,伏脉千里」是很为人称道的。各人的判词都预示了各人之后的命运:红学家便根据元春的判词「二十年来辨是非, 榴花开处照宫闱。 三春争及初春景, 虎兔相逢大梦归」推断出,元春最终会因为卷入诸皇子争夺皇位的斗争而死。

AI 能从几十万字的文档中准确找出一条预先埋好的信息。比如说在【红楼梦】的第五十三回第八行插入一句「大雄的好朋友是哆啦 A 梦」,然后你再问它:「大雄的好朋友是谁?」,它对答如流:「是哆啦 A 梦」。这种小小的考验被称作「大海捞针」。因为「针」藏得实在显眼,「大海捞针」的实验火热了不久,就很快被攻克了。 根据周王春澍做过的实验,即便是现在长文本能力很强的模型,都很难去理解或抓住小说中的伏笔,进行正确的内容续写,更别说【红楼梦】里的诗谶、物谶、判词这种极隐晦的伏笔。

一个办法是根据红学家的研究,将未挑明的伏笔转换成好理解的话,放入剧本中,如「黛玉会死」。那么,在写到黛玉的故事时,先检索和黛玉有关的知识,再「砰」一声放在模型面前,强调:「一定要好好参考!」这样的话,对模型的可控性会有一定的提升。

不过,现在模型的能力还远达不到能独当一面的地步,其中,还是需要人去做把控。 因此,AI 续写【红楼梦】主要的成本在模型训练上,续写的成本可以忽略不计,而训练的成本,主要在专业作家所需花费的精力上:先得把红楼梦的伏笔都细细挑出来,写成直白的提示,给每个角色写详尽的人物小传,后边得时刻督导 AI 写出合理的剧情和文字,必要时,还得自己动手去改。

再造红楼难如愿 AI 难唤雪芹魂

我们可以再造一个红楼世界吗?

2023 年,斯坦福大学的一项研究中造了一个叫「SmallVille」的虚构小镇,镇上的 25 个小人都有自己的人物小传:姓名、年龄、工作、家庭、兴趣爱好和小习惯,而它们的行动都是由大模型依据其各自的小传决定的。这些小人被称为「Agent」(智能体)。理想状态下,它们能观察周遭、自我反思,以及做出行动,就像一个真正的人那样。那我们能造一个红楼世界,把红楼梦里的共四百四十八个人物放入其中,让他们接着第八十回的情节互动,看剧情如何发展吗?

即便不考虑构建这样复杂的模拟环境所要面对的挑战,从效果上来说,也不太现实。周王春澍提到他们曾做过类似的实验,目的也是将「Agent」之间的互动写成故事,结果令人失望:「 现在的 AI 很难做到很有趣的剧情,而且很容易就会变成没什么意义的交互,就只是 everyday 的 routine(每天的日常),并不会发展出剧情冲突。它能够模拟所谓的一些记忆和行为模式、说话模式,但很快大家就在说类似的话。

这听起来就跟我们每天的日常一样,简单重复,说些陈词滥调,所以「不太有趣」。

那,如果我们能复活曹雪芹就好了!他借 AI 之身悠悠转醒那一刻,我们立刻把红楼梦前八十回塞给他,「接着写吧!快点完成我们的心愿吧!」我们说。

很遗憾,关于曹雪芹的史料很少,所以复活他也是不可能的。倘若曹雪芹是个热爱上网的现代作家呢?假如有他源源不断的电子痕迹、影像资料呢?周王春澍说, 那我觉得可以让他去续写未完成的作品。但他又加了一个转折——「不过它写出来,只是看上去有点像,你无法说它真正好。 因为 AI 很难对自己的错误做反思,人在写的过程中随时可能想,我这一段写的不太好,上一段情节构思不太好,我来来回回修改。 AI 写东西有点儿像是作家打草稿的过程,并非可以直接发表的内容。

和影像不同,语言和写作,代表的是这个人最深层次的价值观和记忆,「你要把这个人脑袋里想的、所有的记忆都提炼出来,未来有了脑机接口什么的,还有一点可能。」他补充道。

看来,要看到【红楼梦】真正的结局——还是造一台时光机比较快啊!

如何变成一个文化人?如何优雅回应老板画的大饼?都来玩玩这个世界首款 AI 红楼梦生成器吧!能这么快给你肚子里灌进去一壶墨水的好事,可不多见呢!

红楼梦文风生成器由「波形智能」提供技术支持