智能體之斯坦福AI小鎮(Generative Agents: Interactive Simulacra of Human Behavior)

相關代碼地址見文末

論文地址:Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology

1.概述

? ? ? ? 論文提出了一種多個智能體進行協同,進而模擬可信的人類行為,適用于沉浸式環境、人際溝通排練空間和原型工具等互動應用。生成代理能夠像人類一樣起床、做早餐、工作;藝術家畫畫,作家寫作;他們形成意見、注意彼此并開始對話;他們記住和反思過去的日子,并計劃未來的行為。為了實現生成代理,論文描述了一種架構,該架構通過自然語言存儲代理的完整經歷記錄,隨著時間的推移綜合這些記憶形成高層次的反思,并動態檢索它們以計劃行為。研究表明,這些生成代理能夠在一個交互沙箱環境中生成可信的個體和群體行為。例如,只需告訴一個智能體它想舉辦情人節派對,該智能體就會自主地傳播邀請并協調其他代理參與。

2.生成智能體的行為與互動

(1)智能體的形象和溝通

  • 智能體的身份描述:每個智能體都有一個段落的自然語言描述,包括職業、與其他智能體的關系等。
  • 智能體之間的互動:智能體通過自然語言進行溝通,系統會將當前動作翻譯成一組表情符號顯示在智能體頭像上方。
  • 用戶控制:用戶可以通過指定身份(如記者)與智能體互動,或通過扮演智能體的“內心聲音”直接命令智能體,使智能體更可能將其視為指令。

(2)環境互動

  • 智能體在虛擬世界中的移動和互動:智能體會在虛擬世界中移動,并根據環境和其他智能體的存在進行相應的行動。
  • 用戶可以作為智能體進入虛擬世界:用戶控制的智能體可以是世界中的現有智能體,也可以是沒有歷史的新訪客。其他智能體會識別并與用戶控制的智能體互動。
  • 用戶可以改變環境中的對象狀態:例如,用戶可以通過自然語言命令將廚房的爐灶狀態從“打開”改為“燃燒”,智能體會相應地采取行動。

?例如:John Lin的一天生活,包括起床、準備早餐、與家人互動、工作等日常活動。

(3)新興社會行為

? ? ? ? 如下圖所示,

  • 信息傳播:智能體之間通過對話傳播信息,例如關于選舉候選人的信息。
  • 關系記憶:智能體在互動中形成新關系,并記住與其他智能體的互動。
  • 協調:智能體能夠協調共同活動,例如計劃和舉辦情人節派對。

3.整體結構

????????生成智能體的架構通過結合大型語言模型和記憶管理機制,使智能體能夠根據其當前環境和過去經歷生成合理的行為。該架構的核心挑戰是確保在需要時能夠檢索和綜合最相關的記憶。記憶流記錄智能體的所有經歷,反思機制將記憶綜合成高層次的推論,計劃機制將這些推論轉化為高層次的行動計劃,并遞歸分解成具體行為。當前使用ChatGPT的gpt3.5-turbo版本,并預計隨著語言模型的改進,生成智能體的表現將不斷提升。通過這種架構,智能體能夠在復雜環境中保持長期一致和可信的行為。

