擁有自我意識的AI:AutoGPT
1、引言
ChatGPT在當下已經風靡一時,作為自然語言處理模型的佼佼者,ChatGPT的優勢在于其能夠生成流暢、連貫的對話,同時還能夠理解上下文并根據上下文進行回答。針對不同的應用場景可以進行快速定制,例如,在客服、教育、娛樂等領域中,ChatGPT可以作為智能助手為用戶提供便捷的服務和娛樂體驗。
從GPT-3到GPT-4,我們可以看到在高級推理,輸入設置,微調行為和理解更長的上下文信息等方面,ChatGPT在不斷的優化訓練中已經取得了顯著的進展。
但是針對于這種交互式的GPT模型,我們更希望看到能像電影里的人工智能,擁有自我意識,可以進行自我學習和進化。不需要通過頻繁的引導和交互,我們只需要簡單提出一個目標,AI就能自主的完成所有的執行規劃和邏輯處理,并不斷進行自我論證和優化,最后完成我們提出的目標。
那么今天它來了,它就是ChatGPT的進化版本:AutoGPT。
2、什么是AutoGPT?
AutoGPT 是一個實驗性開源應用程序,它利用 OpenAI 的GPT-4語言模型來創建完全自主和可定制的 AI 代理。它于 2023 年 3 月 30 日由 Toran Bruce Richards 發行。
Toran 是一名游戲開發商,并創立了一家名為 Significant Gravitas 的游戲公司。
在短短的一個多月時間里,AutoGPT的Git項目已經獲得了超過120萬的star,作為 GPT-4 完全自主運行的首批示例之一,AutoGPT 突破了 AI 的可能性界限。
與其他 AI 工具相比,AutoGPT 是獨一無二的,因為它獨立運行,這意味著你不再需要操縱模型來滿足你的需求。相反,你只需要寫下你的目標,然后 AI 會為你完成剩下的工作。因此,AutoGPT 從根本上改變了 AI 與人類之間的交互方式,人類不再需要發揮積極作用,同時仍然保持與 ChatGPT 等其他 AI 應用程序相同或更好的結果質量。
3、AutoGPT 如何工作?
AutoGPT 基于自主 AI 機制工作,其中 AI 系統創建不同的 AI 代理來滿足特定任務,其中包括:
- 任務創建代理:當你在 AutoGPT 上輸入目標時,第一個與任務創建代理交互的 AI 代理。根據你的目標,它將創建一個任務列表以及實現這些目標的步驟,并將其發送給優先級代理。
- 任務優先級代理:收到任務列表后,優先級 AI 代理會確保順序正確且符合邏輯,然后再將其發送給執行代理。
- 任務執行代理:完成優先級排序后,執行代理將一個接一個地完成任務。這涉及利用 GPT-4、互聯網和其他資源來獲得結果。
上述代理之間相互通信。所以當執行代理完成所有任務,結果不理想時,它可以與任務創建代理通信,創建新的任務列表。三個代理之間的迭代循環,直到完成所有用戶定義的目標。
AI 代理的行為也顯示在用戶界面上,將它們分為四組:思想、推理、計劃、評判。
- 思想(THOUGHTS):AI 代理分享它對目標的想法。
- 推理(REASONING):AI 代理推理如何開展并實現它的想法。
- 計劃(PLAN):AI代理通過分析,列舉了所要完成任務的計劃。
- 評判(CRITICISM):AI進行自我評判,糾正錯誤并克服任何限制問題。
通過共享此計算流程,AutoGPT 可以進行反復嘗試論證,并進行針對性的優化處理,可以在沒有任何用戶干預的情況下克服所遇到的所有問題。
4、AutoGPT和ChatGPT的對比?
雖然底層的 LLM 模型是相同的,但是 AutoGPT 和 ChatGPT 之間還是有不少區別。
4.1 實時洞察
ChatGPT 使用的最新 GPT-4 模型是在與 GPT-3.5 相同的數據上訓練的,該數據僅到 2021 年 9 月,你無法使用 ChatGPT 獲得實時數據信息,因為你無法訪問網站和在線平臺來獲取信息和提取信息。
相比之下,AutoGPT 可以訪問互聯網。它不僅可以上網沖浪,還可以驗證來源是否合法。此外,AutoGPT 可以訪問任何平臺來執行任務。例如,如果你要求 AI 研究銷售產品的前景并發送外聯電子郵件,它會直接使用你的 Gmail 帳戶起草并發送電子郵件。
4.2 內存管理
上下文窗口對于語言模型給出準確答案非常重要。但在像 GPT-4 這樣的 LLM 中,窗口有 4000 到 8000 個令牌的限制。因此,如果要求超出限制,模型可能無法正確遵循所有指令,或者可能偏離正切并提供不可靠的輸出。
相比之下,AutoGPT 擅長短期和長期內存管理。通過使用數據庫,本地Cache和Redis進行內存管理,可以存儲大量上下文信息或以前的經驗,讓AI模型做出更好的決策。
4.3 圖像生成
AutoGPT 能夠生成圖像,因為它可以使用多種圖像生成引擎,默認使用DALL-E 。如果你想為你的 AI 代理啟用圖像生成功能,你需要訪問 DALL-E 的 API。盡管是多模式輸入方式,但此功能目前在 ChatGPT-4 中不可用。
3.4 文字轉語音
你可以通過在命令行中鍵入python -m autogpt --speak在 AutoGPT 上啟用文本到語音轉換。但是每次與 AutoGPT 交互時都必須輸入命令。你還可以通過將 AutoGPT 連接到多功能 AI 語音軟件 Eleven Labs,為語音添加不同的聲音。
5、AutoGPT 的局限性
毫無疑問,自主性為AI系統增加了一個新的維度。同時,我們也不能忽視AutoGPT的局限性和風險。下面列出了你必須知道的一些關鍵限制。
5.1 成本高昂
雖然功能令人驚嘆,但 AutoGPT 的實用性可能會讓你失望。由于 AutoGPT 使用昂貴的 GPT-4 模型,因此即使是小任務,完成每個任務的成本也可能很高。這主要是因為 AutoGPT 在特定任務的步驟中會多次使用 GPT-4。
5.2 經常陷入循環
用戶在使用 AutoGPT 時面臨的最常見問題是它陷入循環。如果這種情況持續超過幾分鐘,則可能意味著你必須重新啟動該過程。發生這種情況是因為 AutoGPT 依賴 GPT-4 來正確定義和分解任務。因此,如果底層LLM返回結果不足以讓 AutoGPT 采取任何行動就會出現反復嘗試的問題。
5.3 數據安全性
由于AutoGPT經過充分授權,能自主運行并訪問你的系統和互聯網,例如使用你的twitter賬號,登錄github,使用搜索引擎等,因此你的數據可能會被泄露。AutoGPT沒有安全代理,所以你在使用 AutoGPT 時必須小心,如果沒有給出正確的說明和安全指南,你不能讓模型繼續運行。
5、如何安裝 AutoGPT?
與其他人工智能工具不同,AutoGPT 沒有簡單的注冊程序來訪問其平臺和功能。在開始使用 AutoGPT 之前,你必須下載各種軟件以滿足要求。以下是詳細的步驟要求:
第一步:下載必備軟件
首先你需要有一個Git賬號,同時需要安裝Python3.1.0或者更高版本,此外你必須還能熟練使用常用的shell命令或者有Docker容器進行項目啟動和配置。
第二步:設置你的 OpenAI API 密鑰
如果你還沒有,請創建一個 OpenAI 帳戶(當然如果你在國內想要創建賬號不是一件簡單的事情,你可以參考網上其他文章進行賬號申請)。打開OpenAI帳戶后,打開USER - API keys轉到 API 密鑰選項卡。你將看到一個用于創建密鑰的選項。單擊它,然后復制密鑰。
第三步:克隆最新版本的AutoGPT
(1)clone項目
打開命令行工具通過命令git clone https://github.com/Torantulino/Auto-GPT.git 將項目clone到本地
(2)執行安裝
通過命令cd Auto-GPT && ls -al進入目錄后,可以看到有很多的文件,其中一個文件是 requirements.txt。在此文件中,你將看到運行 AutoGPT 所需的模塊。
要安裝這些模塊,可以使用命令pip install -r requirements.txt 進行下載安裝。
(3)修改配置
通過命令vim .env.template your-openai-api-key),配置完成后執行mv .env.template .env 使配置生效
其他相關的配置可以參考表格按需進行
LLM PROVIDER | 可以配置OPENAI_API_KEY,是否使用AZURE |
LLM MODEL SETTINGS | 可以配置openAI提供的token限制,避免過度調用成本浪費 ,默認4000-8000 |
LLM MODELS | LLM 底層語言模型,默認可以選擇GPT-4或者gpt-3.5-turbo |
MEMORY | 內存管理,可以配置local,redis,PINECONE,MILVUS等 |
IMAGE GENERATION PROVIDER | 圖像生成,可以配置圖像大小和圖像生成引擎:dalle,HUGGINGFACE,STABLE DIFFUSION WEBUI |
AUDIO TO TEXT PROVIDER | 語音轉文字,可以配置HUGGINGFACE |
GIT Provider for repository actions | github配置,通過配置github api key用于訪問和管理github |
WEB BROWSING | 搜索引擎管理,可以配置不同的瀏覽器:firefox,chrome,safari,搜索引擎:google等授權open api用于訪問互聯網獲取信息和管理訪問深度 |
TTS PROVIDER | 文本轉語音,可以配置MAC OS,STREAMELEMENTS,ELEVENLABS來進行文本轉語音 |
TWITTER API | twitter賬號管理,管理配置你的twitter賬號,配置token用于訪問對應的api |
AUTO-GPT - GENERAL SETTINGS | AutoGPT的一些默認配置,例如存放目錄,開關,user Agent ,AI settings等 |
(4)開始使用
在完成以上配置以后,就已經完成了AutoGPT的基本配置,這時候就可以通過命令python -m autogpt 開啟你的AutoGPT之旅 !
從上圖可以看出,AutoGPT需要你為AI取一個名字[Name],一個角色定位[Role],同時你可以為它制定目標[Goals](最多5個目標,如果你僅有一個目標就直接回車)。
在你制定完成目標以后,AutoGPT會進行自主思考并分析你的目標[THOUGHTS],思考完成后開始理解并推理如何去完成這個目標[REASONING],然后開始自主拆解成具體的計劃[PLAN],最后會提出評判[CRITICISM] 用以保證 AI 代理糾正錯誤并作出正確的決斷。
完成以上的行為規劃后,AutoGPT會提示它將要作出的指令和動作[NEXT ACTION], 里面包含具體執行的命令[COMMAND]和參數[ARGUMENTS],用戶可以在此時可以對風險命令進行識別,避免出現數據泄露等預期外的風險,這里可以通過y或者n進行授權或者拒絕AutoGPT接下來的指令動作。
AutoGPT會通過以上步驟,進行多次循環,由于AutoGPT可以存儲上下文和歷史經驗,所以每一次都會根據反饋結果進行更深入的思考,制定出更優的方案,最后列舉他要執行的計劃,反復嘗試和補充,直到達到你預期的目標。
AutoGPT會通過以上步驟,進行多次循環,由于AutoGPT可以存儲上下文和歷史經驗,所以每一次都會根據反饋結果進行更深入的思考,制定出更優的方案,最后列舉他要執行的計劃,反復嘗試和補充,直到達到你預期的目標。
(5)Docker使用
當然,你也可以使用docker運行 :
// 最簡單的方式就是通過docker-compose
docker-compose build auto-gpt
docker-compose run --rm auto-gpt
// 使用docker命令構建
docker build -t auto-gpt .
docker run -it --env-file=.env -v $PWD:/app auto-gpt
你可以傳遞額外的參數,例如,運行方式--gpt3only和--continuous模式:
// docker-compose
docker-compose run --rm auto-gpt --gpt3only --continuous
// docker
docker run -it --env-file=.env -v $PWD:/app --rm auto-gpt --gpt3only --continuous
6、總結
與傳統的文本生成技術相比,我們發現AutoGPT的能力進化令人震驚,它可以通過分析你的目標,自動拆解成它需要執行的任務,并在執行的過程中根據已有的經驗和決策不斷優化完善和總結,同時AutoGPT獲取信息的手段也非常豐富,它能通過搜索引擎搜索,github,網頁工具等渠道下載和提煉所需要的信息,通過本地緩存,語音轉化,圖像生成等插件能力,最終完成你所設立的目標。這種自我意識,自我迭代和更新的形態已經非常接近于電影《流浪地球》里的moss這種人工智能!
最后問題來了,這篇文章是AutoGPT自動生成的嗎?