智能體開發(fā)需要在靈活性和穩(wěn)定性之間做出抉擇 原創(chuàng)
“ 智能體開發(fā)在穩(wěn)定性和靈活性之間必須做出一個(gè)選擇。”
在前面幾篇文章中介紹了人工智能應(yīng)用中大模型所扮演的角色,以及提示詞在其中的重要性和作用;但在之前的文章也介紹過智能體,工作流之間的關(guān)系,我們今天討論的就是智能體實(shí)現(xiàn)過程中,怎么兼顧靈活性和穩(wěn)定性,以及為什么會有工作流的存在。
智能體的靈活性和穩(wěn)定性
關(guān)于智能體的實(shí)現(xiàn)或者說關(guān)于大模型應(yīng)用的開發(fā),其核心都是圍繞大模型所展開;但大模型有一個(gè)很大的問題就是其輸出不穩(wěn)定,因此這也成為智能體開發(fā)過程中無法避免的一個(gè)問題。
畢竟不能因噎廢食,不能因?yàn)榇竽P洼敵霾环€(wěn)定就不做智能體了;因此我們需要找一些解決方案來解決這個(gè)問題;而其中比較簡單的解決方案就是把復(fù)雜的智能體拆分成一個(gè)個(gè)小模塊,以局部最優(yōu)解的思路達(dá)到全局最優(yōu)解。
但拆分之后的小模塊怎么串聯(lián)起來呢?使用硬編碼還是使用工作流,或者是其它方式?
從靈活性的角度來說,基于大模型構(gòu)建智能體我們應(yīng)該把所有的功能模塊都交給大模型進(jìn)行處理和調(diào)度,盡量弱化人類在其中的作用;但由于大模型的不穩(wěn)定性,就間接導(dǎo)致智能體的不穩(wěn)定性,特別是調(diào)用鏈路比較長時(shí);局部的不穩(wěn)定性就會隨著鏈路被無限放大。
因此,這時(shí)工作流的作用就體現(xiàn)了;通過工作流,可以把智能體的不同模塊串聯(lián)起來,在其中需要人為決策或者容易出現(xiàn)問題的地方,交由人類介入處理;這樣通過人為干涉就可以進(jìn)來保證智能體運(yùn)行的穩(wěn)定性。
但這里就存在一個(gè)問題,在一些固定場景中使用工作流是沒有問題的,但如果在變化比較大的場景中或者業(yè)務(wù)比較復(fù)雜的場景中,工作流可能就不那么好用了,這時(shí)可能靈活性更重要。
因此,面對這種問題時(shí)應(yīng)該怎么處理?
是應(yīng)該為了保證靈活性而放棄穩(wěn)定性,亦或者是為了保證穩(wěn)定性而放棄靈活性。
我想,這對很多人或者很多場景來說都是一個(gè)兩難的抉擇;穩(wěn)定性意味著相對簡單,但擴(kuò)展性差,靈活性意味著復(fù)雜,穩(wěn)定性差;而從成本的角度來看,穩(wěn)定性需要根據(jù)不同的場景開發(fā)不同的智能體,而靈活性由于其功能比較復(fù)雜,其技術(shù)開發(fā)成本高。
以我們自己公司的數(shù)據(jù)分析智能體為例,使用工作流和硬編碼的方式可以解決數(shù)據(jù)分析的準(zhǔn)確率問題;但在產(chǎn)品開發(fā)過程中,其靈活性下降需要根據(jù)不同的場景開發(fā)不同的功能。而我們公司目前由于產(chǎn)品的業(yè)務(wù)場景較復(fù)雜,更多的需要的確實(shí)靈活性,但在前面的介紹中也說明了,靈活性會導(dǎo)致智能體的輸出不穩(wěn)定,一個(gè)小錯(cuò)誤會被無限的放大。
所以,在真實(shí)的開發(fā)場景中,到底應(yīng)該選擇穩(wěn)定性,還是選擇靈活性;需要根據(jù)自己的業(yè)務(wù)需求做抉擇,而其更像魚和熊掌,兩者不可兼得。
但兩者卻可以合作,在一些比較重要的場景中,我們可以選擇穩(wěn)定性較高的開發(fā)方式;而在一些非核心業(yè)務(wù)中,可以使用靈活性更高的開發(fā)方式。
本文轉(zhuǎn)載自??AI探索時(shí)代?? 作者:DFires