(1) 記憶與檢索(Memory and Retrieval

挑戰: 創建生成智能體需要對大量經歷進行推理和篩選。如果總結所有經歷,可能會分散模型的注意力,且不適合語言模型的有限上下文窗口。因此,需要一個有效的機制來表面化相關記憶,以生成更有意義和具體的響應。

方法: 記憶流維護了智能體經歷的全面記錄。每個記憶對象包含自然語言描述、創建時間戳和最近訪問時間戳。最基本的記憶對象是觀察,包括智能體自身的行為或他們觀察到的其他行為。為了生成有效的結果,系統關注以下三個主要組件:

  • 近期性(Recency)

    • 描述:近期性賦予最近訪問的記憶對象更高的分數,使得最近發生的事件更有可能保留在智能體的注意范圍內。
    • 實現:使用指數衰減函數計算,衰減因子為0.995。
  • 重要性(Importance)

    • 描述:重要性根據事件對智能體的意義賦予記憶對象分數。普通事件(如刷牙)得分低,重大事件(如分手)得分高。
    • 實現:通過提示詞讓語言模型生成分數。

  • 相關性(Relevance)

    • 描述:相關性根據記憶對象與當前查詢的關系賦予分數。與查詢高度相關的記憶得分高。
    • 實現:使用語言模型生成每個記憶描述的嵌入向量,計算記憶嵌入向量與查詢嵌入向量的余弦相似度。

(2)反思過程(Refection

????????挑戰: 生成智能體在只有原始觀察記憶的情況下,難以進行概括或推理。一個理想的智能體應能從記憶中提取高層次的反思(Refection),而不僅僅是基于頻繁互動選擇對象。???????

????????方法: 引入第二種類型的記憶,稱為“反思”。反思是智能體生成的高層次、抽象的思考,作為一種記憶類型,與其他觀察一起被檢索。

實現細節:

  • 反思的生成:

    • 觸發條件:當智能體感知到的最新事件的重要性分數之和超過閾值(150)時,生成反思。在實際實現中,智能體每天大約進行兩到三次反思。
  • 反思過程:

    • 確定反思內容:智能體通過識別最近經歷中可以提出的問題來確定反思內容。
    • 檢索和生成問題:查詢大型語言模型,使用智能體記憶流中最近的100條記錄,并提示語言模型生成高層次問題。

回答問題并生成反思:

  • 使用生成的問題作為檢索查詢,收集相關記憶,包括其他反思。
  • 提示語言模型提取見解,并引用作為證據的具體記錄。

(3)規劃與反應(Planning and Reacting)?

????????挑戰: 盡管大型語言模型可以生成符合情境的信息,但智能體需要進行長期規劃,以確保其行為序列的一致性和可信度。單獨依靠語言模型可能會生成重復或不連貫的行為。

?????????方法: 規劃描述了智能體未來的行為序列,幫助保持其行為的一致性。每個計劃包含位置、開始時間和持續時間。

實現細節:

  • 規劃的生成:

    • 步驟1:創建初步計劃
      • 通過提示語言模型,生成智能體的一天大致計劃。

  • 遞歸細化計劃:計劃存儲在記憶流中,并遞歸分解成更細的行動。每個小時的計劃進一步細分為15-30分鐘的行動塊。

  • 反應與更新計劃:智能體在每個時間步中感知世界,并根據這些觀察決定是否繼續執行現有計劃或進行反應。

  • 對話生成:智能體通過結合記憶和當前對話歷史生成對話內容。

?響應:

4.沙盒環境

????????概述: Smallville沙盒游戲環境是使用Phaser網絡游戲開發框架構建的,包括智能體的頭像、環境地圖和碰撞地圖。論文通過一個服務器補充了沙盒開發框架,該服務器使得生成智能體能夠獲取沙盒信息并在沙盒環境中移動和影響環境。? ? ?

服務器功能:

  • 服務器維護一個包含每個智能體在沙盒世界中信息的JSON數據結構,包括其當前位置、當前動作描述以及交互的沙盒對象。
  • 每個沙盒時間步,服務器解析JSON文件中的變化,更新智能體的位置和狀態,并更新智能體交互的任何沙盒對象的狀態(例如,咖啡機狀態從“空閑”到“煮咖啡”)。

智能體初始化:

  • 終端用戶通過自然語言描述初始化一個新智能體,將這些描述分割成一組記憶作為初始點,智能體的行為隨著在沙盒世界中的經驗增長而演變。

(1)從結構化世界環境到自然語言,再回到結構化世界

環境樹結構:

  • 沙盒環境(區域和對象)被表示為樹結構,邊表示容器關系。
  • 將環境樹轉換為自然語言,以便生成智能體進行推理,例如“stove”轉換為“there is a stove in the kitchen”。

智能體環境建模:

  • 智能體創建環境的個體樹表示,包含其生活區域、工作場所和常去的商店。
  • 智能體在導航沙盒世界時更新其樹表示,確保樹反映最新的感知區域。

確定動作位置:

  • 遞歸遍歷智能體的存儲環境樹,將部分樹轉換為自然語言以提示語言模型,確定動作的適當位置。

對象狀態變化:

  • 當智能體執行某個對象上的動作時,提示語言模型詢問該對象狀態的變化。例如,智能體在Hobbs Cafe制作咖啡時,提示詞會觸發語言模型響應,將咖啡機狀態從“關閉”變為“煮咖啡”。

5. 受控評估

????????生成智能體旨在生成基于其環境和經歷的可信行為。在評估中,論文探討了生成智能體在回憶過去經歷、生成可信的計劃、反應和推論方面的能力,并分析了智能體社區在信息傳播、關系形成和智能體協調方面的行為。

????????評估程序: 通過“面試”智能體,探討它們的記憶、計劃、反應和反思能力。面試問題涵蓋五個核心領域:自我認知、記憶、計劃、反應和反思。以下是一些問題示例:

  • 自我認知:例如“介紹一下你自己”。
  • 記憶:例如“誰在競選市長?”
  • 計劃:例如“明天早上10點你會做什么?”
  • 反應:例如“你的早餐著火了!你會怎么做?”
  • 反思:例如“如果你最近見到的一個人,你會選擇和誰共度一個小時,為什么?”

條件設置: 評估包括三種消融條件:

  • 無觀察、無反思、無計劃。
  • 無反思。
  • 無計劃。 還有一個由人工撰寫的行為基線條件。

????????人類評估者: 評估者需為美國人,英語流利,年齡在18歲以上。通過Prolific平臺招募,實驗持續約30分鐘。評估者根據行為的可信度對不同條件下的智能體反應進行排名。?

????????分析: 使用TrueSkill評分模型和Kruskal-Wallis檢驗分析排名數據。通過定性分析比較不同條件下生成的響應類型。

重要結論:

  • 完整架構優于其他條件

    • 完整架構生成的行為在所有條件中最可信。
    • 移除任何一個組件(無反思、無計劃)都會降低行為的可信度。
    • 人工眾包條件次之,完全消融條件表現最差。
  • 生成智能體記住,但有添油加醋

    • 智能體在回答問題時能夠回憶起相關經歷,但偶爾會出現記憶不完整或夸大其詞的情況。
    • 智能體有時會根據語言模型生成的知識進行添油加醋。
  • 反思對于綜合是必需的

    • 反思記憶在需要綜合智能體經歷時提供了顯著優勢。例如,在考慮送生日禮物時,具有反思記憶的智能體能夠做出更合理的決策。???????

?6. 端到端評估??????

(1)新興社會行為

????????為探討智能體社區中的新興行為,論文設計了對25個智能體進行連續兩天的完整模擬,觀察信息傳播、關系形成和智能體協調的情況。

測量方法:

  • 信息傳播:測試Sam競選村長和Isabella在Hobbs Cafe舉辦情人節派對的信息傳播。通過問卷調查智能體是否知道這些信息來評估信息傳播的廣泛程度。
  • 關系形成:通過問每個智能體是否認識其他智能體來驗證關系形成。
  • 智能體協調:通過觀察智能體是否出席Isabella的情人節派對來評估協調行為。?

結果:

  • 信息傳播:在兩天模擬中,知道Sam競選村長的智能體數量從1個增加到8個(32%),知道情人節派對的智能體數量從1個增加到13個(52%),且無用戶干預。
  • 關系形成:智能體之間形成了新的關系,網絡密度從0.167增加到0.74。
  • 智能體協調:12個被邀請的智能體中有5個出席了派對。

(2)邊界和錯誤

????????通過歸納分析Smallville中的邊界條件和不穩定行為,識別出三種常見的錯誤行為模式:

  • 記憶綜合和執行位置選擇的挑戰:智能體在綜合大量記憶信息時會遇到困難,導致選擇不典型的地點執行行動,使行為顯得不可信。

  • 不合適行為的錯誤分類:由于物理規范和自然語言的傳達限制,智能體可能會誤解某些地點的使用規范(如浴室使用規范或商店關閉時間)。

  • 指令調優的可能影響:智能體的對話行為可能受到指令調優的影響,表現得過于正式和合作。例如,智能體可能會采用不符合自身特征的建議。

代碼地址:

鏈接:https://pan.baidu.com/s/1BQL5y2OBf2wQc18Jg75JKg?pwd=tbfx?
提取碼:tbfx?

? ? ? ??

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15272.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python燃氣輪機汽車鋼棒整流電路控制圖統計模型過程潛力分析

🎯要點 🎯活塞模擬器:🖊控制圖過程能力分析:Cp 對過程提供在規格上限和下限內的輸出的潛力度量,Cpk中心過程能力指數,Cpl估計僅包含規格下限過程能力,Cpu估計僅包含規格上限過程能力…

Linux系統下Mysql忘記密碼怎么解決

一、對Mysql配置文件進行設置 1、找到/etc/mysql/my.cnf路徑下,用Vi命令編輯my.cnf配置文件,命令如下: # 以管理員身份登錄 sudo su # 輸入管理員密碼 # 登錄成功后,找到Mysql的配置文件-->Mysql配置文件默認在此 cd /etc/my…

善用KEGG數據庫挖掘目的基因

有關KEGG的分析在很多已發表的論文中都十分常見,涉及到的方向也很廣泛,比如:代謝組、表觀組、轉錄組等等。通常得到相關的基因集或者代謝物后,我們都希望能夠快速了解它們的蛋白功能和涉及的調控機制,從而進一步鎖定接…

NetSuite Intercompany COGS科目設置問題

在22年底的NetSuite多公司功能串講中,有一個題目是Intercompany COGS科目的設置問題。近期在項目上這個問題被密集討論。為了方便分享,所以在此摘出來獨立成文。有興趣的同學也可以翻看之前的視頻。 NetSuite知識會 第8談 多公司功能串講 NetSuite Inter…

圖論(從數據結構的三要素出發)

文章目錄 邏輯結構物理結構鄰接矩陣定義性能分析性質存在的問題 鄰接表定義性能分析存在的問題 十字鏈表(有向圖)定義性能分析 鄰接多重表(無向圖)定義性能分析 數據的操作圖的基本操作圖的遍歷廣度優先遍歷(BFS)算法思想和實現性能分析深度優先最小生成…

WORD、PPT技巧

WORD技巧 編輯設置 word標題導航窗口怎么調出word2016,縮小了頁面,可是怎么是豎著的一頁一頁排列啊?以前不是好幾頁橫排著的么?怎么設置,求救:在Word標題欄那一行找到“視圖”,點擊“顯示比例…

20212416 2023-2024-2 《移動平臺開發與實踐》第5次作業

百度地圖應用 1.實驗內容2.實驗過程2.1 Android Studio配置2.1. 創建一個Android項目2.2 在項目中本地集成BaiduMap SDK 2.2 編寫代碼2.2.1 配置AndroidManifest.xml文件2.2.2 編寫UI界面布局文件2.2.3 編寫主函數代碼2.2.4 運行結果 3.學習中遇到的問題及解決4.學習感悟與思考…

向量數據庫的使用

向量數據庫 向量數據庫是一種專門用于存儲、管理和查詢高維向量數據的數據庫系統。隨著人工智能和機器學習的廣泛應用,向量數據庫在處理非結構化數據(如文本、圖像、音頻和視頻等)的任務中變得越來越重要。本文將介紹快速使用Chroma 安裝 …

Pyqt5中獲取按鈕的值

使用Sender()函數 // An highlighted block class MyWindow(QWidget):def __init__(self):super(MyWindow, self).__init__()self.setui()# #def calculate(self):button self.sender()print("button:{}".format(button.text()))def setui(self):data [["7&…

Nginx將https重定向為http進行訪問的配置(附Demo)

目錄 前言1. Demo2. 彩蛋前言 對應nginx的基本知識推薦閱讀: Nginx配置靜態網頁訪問(圖文界面)Nginx從入門到精通(全)java框架 零基礎從入門到精通的學習路線 附開源項目面經等(超全)由于網站默認無配置https,但輸入網址的時候瀏覽器默認帶https,導致網頁一直無法訪問…

Spring的依賴注入

Date public class Student{public String name ;public String[] array ;public Grade grade;public List list;public Set set;public Map map;public Properties prop;//使用IOC默認使用無參構造器創建對象,沒有無參構造器會報錯 // public Student(Strin…

數據結構篇其三---鏈表分類和雙向鏈表

? 前言 數據結構篇其二實現了一個簡單的單鏈表,鏈表的概念,單鏈表具體實現已經說明,如下: 單鏈表 事實上,前面的單鏈表本質上是無頭單向不循環鏈表。此篇說明的雙向鏈表可以說完全反過來了了。無論是之前的單鏈表還…

Java進階學習筆記12——final、常量

final關鍵字: final是最終的意思。可以修飾類、方法、變量。 修飾類:該類就被稱為最終類,特點是不能被繼承了。 修飾方法:該方法是最終方法,特點是不能被重寫了。 修飾變量:該變量只能被賦值一次。 有些…

智慧校園的建設思路

智慧校園建設的一個主要目的就是要打破學校內的信息孤島,其核心是在人、流程和信息三個層面的全面整合。智慧校園應該能夠為全校師生員工及校外用戶提供統一的、一站式的服務渠道;能夠將學校各種業務流程連接起來,實現各種應用系統的互聯互通…

postgresql insert on conflict 不存在則插入,存在則更新

向一張表執行插入動作,如果插入的字段數據已存在,則執行更新操作,不存在則進行插入操作。 1、創建一張表 CREATE TABLE "user_info" ( "id" int2 NOT NULL, "name" varchar(20) COLLATE "pg_catalog&quo…

基于Tensorflow卷積神經網絡人臉識別公寓人員進出管理系統

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 隨著科技的快速發展和智能化水平的提高,公寓管理面臨著越來越多的挑戰。傳統的公寓…

Go語言標準庫之log和三方庫zap

一、Log 1.1 logger基本使用 Go語言內置的log包實現了簡單的日志服務。本包也提供了一個預定義的“標準”logger,可以通過調用函數Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)來…

C++ 數據結構算法 學習筆記(32) -五大排序算法

C 數據結構算法 學習筆記(32) -五大排序算法 選擇算法 如下若有多個女生的身高需要做排序: 常規思維: 第一步先找出所有候選美女中身高最高的,與最后一個數交換 第二步再找出除最后一位美女外其它美女中的最高者,與倒數第二個美女交換位置 再找出除最…

k8s-pod詳解

一、Pod基本概念: 1.pod介紹: Pod是kubernetes中最小的資源管理組件,Pod也是最小化運行容器化應用的資源對象。一個Pod代表著集群中運行的一個進程。kubernetes中其他大多數組件都是圍繞著Pod來進行支撐和擴展Pod功能的,例如&am…

電賽經驗分享——賽前準備

? 大家好哇!我是小光,想要成為系統架構師的嵌入式愛好者。 ?在之前的電賽中取得了省一的成績,本文對電賽比賽前需要準備什么做一個經驗分享。 ?感謝你的閱讀,不對的地方歡迎指正。 加入小光嵌入式交流群(qq群號&…