NPC 是遊戲中必要的組成部分,相應地,玩家也經常吐槽 NPC 們像是複讀機,隻能簡單重複固定的對話或演出,在一些極端狀況下,NPC 演出與劇情不匹配甚至會給人帶來割裂感。
要改變這種情況,以前需要開發者們投入更多時間、精力,設計更複雜的腳本和更多對話。盡管随着技術發展,這類情況整體來說有所改善,但很難從根源上解決問題,哪怕是前段時間頗受關注的 "AI 編劇寫作工具 ",也僅是幫助編劇從 AI 生成的對話和場景中做出選擇,并不能真正賦予 NPC 自主行動和交流的能力。偶爾,我們也會暢想 " 當玩家不在的時候,NPC 們都會做些什麽 ",但我們也知道,那是一種藝術上的想象,并非真實。
然而,假如這個構想也能成真,讓虛拟角色擁有思考、記憶等等能力,讓他們像個活人一樣在虛拟世界裏生活、工作、社交,又會變成什麽樣?
不久前,美國斯坦福大學和 Google Research 的研究者們發表了一篇相關論文,很快引起了關注。按照論文的描述,研究者們在一個類似沙盒遊戲的場景中成功構建了一個小鎮,小鎮裏有 25 個生成式智能體(Generative Agent)。在論文附上的 Demo 中,智能體們能通過基于 ChatGPT 3.5 的大型語言模型生成可信的行爲,在小鎮中模拟人類的生活方式,自主完成基本的日常活動和社交,甚至共同參與了一個情人節派對。
研究者給生成式智能體的定義是:他們能對自己、其他智能體和他們身處的環境進行多樣化的推斷;他們能制訂反映自身特征和經驗的日常計劃,執行這些計劃,作出反應,并在合适的狀況下重整計劃;在終端用戶(在論文中即爲研究者與測試者)改變他們的環境或用自然語言下達命令時作出反應。
25 位生成式智能體開始了他們的一天
爲了方便理解,也更貼近遊戲的語境,我們暫時将這些智能體稱爲 NPC。
論文中提及的小鎮由幾幢功能完備的住房和一些社交場所組成,包括咖啡館、酒吧、學校、宿舍和房屋。每個建築内都有相應的可互動物品,比如爐子、水池、衣櫃、書桌等。
研究者會賦予每個 NPC 一個基礎人設,他們的日常行爲都圍繞這個基礎人設進行。比如 Abigail Chen 是一名藝術家,正在爲一個動畫項目工作,旨在激發低收入人群的創造力。所以,她除了花大量時間進行動畫制作外,還會與擅長寫作的另一位 NPC 讨論合作事宜,也會與其他 NPC 交流如何更有效地推廣她的理念。除了基礎人設外,這些對話和關系的構建均由 NPC 自主生成。
終端用戶也能用自然語言直接控制小鎮中的場景和人物行爲。比如,研究者可以設定兩位 NPC 互相愛慕,并要求另一位 NPC 舉辦派對。研究者也可以讓房屋中的某個用品損壞,觀察 NPC 的反應。
每個 NPC 對當天的生活都有自己的規劃
在論文中,研究者從兩個方面對這些 NPC 的行爲進行觀察和記錄,并對這些行爲的合理性作出評估。
第一,評估他們是否能在獨自行動時作出可信的行爲,比如模拟人類每天早上起床做早飯、洗漱、吃飯,然後換衣服出門的過程。
第二,評估他們能否在一定時間内(研究者取用了小鎮中 2 天的時間)與周圍的其他 NPC 和環境進行合理交互,甚至彼此合作,構建新的關系。比如,洗手間被占用時 NPC 會在一旁等待,發現水龍頭漏水時 NPC 會嘗試維修。在對話當中,NPC 應當根據自己被設定的基礎人設對答,并且記住在此前的對話、互動中獲得過的信息,在行爲上具有連貫性。
其中,保證行爲的連貫性這一點比較困難。因爲 NPC 并不存在真正的 " 記憶 ",可能會忘記基礎人設之外的環境給自己帶來的改變。所以,研究者構建了一個 " 記憶—計劃—反思 " 的框架模型。
準确地搜索和調取記憶流中的數據是件很有技術含量的事
在這個模型中," 記憶 " 指的是 NPC 在感知到環境後,會把環境特征記錄在記憶流中。在面臨新狀況時,NPC 會對記憶流中的數據進行檢索,根據檢索到的結果進行推理,再決定如何反饋。
模型中的 " 計劃 " 是指,NPC 會先把當天的大緻計劃(比如起床、上課、完成作業、睡覺)儲存在記憶流中,再把計劃分解成各種細化的行爲,以便根據實時狀況調整計劃。
" 反思 " 則是一種更高級的記憶,促使 NPC 通過已知數據推斷,形成更高級的思維。用以反思的數據不僅可以來自當事 NPC 自己的觀察,也可以來自其他 NPC 的觀察。
具體來說就是,首先,研究者需要讓 NPC 确定反思的内容。舉個例子,研究者在 Demo 中用大型語言模型查詢記憶流中的 100 條最新記錄,其中包含 "Klaus Mueller 正在閱讀一本關于城市化的書 ""Klaus Mueller 正在與圖書管理員談論他的研究項目 "" 圖書館的桌子目前沒人在用 " 等數據。
接下來,NPC 需要思考根據這些信息能問出哪些比較高級的問題,比如:"Klaus Mueller 對什麽話題充滿熱情?" "Klaus Mueller 和 Maria Lopez 之間的關系是什麽?" 最終,NPC 也許會在反思後得出結論,認爲 Klaus Mueller 正在緻力于他對城市化的研究。這相當于這名 NPC 對 Klaus Mueller 産生了新的認識,今後他們也許會圍繞這一認識在與 Klaus Mueller 的交往中作出反應。
" 反思 " 能讓 NPC 通過已有數據得出一些更高級的結論
總之,這篇論文和 Demo 用沙盒地圖和 ChatGPT 中的語言模型,構築了一個看起來像模像樣的虛拟小鎮以及當中的虛拟居民。雖然居民的活動範圍不大,生成的交互類型與事件也比較簡單,但人們已經能通過它看到虛拟人物自主生活、自主交往的雛形。在 Demo 中,NPC 們的種種反饋都是由基本的尋路移動和文字形式給出的,效果還比較簡陋,但它展示出的可能性顯然難以估量。
按照這個邏輯發展下去,我們很難不聯想到一些科幻片式的問題,諸如 " 創造一個全部由 AI 組成的虛拟世界,成熟後與真實世界對接 ""《失控玩家》或者《西部世界》裏的遊戲世界會不會成真 "" 這算不算高維生命創造了低維生命 " 之類的——在此之前,其實已經有許多藝術作品讨論過類似的東西了,也沿着這些思路虛構和想象了一些情節和場景,有喜有憂。一旦這樣的想象成爲現實,真正的發展方向目前其實還很難輕易判斷。
不過,這些應用對遊戲開發者和玩家們來說是相當熟悉的。這篇論文展示出的前景可以讓未來的開發者們更加智能、更加真實地生成遊戲中 NPC 的行爲。假如相關技術再成熟一些,開發者也許就可以像論文中的研究者一樣,隻需要用自然語言輸入一系列設定,NPC 們就能自動根據玩家的行爲以及玩家對周遭環境的改變作出反饋。
這篇論文發表後得到了大量的關注,也許從側面上說明了人們對這種活生生擺在眼前的虛拟樂園的贊歎與驚詫。更何況,論文中使用的是 ChatGPT 3.5 語言模型,随着版本叠代更新,未來還有很大進步空間。至少在遊戲領域,人們對更生動、更豐富的虛拟角色的交互始終有着旺盛的需求,甚至可以說有一種浪漫化的、真情實感的憧憬——這篇論文中的實驗也許是一個好的開始。
最後附上論文和 Demo 的具體網址,論文中對如何實現這些功能有相當詳細的描述,有興趣的讀者可以進一步自行研究。