作者 | Vasek Mlejnsky
編譯 | 言征
出品 | 51CTO技術棧(微信號:blog51cto)
構建人工智能代理很難。你將與幻覺作斗爭,讓agents智商不掉線,并引導他們使用正確的工具。
不過,方法也不難,其中一種就是賦予代理代碼執(zhí)行能力。
以下是為什么你的人工智能代理應該有一個代碼解釋器的一些原因。
一、額外技能
具有代碼解釋器的代理可以獲得諸如對CSV文件執(zhí)行統(tǒng)計分析或繪制圖表之類的功能。
當你向不同的代理請求相同的東西時,很明顯,那些具有底層代碼解釋器的代理有多大的不同。如果不運行代碼,幾乎不可能完成以下任務:
- 分析NVIDIA的股票并預測其發(fā)展。
- 和人一起玩撲克游戲。
- 訂一張機票。
我們先來看一下Perplexity(一個沒有代碼解釋器的代理)如何處理數(shù)據(jù)分析任務。即使提供了數(shù)據(jù)文件,代理也無法完成任務——它所能做的最好的事情就是提供關于應該運行什么代碼的建議。
圖片
以下是帶有底層代碼解釋器的ChatGPT將如何處理相同的任務…
圖片
…還包括安裝新軟件包和生成圖表。
圖片
請注意,最終用戶不需要意識到應用程序在幕后執(zhí)行編碼任務,因為主要目標(如“為我預訂航班”)通常不圍繞編碼。
二、復雜推理
大型語言模型(LLM)擅長生成文本,但難以進行推理和復雜思考。
谷歌的團隊對丹尼爾·卡尼曼的名著《思考,快與慢》進行了有趣的類比。執(zhí)行代碼的能力使代理具有慢思考(努力、邏輯和計算)與快思考(直覺和自動)的能力,并通過代理在沒有代碼解釋器的情況下的行為來表示。
在他們的類比中,完全依賴LLM的代理可以被認為是在沒有慢思考的情況下操作,即在沒有深入思考的情況下來快速生成文本。下面是一個例子,說明即使是簡單的任務也可能需要一些系統(tǒng),而不能憑直覺回答。
圖片
三、減少LLM幻覺
最近的一篇論文證實,即使在給出推理提示的情況下,LLM也會對多步驟任務產生幻覺。作為論文研究結果的后續(xù),一位軟件工程師展示了使用代碼解釋器式LLM引擎如何成功地將幻覺減少一個數(shù)量級。他發(fā)現(xiàn),代碼解釋器可以將GPT-4幻覺率從<10%降低到<1%。
代碼解釋器可以處理上傳和下載,編寫代碼從源文件中查找數(shù)據(jù)并得出結論,而不是像更簡單的代理通常那樣自由推理。
對抗LLM幻覺的其他方法包括RAG、微調和增加LLM上下文窗口的大小。
四、自己測試代碼
另一個巨大的挑戰(zhàn)是LLM代碼的生成。當代理不僅可以生成代碼,還可以在運行代碼時,它就能夠測試自己輸出的功能并對其進行迭代。
五、使用代碼解釋器構建
作為圍繞LLM構建的新生態(tài)系統(tǒng)的一部分,我們將看到代碼解釋器為更多的人工智能代理和應用程序提供動力,在LLM中,代碼解釋器代表了代理大腦的關鍵部分。有關構建的靈感,不妨參閱流行的開源產品,如Open Interpreter或AutoGen。
圖片
當然,仍然有一些挑戰(zhàn)需要克服,例如找到一種安全和最佳的方式來運行LLM生成的代碼,這可以通過在獨立的云環(huán)境中執(zhí)行進程來解決。