什麼是AI智慧體?
本文探討了AI智慧體的定義,提出智慧體是一個使用LLM決定應用控制流的系統。作者贊同Andrew Ng的觀點,認為智慧體能力是一個頻譜,並介紹了“智慧體化”的概念及其在開發、執行、評估和監控中的意義。
什麼是AI智慧體?
“什麼是智慧體?”這是我幾乎每天都會遇到的問題。在LangChain,我們構建工具幫助開發者開發LLM應用,尤其是那些作為推理引擎並與外部資料和計算互動的應用。這包括通常稱為“智慧體”的系統。
每個人對AI智慧體的定義都略有不同。我的定義可能比大多數更技術性:AI智慧體是一個使用LLM決定應用控制流的系統。
即使如此,我承認我的定義並不完美。人們通常認為智慧體是先進的、自主的、像人一樣的——但一個簡單的系統,其中LLM在兩條不同路徑之間進行路由,又該如何看待?這符合我的技術定義,但不符合人們對智慧體能力的普遍認知。準確定義智慧體很難!
這就是為什麼我喜歡Andrew Ng上週的推文。他建議“與其爭論哪些工作應該被包括或排除為真正的AI智慧體,不如承認系統可以有不同程度的智慧體化。”就像自動駕駛汽車有不同級別的自動駕駛能力一樣,我們也可以將AI智慧體的能力視為一個頻譜。我非常贊同這個觀點,並認為Andrew表達得很好。未來,當被問及什麼是智慧體時,我會轉而討論“智慧體化”的含義。
智慧體化意味著什麼?
去年我做了一個關於LLM系統的TED演講,使用了下面的幻燈片來討論LLM應用中不同級別的自主性。
一個系統越“智慧體化”,LLM決定系統行為的程度就越高。
使用LLM將輸入路由到特定下游工作流具有少量的“智慧體化”行為。這屬於上圖中的“路由器”類別。
如果你使用多個LLM進行多個路由步驟呢?這介於“路由器”和“狀態機”之間。
如果其中一個步驟是決定繼續還是結束——實際上允許系統迴圈執行直到完成?這屬於“狀態機”。
如果系統正在構建工具、記住這些工具並在後續步驟中使用?這類似於Voyager論文的實現,具有極高的智慧體化程度,屬於更高階的“自主智慧體”類別。
這些“智慧體化”的定義仍然相當技術性。我更喜歡更技術性的定義,因為我認為它在設計和描述LLM系統時很有用。
為什麼“智慧體化”是一個有用的概念?
與所有概念一樣,值得問為什麼我們需要“智慧體化”這個概念。它有什麼幫助?
瞭解系統的智慧體化程度可以指導你在開發過程中的決策——包括構建、執行、互動、評估甚至監控。
系統的智慧體化程度越高,編排框架的幫助就越大。如果你正在設計複雜的智慧體系統,擁有一個具有正確抽象概念(用於思考這些概念)的框架可以實現更快的開發。這個框架應該對分支邏輯和迴圈提供一流支援。
系統的智慧體化程度越高,執行起來就越困難。它將越來越複雜,有些任務需要很長時間才能完成。這意味著你會希望將作業作為後臺執行來執行。這也意味著你需要持久執行來處理中途發生的任何錯誤。
系統的智慧體化程度越高,你就越希望在執行時與之互動。你需要能夠觀察內部發生的事情,因為確切的步驟可能事先未知。你還需要能夠在特定時間點修改智慧體的狀態或指令,以便在其偏離預期路徑時將其拉回正軌。
系統的智慧體化程度越高,你就越需要為這類應用構建的評估框架。你會希望多次執行評估,因為存在累積的隨機性。你還需要能夠不僅測試最終輸出,還測試中間步驟,以測試智慧體行為的效率。
系統的智慧體化程度越高,你就越需要一種新型的監控框架。你需要能夠深入檢視智慧體採取的所有步驟。還需要能夠基於智慧體採取的步驟查詢執行記錄。
理解和利用系統中智慧體能力的頻譜可以提高開發過程的效率和健壯性。
智慧體化是新事物
我經常思考的是,在這場熱潮中,什麼是真正的新事物?我們需要為人們正在構建的LLM應用提供新的工具和基礎設施嗎?還是LLM之前的通用工具和基礎設施就足夠了?
在我看來,你的應用越智慧體化,擁有新工具和基礎設施就越關鍵。這正是推動我們構建LangGraph(智慧體編排器,幫助構建、執行和與智慧體互動)和LangSmith(LLM應用的測試和可觀測性平臺)的動機。隨著我們在智慧體頻譜上走得更遠,整個支援性工具生態系統都需要重新構想。
看看你的智慧體到底在做什麼
LangSmith,我們的智慧體工程平臺,幫助開發者除錯每個智慧體決策、評估變更並一鍵部署。
嘗試LangSmith 獲取演示