AutoGPT放棄使用向量資料庫

danny_2018發表於2023-10-12

AutoGPT 放棄使用向量資料庫,對某些人來說,可能會有些出乎意料。因為從一開始,向量資料庫就被認為可以幫助 AI 代理管理長期記憶。

是最初的想法發生了變化嗎?到底發生了哪些變化?讓我們從一些背景知識和 AutoGPT 的誕生說起。

#01

AutoGPT 的願景

AutoGPT 在 3 月 30 日釋出時,引發了 ChatGPT 熱潮的巔峰。這是一個令人震撼的 AI 專案,激發了開發者對於像 ChatGPT 這樣的 LLM 如何用於建立能夠處理複雜任務的完全自主代理的想象力。

與其反覆提示模型,不如讓一個自主代理自主工作,規劃任務,將其分解為較小的任務,並實現整個想法。

計劃非常宏偉。支持者們提出了一種基於 LLM 作為推理引擎的複雜架構,其中包括一個專注於規劃、任務管理和優先順序設定的獨立部分。這一理念包括一種以嵌入形式管理代理記憶的方式,以及一種在需要時儲存和檢索這些記憶的向量資料庫。

因此,當時似乎認為向量資料庫是整個解決方案中重要的組成部分。其他 AGI 專案也採用了相同的方法,比如 BabyAGI。

事實證明,AutoGPT 最近進行了 “向量記憶體改造”,刪除了所有向量資料庫的實現,只保留了一些負責記憶體管理的類,而 JSON 檔案成為了儲存記憶體/嵌入的預設方式。

#02

過度複雜的解決方案

Jina.AI 創始人肖涵博士曾在他的文章《Auto-GPT Unmasked: The Hype and Hard Truths of Its Production Pitfalls》中批評原始 AutoGPT 的選擇,將向量資料庫稱為 “過度複雜的解決方案”。

這一觀察實際上非常簡單:

假設 LLM 需要 10 秒來生成一個完成的任務 —— 這是要儲存的單個新記憶體。當你積累到 100,000 個這樣的記憶體時,所需時間為:100,000 * 10 秒 = 1,000,000 秒 ≈ 11.57 天。

現在,即使使用最簡單的蠻力演算法,比如 Numpy 的點乘查詢,也可能只需要幾秒鐘就完成 —— 這種最佳化完全不值得!你根本不需要近似最近鄰搜尋,更不用說向量資料庫了。

關於重新引入向量資料庫,目前有一場正在進行的討論,作者提到這並不是他們目前的重點,尤其是他們並沒有看到任何附加價值。

過度設計

作為工程師,我們常常會對炒作產生興趣。我們沉迷於學習新事物並構建複雜的、全能的解決方案。不出意外,AutoGPT 一開始就包括了向量資料庫。但隨著時間的推移,優秀的工程師開始關注真正重要的事情。炒作已經過去,現在需要為實際使用者提供價值,這時複雜性就成為了我們的敵人。

#03

多代理協作

目前,另一個重要變革正在發生,即引入多個代理,它們高度專業化,以任務為導向,具有自己的記憶和責任,彼此合作。

事實證明,採用一刀切的方法,讓一個全知全能的代理處理所有任務,表現並不出色。

以任務為導向的代理可以獲得某個任務的示例,並透過上下文學習來更自然地執行任務。這也將限制提示的長度 —— 最近的研究表明,LLM 傾向於忽略提示中間的部分。

示例工作流程

多代理方法的一個示例可能是 GPT Pilot。它旨在建立多個代理,對應於軟體開發公司中已知的角色:產品負責人、程式設計師、DevOps、架構師等。下面是 GPT Pilot 建立應用程式的步驟:

GPT Pilot 也不使用任何向量資料庫。編碼工具通常使用不同的方法來獲取相關上下文,例如 GitHub Copilot 的演算法透過檢視最近使用的檔案或開啟的標籤頁中的程式碼來實現。

從稍有不同的角度看,對於類似 AutoGPT 的專案,有兩種選擇:

通用代理,針對每個不同的任務替換其思維

高度專業化的代理,具有自己的短期記憶,專門針對特定任務

第二個選項似乎更有可能在特定任務上實現更高的準確性,提示和代理的身份也可以更精確地描述如何解決問題。

#04

搜尋代理

自主代理可以使用各種我們提供的工具。它們可以使用 Google 來查詢網路上的相關資訊,也可以使用計算器,甚至編寫和執行程式碼來解決特定任務。

與其獲取相關的記憶,為什麼不直接使用常規搜尋來查詢重要資訊、以前的筆記呢?

搜尋可以是一種抽象的概念,可以是關鍵字搜尋、向量搜尋或混合搜尋,關鍵在於代理可以以不同的方式多次查詢,直到找到所需的資訊或得出資訊不存在的結論。

#05

簡而言之

AutoGPT 決定放棄向量資料庫是朝著正確方向邁出的一步,專注於提供價值而不只是考慮技術。

編碼助手,如 GPT Engineer、GPT Pilot,甚至 GitHub Copilot,並沒使用向量資料庫,而是透過檢視檔案的最近使用情況、在檔案系統中的接近度,或查詢特定類別或函式的引用來找到相關上下文。

BabyAGI 仍然假定將記憶儲存在向量資料庫中,但似乎沒有太多更新,原始作者決定將演算法保持簡單,作為其他專案的示例或基礎。

複雜性是開發人員的最大敵人。

未來會發生什麼?

向量資料庫會被重新引入 AutoGPT 嗎?

向量資料庫實際上是否是 AI 革命的重要組成部分?還是 Pinecone 的願景成為 AI 的長期記憶只會被認為是一句空口號?

有人認為真正的問題在於像 AutoGPT 這樣的專案並沒有提供真正的價值,發揮這些專案的價值可能還需要幾年時間。

再次強調,時間證明一切。

來自 “ 分散式實驗室 ”, 原文作者:張偉;原文連結:https://mp.weixin.qq.com/s/f073hbmj3aMZFo78QvG8Jw,如有侵權,請聯絡管理員刪除。

相關文章