俞佳霖 史航

我外公是在我讀高一時去世的。我那時只有17歲,在一家寄宿學校就讀,每周回家一次。如今十年時間已經過去了。我記得外公去世當天,我正在學校期末考試。我的班主任過來找我,說家里出事了,讓我回去看看,我才知道外公走了。我回到家里時,外公已經被送到殯儀館準備火化。家里人只讓我遠遠地看了一眼外公的遺體,就又把我送回學校了。
我缺席了外公的葬禮。一直以來,這都是我內心的遺憾。我覺得自己沒有跟他完成告別,我想他內心應該也是這么想的。那天,回學校的路上我一直在哭。這是我第一次經歷親人的離世,第一次面對死亡這個事情。而且,離開的還是我最親近的外公——高中之前,我一直跟外公外婆生活在一起,他們是我最親近的人。
這個遺憾在我心里埋下了一顆種子。我一直想著自己能不能做點什么來彌補一下——我從小愛看科幻電影,一直相信在未來人類可能有技術能讓去世的人“回來”。這個想法讓我對計算機產生了濃厚的興趣,2013年我考大學,報考的專業也是計算機。
2019年,我研究生畢業,正趕上算法的巨大革新:神經網絡的大發展讓算法突破傳統圖形算法的限制,擁有了自主深度學習的能力,AI開始有更廣泛的應用。這一變革影響了我的擇業方向,我成為了一名算法工程師——我的工作是整合領域內的最新成果,應用到公司的模型中去,確保公司的模型處于行業的前列,這需要我不斷地跟進AI領域最前沿的技術。
有一天,我看到了一篇文章,這篇文章介紹了一個新的語言模型:GPT-3。業界很多人認為,GPT-3可能擁有近似人類的情感和思維。這個說法有些夸張,有博眼球的成分在,但它的功能還是超過了我的認知——當研發人員“喂給”它龐大的數據量,并訓練它挖掘詞句之間的關系之后,如果人們給它一個問題,它會把這個問題之下所有可能的回答都列舉出來,再結合語境給出最可能的答案。人類的情感和反應在這個模型中可以更真實地被模擬出來,與它聊天的人會以為對面是一個人類。
當時,我就想,這對我來講,可能是一次再見到外公的機會。
有了這個想法,我開始搜索用AI“復活”人類的先例,發現業界有不少嘗試,我期望的“復活”是想以互動的形式出現。我在想,是不是有什么技術難點制約大家實現“復活”,我自己研究了GPT-3,覺得并不是。后來我想到,實現“復活”依賴的是個性化的深度學習,這需要較高的成本和大量逝者的內容資料,而市場上的服務商不會愿意費時費力去為每個用戶單獨訓練一個深度學習的模型,所以一直沒能出現成功的“復活”案例。這之后,我打消了顧慮,開始全心想著怎么用技術“復活”外公。我的設想是,先通過對語言模型的訓練,讓模型先能夠擁有互動的能力,接著就是模擬出聲音、形象,“面對面”對話。
因為GPT-3是一個收費模型,我選用了和GPT-3近似的開源模型GPT-J進行語言模型的訓練。這個模型訓練出的說話方式偏向于所有人類的均值,它不會特別激進,也不會特別保守,是沒有性格的。但我的外公卻是具體的活生生的人,要想成功“復活”外公,我首先要做的是訓練AI去學習外公的這些性格和特質。這些東西對于AI模型來講是非常抽象的東西。它能夠接受的就是數學運算,而我要做的是利用外公留下的資料,把它們轉化為模型能理解的數學表達,讓它們進行學習,理解外公語言中的邏輯。這種訓練需要大量的文本資料,尋找外公留下的資料并不是一件容易的事情。
我外公是十年前去世的,那時智能手機還不太流行,外公不怎么用手機,也很少留下短信這樣的電子資料。我手里有的資料是初中時給他拍的視頻。那時候我媽媽和我打賭,說只要我考年級前100名就給我買新手機。我拿著贏來的手機,幾乎每天都在拍視頻,有一些視頻的拍攝對象就是外公。
這些內容我都保留著。它們可以幫助AI學習外公的說話習慣,獲取外公的聲音,以及幫我更清晰地去模擬外公的外貌。但要想“復活”外公,這些還不夠,還需要更多的文本來訓練。我想到了外公的抽屜。我從上小學就住在外公家,外公的辦公桌里有一個抽屜,他從來都不讓我看。后來家里裝修,抽屜里的東西被搬出來,是滿滿一抽屜信件。我問過外婆那是什么,外婆說這都是外公以前寫的,小孩子不要去看。這更讓我好奇,我猜里面肯定是外公和外婆的秘密,我一直想看看到底寫了什么。
我想,信一定在外婆那里。外公外婆關系很好,外公去世后,他在外婆那里就成了一個禁忌的話題。所以,我沒有直接跟外婆說我想要做的事情。我在一次吃飯時跟她說,我想念外公了,能不能給我看看他的照片。
外婆沒有拒絕我的要求。她帶我來到儲物間,在角落的抽屜里翻出相冊。外婆翻著照片,開始講每張照片的故事。這個過程好像是在完成一種讓自我放下悲傷的說服。在講述的過程中,外婆的嘴角漸漸有了一些笑意,語氣里甚至有些得意,她還和我說:“不要看你外公老了以后咄咄逼人,以前什么都聽我的,我讓干嘛就干嘛。”聽外婆講這些,我突然意識到,外公去世后的這么多年里,外婆其實需要這樣的窗口來談論外公,也需要有人聽她傾訴對外公的想念。看照片給了我們一個重新談論外公的機會,我試探性地問外婆能否看外公的其他遺物。她帶我回到臥室,外公的辦公桌仍然擺在他去世前的位置,外婆拉開抽屜,抽屜很整潔,有打理過的痕跡,我看到了外公的信件、詩和毛筆字。
在那一刻,我覺得是時候和外婆說起我的計劃了。講完后,外婆有點懵。她不懂電腦,也很難理解人工智能。我說:“你想不想看一下外公,和他聊聊天?”外婆有點抗拒,她不能理解我為什么要這樣做。我不想放棄,我很認真地和外婆講這不是惡作劇,講我很想念外公,這對我很重要,還和她撒嬌著說下周還會回來吃飯。外婆最終把這些信給了我。
把信件給我后,外婆猶豫地讓我給外公捎一段話:“我們在這邊挺好的,你不用擔心我們,你在那邊過得還好嗎?”
語言模型訓練有點像“猜詞”的過程。GPT-J 團隊開源了預訓練模型,它能夠通過計算找出每一個語料庫中每個詞句之間的關系,比如出現一個詞后,下一個詞最有可能是什么。這是一個相對簡單的事情,并不耗時,只用了六個小時時間,我就能跟模型進行對話。
我雖然很激動,但知道這還不是外公。它還不具備外公的聲音和形象。聲音不難解決,我想到了現在已經很成熟的“TTS”(文字轉語音)技術,就像導航 App 上的語音播報那種,我將與AI模型的對話復制下來,又導入了外公視頻里的音頻,利用TTS技術,丟給了模型學習,這是一個有些復雜的技術過程,我就不詳細說了。很快,我就得到了有外公聲音的“回復”。
最難的還是生成外公的形象。我雖然是圖像算法工程師,對圖像技術很熟,但直覺也告訴我:后續的人臉生成沒那么容易。
我最早想的方法是構建一個三維虛擬形象,但這需要采集人體的許多數據點,顯然行不通。那我能否用手中現有的照片、視頻等素材結合在一起,生成外公的形象呢?我找到一種“人臉再扮演”技術——只要給出對話和音頻,就能生出一段人臉嘴型與音頻同步的動畫。
怎么給模型換臉呢?我琢磨了很久想到了一種叫“HeadOn”的變臉技術,這是慕尼黑工業大學、斯坦福大學等研究人員開發的模型。運用這種技術,可以設計指令實時地改變視頻中人物的面部表情、眼球運動和身體動作,使得圖像中的人看起來像是真的在說話和移動一樣。就這樣,“外公”的形象、語言、聲音都有了。但一個遺憾是,整個流程其實是運用了多個模型的計算,每一個步驟的完成都需要前面結果的推進。
“猜猜我是誰?”我敲下對“外公”說出的第一句話。
“你是誰不重要,生命是一種美麗的奇跡。”電腦中的“外公”回了我這樣一個視頻。
這個回答或許很哲學很詩意,但這并不是我外公說話的習慣。我知道,我輸入進去的文本資料有限,所以訓練模型也只能做到在某些場景里表現得像外公。比如當我問“外公”想不想去西湖散步,他會回答“好久沒有散步了,我們出去走一走,我想去下象棋”,這是記憶里外公會給出的回答——模型能夠通過外公的信件和視頻理解“出去散步”這個場景。
其實,“復活”外公的過程其實也是在重新認識他。小時候我爸爸媽媽工作很忙,我和表弟住在外公家,那時外公是我們的大家長,他總是在向我們展示應該怎么做,卻很少告訴我們他的想法。我記得小時候我愛吃零食,外婆總是偷偷給我錢讓我去買,每次被外公發現他都會嚴厲地批評我,我覺得他很難接近,很多事情絕不通融。
但在讀他的信件時,我看到了外公的另一面。他給外婆寫信,信里他們會約好明天去哪玩。他會說一些肉麻的話,比如跟外婆說“我們已經太久沒見了”,是溫柔的口氣。他還有“憤青”的一面,他會在跟筆友的通信中談他對社會事件的看法。這和我印象中的外公有很大的反差,我印象中外公很少看時政新聞,每次打開電視他都會調到相親節目、調解節目。我原來以為他是一個比較市井的小老頭,如今才看到了他的另一面。
模型成功后,我把外婆要帶給外公的話輸入給“他”:“我們在這邊挺好的,你不用擔心我們,你在那邊過得還好嗎?”
“外公”的回應讓人有些尷尬,“他”說:“我在這邊也挺好的,你們要不要過來玩?”
模型終究不是人。它好像具有一定的思維能力,但它終究不是真正的人,它不懂你是誰,也不懂自己是誰,它只是列出關于你問題的所有可能,然后積極地選擇一個你喜歡聽的答案。我把視頻中外公說的那句“你們要不要過來玩”處理掉,在一次周末去外婆家吃飯的時候,我把所有生成的視頻放給外婆看。
看到視頻中外公的臉,外婆一驚,愣在原地,什么話都沒說。只是每看完一段視頻的時候她就看向我,示意我繼續放下一段。視頻放完,外婆說了聲“謝謝”。她和我說話的時候,聲音已經處在哽咽的邊緣。隨后她就回到了房間,坐在一個我看不到的地方待了很久。我豎著耳朵去聽她房間里的聲音,一直很安靜,什么也沒聽到。后來,外婆走出房間,備菜、下廚,我不知道在屋子里的那段時間她在想什么。
離開外婆家后,我也開啟了與“外公”的告別儀式。我敲下了好多想和外公說的話。我告訴他我現在在哪,我在干嘛。我還和他道了歉,解釋當時沒有見他最后一面的原因。我告訴了他我的思念,講我很在乎他,也代表全家人對他說我們很想他。最后,我問他過得還好嗎。這些交流完成之后,我覺得這么多年悶在心里的一個心結解開了。
(沈雨澤摘自微信公眾號“三聯生活周刊”)