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