AI智能體,竟然能反映人類的真實(shí)情感,還有人際關(guān)系中微妙的距離感?
最近,來自英偉達(dá)、華盛頓大學(xué)、港大的研究人員發(fā)布了類人智能體Humanoid Agents。
從名字就可以看出,這種智能體能夠反映人類的基本需求。
以往的智能體模擬,智能不完全地模仿人類行為,原因就在于,它們并沒有真正反映出人類的基本需求、真實(shí)情感及人際間微妙的距離感。
而Humanoid Agents的初衷,就是研發(fā)一個(gè)融合上述元素的、更貼近人類的智能體。
智能體受系統(tǒng)1思維和系統(tǒng)2思維的指導(dǎo),系統(tǒng)1思維會(huì)響應(yīng)具體條件(如基本需求),而系統(tǒng)2思維則涉及明確的規(guī)劃
目前,論文已被EMNLP System Demonstrations 2023接收。
論文地址:https://arxiv.org/abs/2310.05418
從這個(gè)視頻可以看出,Humanoid Agents逼真地再現(xiàn)了《生活大爆炸》中謝耳朵和Penny交互的有趣場景。
02:10
Humanoid Agents
正如原子、分子和細(xì)胞的計(jì)算模擬塑造了我們研究科學(xué)的方式,類人智能體的真實(shí)模擬,也成為了研究人類行為的寶貴工具。
要知道,以往的智能體有一個(gè)缺點(diǎn),它們雖然可以完成看似可信的行動(dòng),但跟真實(shí)的人類思維方式并不像。
絕大多數(shù)人類,并不會(huì)提前制定計(jì)劃,然后在日常生活中精確到一絲不茍地執(zhí)行這些計(jì)劃。
為了減輕這個(gè)缺點(diǎn)的影響,研究者從心理學(xué)中汲取了靈感,提出了Humanoid Agents。
心理學(xué)家Kahneman認(rèn)為,人類有兩個(gè)互補(bǔ)的思維過程:系統(tǒng)1(直覺的、輕松的、即時(shí)的)和系統(tǒng)2(邏輯的、有意的、緩慢的)。
而這次研究者提出的Humanoid Agents,就引入了系統(tǒng)1所需的三個(gè)要素——基本需求(飽腹感、健康和能量)、情感和關(guān)系親密程度,來讓智能體表現(xiàn)得更像人類。
利用這些元素,智能體就能調(diào)整自己的日常活動(dòng),以及和其他智能體的對話。
而且,智能體也會(huì)像人一樣,遵守馬斯洛需求理論。
如果它們沒有與他人充分地互動(dòng),它就會(huì)感到孤獨(dú);如果沒有保持健康,就會(huì)得??;如果沒休息夠,就會(huì)感到疲勞。
如果僅靠系統(tǒng)2的規(guī)劃,就可以讓智能體規(guī)劃休息時(shí)間,滿足基本的需求。
然而如果沒有系統(tǒng)1的反饋,智能體即使感到疲倦,也無法在下午3點(diǎn)小憩,因?yàn)榫蛯嫊r(shí)間安排在午夜。
而如果智能體感到憤怒,它就需要干一些能發(fā)泄情緒的事情,比如跑步或冥想。
并且,智能體之間的關(guān)系密切程度,也會(huì)影響它們之間互動(dòng)的方式。
社會(huì)大腦假說提出,我們的認(rèn)知能力很大程度上是為了追蹤社會(huì)關(guān)系的質(zhì)量而進(jìn)化的。
這就意味著,人們經(jīng)常根據(jù)與他人相處的感覺和親密程度,來調(diào)整與他人的互動(dòng)。
為了更好地模仿人類,研究者讓智能體能夠根據(jù)彼此之間的距離,來調(diào)整對話。
他們提出了一個(gè)平臺(tái),可以在生活大爆炸、老友記、Lin Family中模擬人形智能體的行為,然后用Unity WebGL游戲界面將它們可視化,并使用交互式分析儀表板,顯示智能體隨時(shí)間變化的狀態(tài)。
實(shí)驗(yàn)證明,對于系統(tǒng)1各方面的變化,Humanoid Agents都可以有效響應(yīng)并推斷。
而且,這種系統(tǒng)還可以擴(kuò)展到更多方面,比如個(gè)性、道德價(jià)值觀、同理心、樂于助人、文化背景等等。
工作原理
Humanoid Agents中,研究人員采用了OpenAI的ChatGPT-3.5。
第1步:根據(jù)用戶提供的種子信息初始化Agent。
簡單說,就是每個(gè)Agent的人物設(shè)定,它們的名字、年齡、日程、喜好等,對其做出人物規(guī)劃。
比如,「John Lin是一個(gè)Willow Market的藥店店主,喜歡幫助他人」,特點(diǎn)是友好和善良。
此外,Humanoid Agents的默認(rèn)情緒被設(shè)置為7種可能的情緒:憤怒、悲傷、恐懼、驚訝、高興、中立和厭惡。
第2步:Agent開始計(jì)劃自己的一天。
第3步:Agent根據(jù)自己的計(jì)劃采取行動(dòng)。如果同在一個(gè)地點(diǎn),Agent可以相互交談,進(jìn)而影響他們之間的關(guān)系。
Agent日計(jì)劃以1小時(shí)為間隔,能夠遞歸地分解計(jì)劃,然后,以15分鐘為間隔,來改進(jìn)活動(dòng)隨時(shí)間的邏輯一致性。
每15分鐘,Agent在它們的計(jì)劃中執(zhí)行一項(xiàng)活動(dòng)。
不過,Agent可以根據(jù)內(nèi)部狀態(tài),即情緒和基本需求,的變化更新計(jì)劃,或做補(bǔ)充。
比如,如果Agent目前非常饑餓,但計(jì)劃是在3個(gè)小時(shí)后吃一頓飯。
這里,Agent可以在繼續(xù)當(dāng)前活動(dòng)的同時(shí),吃點(diǎn)零食,這就特別像打工人,開飯前可能發(fā)生的行為。
那么,這些Agent過利用情感和基本需求狀態(tài),以及與其他Agent親密關(guān)系,將其轉(zhuǎn)換成自然語言描述,進(jìn)而決定如何與Agent相處。
在對話結(jié)束時(shí),每個(gè)Agent將通過對話歷史,來確定自己是否享受對話。
如果是這樣,它們與其他Agent的親密度將增加一倍,否則,親密度將減少一倍。
從親密關(guān)系逐漸改變,可以映射到人與人之間的關(guān)系如何隨著時(shí)間的推移而發(fā)展。
此外,談話歷史也用來來確定Agent的情緒是否受到談話的影響。
第4步:Agent評估所采取的行動(dòng)是否改變了他們的基本需求和情緒。
第5步:根據(jù)基本需求和情感的滿足情況,Agent可以更新未來的計(jì)劃。
除了默認(rèn)的五種需求(飽腹感、社交、健康、娛樂和能量)之外,還可以為Agent添加/刪除更多的基本需求。
為此,用戶需要按照以下格式,創(chuàng)建自己的default_agent_config.json文件:
{ "name": "fullness", "start_value": 5, "unsatisfied_adjective": "hungry", "action": "eating food", "decline_likelihood_per_time_step": 0.05, "help": "from 0 to 10, 0 is most hungry; increases or decreases by 1 at each time step based on activity"}
基本需求對活動(dòng)的影響
Humanoid Agents是一個(gè)動(dòng)態(tài)系統(tǒng),由許多組成部分組成,因此將每個(gè)基本需求對Agent活動(dòng)的影響分離出來是一個(gè)挑戰(zhàn)。
為了調(diào)查每個(gè)基本需求的貢獻(xiàn),研究人員模擬了一個(gè)Agent的世界。
這些Agent最初有一個(gè)基本需求設(shè)置為0,讓Agent在一天開始時(shí),極度饑餓、孤獨(dú)、疲勞、不適或無聊。
作者研究了在一個(gè)模擬的一天中,Agent為了滿足基本需求而進(jìn)行活動(dòng)花費(fèi)的時(shí)間。比如,為了克服饑餓而吃食物,為了緩解孤獨(dú)而進(jìn)行社交活動(dòng)。
然后,研究人員將其與Agent在正常情況下(每個(gè)基本需求設(shè)置為5,能量設(shè)置為10)執(zhí)行此類活動(dòng)所花費(fèi)的時(shí)間,進(jìn)行比較,從而,計(jì)算出在測試條件下,用于滿足每種基本需求所花費(fèi)時(shí)間的增加百分比。
如下表所示,當(dāng)健康(156%)、能量(56%)和飽腹感(35%)等基本需求被初始化為0時(shí),Humanoid Agents對其活動(dòng)的適應(yīng)程度最高。
馬斯洛將它們歸類為低層次的「生理和安全需求」,人們在滿足其他需求之前需要先滿足這些需求,這證明了其重要性。
在這種情況下,行為主體通常會(huì)看病、休息、覓食等等。
另一方面,當(dāng)Agent因缺乏社會(huì)交往而感到孤獨(dú)時(shí),它們只會(huì)稍微調(diào)整自己的行為(+12%),與其他Agent進(jìn)行更多的交流。
此外,Agent社交和娛樂活動(dòng)變化較小的另一個(gè)原因是:正常情況下,行為主體已經(jīng)花費(fèi)大量的時(shí)間,來做滿足這些基本需求的活動(dòng)。
平均而言,它們花費(fèi)11個(gè)小時(shí)做自己喜歡的事,8.75個(gè)小時(shí)用于社交互動(dòng),只有5.75個(gè)小時(shí)用于休息,2.75個(gè)小時(shí)用于吃飯和做一些改善健康的事情。
這意味著,一開始將娛樂或社交設(shè)置為0的效果,在一天中很早時(shí)候消失,取而代之的是其他優(yōu)先事項(xiàng),包括工作義務(wù),比如Penny在芝士蛋糕坊工作。
情緒對活動(dòng)的影響
這里,作者研究了在一天的模擬中,Agent進(jìn)行表達(dá)每種情緒的活動(dòng)的次數(shù)(間隔15分鐘)。
例如,當(dāng)Agent生氣的時(shí)候,會(huì)跑步來發(fā)泄憤怒;當(dāng)傷心的時(shí)候,會(huì)尋求一個(gè)值得信賴的朋友的傾訴;當(dāng)厭惡的時(shí)候,會(huì)練習(xí)深呼吸和冥想;當(dāng)感到驚訝的時(shí)候,會(huì)花時(shí)間來處理和思考這些令人驚訝的發(fā)現(xiàn)。
然后,研究人員計(jì)算Agent在正常設(shè)置中,執(zhí)行此類活動(dòng)的次數(shù)的差值。
在正常情況下,Agent通常不會(huì)表現(xiàn)出悲傷、憤怒、恐懼、厭惡或驚訝的行為,不過實(shí)驗(yàn)結(jié)果顯示,與正常情況下的Agent相比,表達(dá)這些情緒的行為數(shù)量有所增加。
如上表所示,憤怒對行為主體影響最大(+15個(gè)活動(dòng)) ,其次是悲傷和恐懼(各+10) ,然后是厭惡(+4)和驚訝(+1) ,最后是快樂(-2)。
負(fù)面情緒似乎比正面情緒更能影響Agent,因?yàn)锳gent通常不會(huì)計(jì)劃做帶有負(fù)面情緒的活動(dòng),因此不得不顯著調(diào)整自己的計(jì)劃來管理負(fù)面情緒。
有趣的是,觀察到Agent在快樂的時(shí)候,為了使自己保持快樂,而減少做一些活動(dòng)。
親密關(guān)系對活動(dòng)的影響
另外,作者還研究了初始關(guān)系親密度對2個(gè)Agent之間對話的影響。
如下表所示,隨著親密度的增加,談話平均轉(zhuǎn)折點(diǎn)次數(shù)呈倒U形。
Agent距離較遠(yuǎn)的時(shí)候說話少,距離近的時(shí)候說話多,但是在距離非常近的時(shí)候,又會(huì)逐漸減少。
這點(diǎn)與人類非常相似,當(dāng)我們感覺與他人非常親近時(shí),就不那么需要進(jìn)行禮貌的談話。
有趣的是,在Lin’s Family中,這個(gè)轉(zhuǎn)折點(diǎn)發(fā)生在「rather close」處。而在老友記和生活大爆炸中,轉(zhuǎn)折點(diǎn)在發(fā)生在「close」處。
或許是因?yàn)?,Lin中的兩個(gè)Agent是父子關(guān)系,在較低的親密程度下進(jìn)行較少的交流就很舒服,不會(huì)讓關(guān)系緊張。
而在老友記和生活大爆炸中,Agent彼此之間是朋友和鄰居,需要更積極的溝通來維持關(guān)系。
與人類標(biāo)注的比較
為了評價(jià)Humanoid Agents的預(yù)測能力(比如活動(dòng)是否滿足自己的基本需求、活動(dòng)中自己會(huì)表現(xiàn)出什么情緒、對話是否會(huì)使兩個(gè)Agent更親近),研究者將系統(tǒng)的預(yù)測與人類標(biāo)注進(jìn)行了比較。
三位人類標(biāo)記者會(huì)使用和ChatGPT相同的指令,來標(biāo)記林氏家族世界中一天的模擬。
每個(gè)標(biāo)注者針對情感和基本需求都獨(dú)立標(biāo)注了144項(xiàng)活動(dòng),針對用戶對話對則有30項(xiàng)標(biāo)注。
然后,研究者對所有標(biāo)注者進(jìn)行多數(shù)投票,并計(jì)算了多數(shù)投票與系統(tǒng)預(yù)測之間的 micro-F1。
表1顯示,在所有基本需求、情感和關(guān)系親密程度方面,評分者之間的信度良好(Fleiss'κ>=0.556)。
研究者還發(fā)現(xiàn),如果一項(xiàng)活動(dòng)增加了飽腹感和能量,Agent就能在分類方面表現(xiàn)良好 (F1 >= 0.84) 。
而且Agent能在活動(dòng)中表達(dá)出情緒,對話還能拉近不同Agent之間的距離。
然而,Agent在給活動(dòng)是否滿足樂趣、健康和社交的基本需求時(shí),卻表現(xiàn)不佳。
原因或許在于,Agent系統(tǒng)大大高估了滿足這些需求的活動(dòng)數(shù)量。比如健康占Agent預(yù)測活動(dòng)的34% vs 人類標(biāo)注活動(dòng)的4.9%,娛樂占44.4 vs 10.4%,社交占 47.2% vs 24.3%。
Agent會(huì)認(rèn)為因?yàn)镴ohn Lin在藥房工作,這些活動(dòng)就有助于Agent的身體健康;收到教授的反饋,或幫助老客戶買到藥物,就會(huì)令自己愉快。
研究者判斷,如果使用更理解常識(shí)的語言模型,可能會(huì)緩解這個(gè)問題。
都是用LLM構(gòu)建AI智能體,創(chuàng)新在哪
斯坦福西部世界小鎮(zhèn)的里程碑式論文一出,業(yè)界被激發(fā)了許多想象力,用LLM構(gòu)建可想象的人類行為智能體研究也層出不窮。
Humanoid Agents跟之前大熱的BabyAGI、AutoGPT等智能體,區(qū)別在哪里呢?
研究者指出,Humanoid Agents應(yīng)該是目前唯一模擬類人智能體日?;顒?dòng)的工作,其他的工作一般都是實(shí)現(xiàn)外部定義的目標(biāo)。
比如Langchain Agents 、BabyAGI、AutoGPT、AgentVerse、Voyager和CAMEL,都是構(gòu)建以任務(wù)為導(dǎo)向的智能體,通過遞歸將用戶定義的任務(wù)分解為更簡單的子任務(wù)來解決。
而且根據(jù)情感、游戲角色描述和個(gè)人事實(shí)生成的多輪對話響應(yīng),并不是由智能體動(dòng)態(tài)模擬出的,而是基于一組靜態(tài)的、與角色無關(guān)的文本信息。
這些先前的工作,并不能模擬出動(dòng)態(tài)屬性的影響,比如無法反映出一對智能體之間親密度的變化。
而且,Humanoid Agents在生成對話響應(yīng)時(shí),可以同時(shí)考慮到基本需求、情感、親密度等多個(gè)方面,就像真正的人類一樣。
而此前的這些工作,一次只考慮了一個(gè)方面。
定制Agent
目前,系統(tǒng)支持三種內(nèi)置設(shè)置:
1. 生活大爆炸(Big Bang Theory)
--map_filename ../locations/big_bang_map.yaml \ --agent_filenames ../specific_agents/sheldon_cooper.json ../specific_agents/leonard_hofstadter.json ../specific_agents/penny.json
2. 老友記(Friends)
--map_filename ../locations/friends_map.yaml \ --agent_filenames ../specific_agents/joey_tribbiani.json ../specific_agents/monica_gellor.json ../specific_agents/rachel_greene.json
3. Lin Family
--map_filename ../locations/lin_family_map.yaml \ --agent_filenames ../specific_agents/eddy_lin.json ../specific_agents/john_lin.json
同時(shí),用戶還可以通過自定義設(shè)置,創(chuàng)建自己的地圖和Agent。
需要注意的是,Agent和地圖并不是完全分離的。對于指定的每一個(gè)agent_filename,它的name字段都必須作為關(guān)鍵字包含在Agents下的map.yaml中。
分析面板
Agent在活動(dòng)過程中所生成的數(shù)據(jù),可通過交互式儀表盤直觀顯示。它包括基本需求圖和社會(huì)關(guān)系圖,以及相應(yīng)的信息,包括情感和對話細(xì)節(jié)。
cd humanoidagents
python run_dashboard.py --folder <folder/containing/generation/output/from/run_simulation.py>
所需參數(shù)
--folder是run_simulation.py生成的輸出結(jié)果存放的文件夾
--mode是從文件夾中選擇數(shù)據(jù)的方法。它有兩種模式:(1)all:顯示文件夾中的所有文件(2)date_range:顯示所選日期范圍內(nèi)的文件(需要在參數(shù)中說明)
可選參數(shù)
當(dāng)--mode = date_range時(shí),--start_date是起始日期(包含)。格式為YYYY-MM-DD,如2023-01-03
當(dāng)--mode = date_range時(shí),--end_date是結(jié)束日期(包含)。格式為YYYY-MM-DD,如2023-01-04