在智能體開發中——怎么提升智能體的泛化能力? 原創
“ 智能體的測試和優化,需要根據不同的環境,根據問題不斷地進行調整。”
最近幾天在測試和優化問答系統,看過之前文章的讀者應該都知道最近的RAG系統從被動式RAG改造為主動式RAG,也就是智能體系統。
但是在最近幾天的測試中又發現了一些問題,因此需要對智能體進行一些優化;而最主要的問題就是智能體的泛化問題和擬合問題。
智能體的優化
在最近的智能體系統開發中,作者發現了一個問題,事實上實現一個智能體并不難,也沒想象中的那么復雜;但難的是把智能體給做出來和把智能體給做好,這是兩回事。
至于原因還是因為大模型的問題,由于大模型是通過自然語言與人類進行交互,因此它需要通過自然語言理解人的意思,但我們都知道語言本身就存在很多歧義;再加上大模型本身的不穩定性,這個問題就會被無限放大。
而這就是大模型中最典型的問題——過擬合和欠擬合。

不論是模型的預訓練過程,還是模型的使用問題,都會存在過擬合和欠擬合問題;模型訓練的數據質量會導致這兩個問題,而模型應用中的提示詞也會導致這個問題。
所謂的過擬合就是數據集限定范圍太嚴格,就會導致模型的泛化能力不足;而數據集太分散又會導致模型欠擬合,最終變成了四不像。
以作者目前遇到的問題為例,由于智能體本身比較簡單,只有兩個檢索工具,而且兩者之間并沒有特別重合的地方;因此智能體在大部分場景下運行的都挺好。
但有些問題智能體就會出現泛化能力不足的問題,比如說一些約定俗成的短語或口頭語;比如說我想要查一下浙江省的社保情況,你說這時我想查的是浙江省政府的數據,還是浙江省所有市縣區的數據?
所以說,遇到這種情況應該怎么辦?
說到底出現這種情況本身就是我們在提示詞中描述的不清楚,才導致模型不太理解我們到底想干什么;因此,我們需要在提示詞中增加一些特殊說明和案例。
比如說我想要浙江省全省數據就是指下轄所有的市縣區,而如果只是說浙江省就是指省政府的數據。

但是,這里還有一個注意點,就是這個提示應該加到哪里?
智能體本質上就是模型+工具+提示詞的集合;而工具描述本身也屬于提示詞的一部分,但這段描述加在系統提示詞中(system prompt)和加在工具的描述中可能會產生不一樣的效果。
所以,智能體的調試本質上還是提示詞工程的能力,提示詞寫的越好,越標準,歧義越少;那么你的智能體就會比別人的智能體強,比別人的智能體更穩定。
但這種問題又沒有統一的解決辦法,只能進行不斷的測試和調整;畢竟從理論上來說,同一個模型的同一個版本,部署在不同的機器上可能效果都不一樣。
本文轉載自??AI探索時代?? 作者:DFires

















