當前位置: 華文天下 > 辟謠

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 紅樓夢生成器吧!能這麽快給你肚子裏灌進去一壺墨水的好事,可不多見呢!

紅樓夢文風生成器由「波形智能」提供技術支持