關(guān)于智能體Agent的實(shí)現(xiàn)技術(shù)之思維鏈和函數(shù)調(diào)用(function call)的思考 原創(chuàng)
“ 智能體是未來人工智能的一個(gè)重要應(yīng)用技術(shù),而其難點(diǎn)就在于怎么讓大模型具備更好的獨(dú)立思考和任務(wù)拆解與規(guī)劃的能力?!?/strong>
Agent技術(shù)也被業(yè)界稱為智能體技術(shù),本質(zhì)上是使得大模型具備獨(dú)立思考和解決問題的能力;被廣泛應(yīng)用于各種應(yīng)用場景,而且也被稱為是實(shí)現(xiàn)通用人工智能的一種技術(shù)手段。
但在此之前對于智能體的理解比較膚淺,而今天突然發(fā)現(xiàn)原來智能體沒我們想象中的那么簡單,也沒想象中的那么復(fù)雜。
今天我們就從Agent的兩個(gè)實(shí)現(xiàn)技術(shù)之思維鏈和函數(shù)調(diào)用來重新理解智能體。
智能體和思維鏈以及函數(shù)調(diào)用
在之前對于智能體的理解僅僅停留在問題表面,那就是可以使用思維鏈技術(shù)?函數(shù)調(diào)用的方式實(shí)現(xiàn)一個(gè)智能體;但沒有真正理解什么是智能體,也沒有真正理解思維鏈技術(shù)和函數(shù)調(diào)用技術(shù),甚至很多時(shí)候把它們混為一談。
今天我們來更加深入的理解一下智能體,思維鏈和函數(shù)調(diào)用這三個(gè)概念,以及其中的區(qū)別與聯(lián)系。
智能體
首先在關(guān)于智能體的概念有一個(gè)經(jīng)典的結(jié)構(gòu)圖,如下圖所示,智能體具備工具,記憶,規(guī)劃和行動(dòng)的能力。
其實(shí)從本質(zhì)上來說,就是讓智能體能夠像真正的人類一樣去處理問題,具備獨(dú)立思考,使用工具并付諸行動(dòng)的能力;而由于大模型不具備記憶的能力,因此記憶也是智能體中很重要的一環(huán)。
所以簡單來說,就是智能體就是讓基于大模型構(gòu)建的具有獨(dú)立思考和規(guī)劃并且能夠調(diào)用外部攻擊去執(zhí)行任務(wù)的一個(gè)集合體。
所以,我們不要被表象所迷惑,智能體沒有任何標(biāo)準(zhǔn)的形態(tài),也沒有任何標(biāo)準(zhǔn)的形式,其實(shí)現(xiàn)過程也是千奇百怪;而目的只有一個(gè),那就是能夠獨(dú)立解決問題,即使僅僅只是某個(gè)領(lǐng)域內(nèi)的問題。
但大模型怎么才能具備思考能力,以及調(diào)用外部工具的能力呢?
這就用到了以下兩種技術(shù),思維鏈和函數(shù)調(diào)用。
思維鏈?zhǔn)沟么竽P途邆洫?dú)立思考的能力,而函數(shù)調(diào)用使得大模型具備使用外部工具的能力;要知道人和動(dòng)物的根本區(qū)別就是是否會(huì)制造和使用工具。
思維鏈技術(shù)
思維鏈技術(shù)說起來很高大上,其實(shí)簡單來說就是我們平常面對復(fù)雜問題的拆解和規(guī)劃能力。
思維鏈?zhǔn)侵改P驮诮鉀Q問題時(shí),通過生成中間推理步驟(類似于人類的思考過程)來逐步推導(dǎo)出最終答案。這種方法特別適合解決復(fù)雜問題,如數(shù)學(xué)題、邏輯推理等。
面對復(fù)雜的問題,我們一般不可能做到一步到位,因此常見的做法就是把問題拆解成多個(gè)具備可行性的子任務(wù),然后一步一步地去完成。
而這就是思維鏈技術(shù)產(chǎn)生的基本思想,而具體操作起來還有zero-shot和few-shot等,也就是零樣本提示和少量樣本提示。
而目的只有一個(gè),就是讓大模型能夠更好地推理和拆解任務(wù)。
當(dāng)然,思維鏈技術(shù)經(jīng)過這幾年的發(fā)展又有了新的理論和實(shí)踐,比如思維樹等;但本質(zhì)上思維鏈的目的就是獨(dú)立思考,任務(wù)拆解。
函數(shù)調(diào)用
函數(shù)調(diào)用其實(shí)是一項(xiàng)獨(dú)立的技術(shù)和大模型并沒有直接關(guān)系,而且市面上有些模型集成了函數(shù)調(diào)用的能力,而有些模型并沒有集成此能力。
而函數(shù)調(diào)用從技術(shù)的角度來說就是接口調(diào)用,只不過是讓大模型自己根據(jù)函數(shù)的定義,使用思維鏈的方式去規(guī)劃和調(diào)用相應(yīng)的函數(shù),以此來解決實(shí)際的問題。
這玩意就相當(dāng)于給大模型集成了一個(gè)網(wǎng)絡(luò)請求的功能,然后讓大模型根據(jù)具體的需求自己去選擇和組裝請求參數(shù),并解析結(jié)果。
當(dāng)然,智能體在具體的開發(fā)過程中還存在各種各樣的問題,而這也直接導(dǎo)致智能體在應(yīng)用過程中的安全性問題;比如說大模型理解偏差無法準(zhǔn)確調(diào)用相應(yīng)的函數(shù);比如查詢天氣的時(shí)候,調(diào)了一個(gè)地圖函數(shù)接口。
智能體技術(shù)是人工智能技術(shù)應(yīng)用的一個(gè)重要方向,但由于大模型意圖識別不準(zhǔn)確的問題,也給智能體的應(yīng)用帶來了很大的技術(shù)挑戰(zhàn);雖然說一些模型服務(wù)商提供了一些解決方案,但具體來說還是擁有一些潛在的風(fēng)險(xiǎn)。
當(dāng)然,智能體不僅僅只依靠思維鏈和函數(shù)調(diào)用技術(shù),還有一些其它技術(shù)的使用;如工作流,通過配置工作流的方式來降低模型犯錯(cuò)的概率;典型的就是字節(jié)跳動(dòng)的coze扣子平臺。
扣子地址:
https://www.coze.cn/open/docs/guides
最后再遺留一個(gè)問題,讓大家思考一下。思維鏈技術(shù)是怎么實(shí)現(xiàn)的,它和NLP有直接關(guān)系嗎?如果有其關(guān)系是什么?與神經(jīng)網(wǎng)絡(luò)又有什么關(guān)系?以及大模型是怎么具備函數(shù)調(diào)用能力的呢?
所以,你現(xiàn)在理解NLP,神經(jīng)網(wǎng)絡(luò),思維鏈,函數(shù)調(diào)用和Agent 智能體的聯(lián)系和區(qū)別了嗎?
本文轉(zhuǎn)載自公眾號AI探索時(shí)代 作者:DFires
