99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

臺大李宏毅2025 AI Agent新課來了!

0
分享至

來源:DataWhale

作者:臺灣大學 李宏毅

編者按:本文是臺大教授李宏毅講授AI Agent的爆火油管視頻的文字稿。內容層層遞進,是學習和理解AI Agent難得的好教材。由于原視頻較長,為方便訂閱讀者們高效學習,智能超參數特地整理出來這節課的文字實錄。建議先收藏,再反復學習。以下,enjoy:


視頻鏈接:

https://www.youtube.com/watch?v=M2Yg1kwPpts

PPT鏈接:

https://docs.google.com/presentation/d/1kTxukwlmx2Sc9H7aGPTiNiPdk4zN_NoH

今天我們要講的是AI agent,這是一個現在非常熱門的話題。在課程開始之前,先講一個免責聲明,我知道你在各個地方可能都聽過AI agent這個詞匯,它是一個被廣泛應用的詞匯,每個人心里想的AI agent可能都不一樣。

我們要講的AI agent是什么呢?

今天我們使用AI的方式,通常是人類給一個明確的指令,你問AI說AI agent的翻譯是什么?那AI按照你的口令,一個口令,一個動作,把你要求的翻譯翻譯出來,它也不會再做更多的事情了。


AI agent的意思是說,人類不提供明確的行為或步驟的指示,人類只給AI目標,至于怎么達成目標,AI要自己想辦法。比如,你給AI某一個研究的議題,那你期待一個AI agent就應該能夠自己提出假設,設計實驗,進行實驗,分析結果。如果分析出來的結果跟假設不符合,要回頭去修正假設。

通常你期待AI agent要要達成的目標需要通過多個步驟,跟環境做很復雜的互動才能夠完成。而環境會有一些不可預測的地方,所以AI agent還要能夠做到靈活地根據現在的狀況來調整計劃。

AI agent是怎樣做到人類給予一個目標,用多個步驟來完成目標的呢?我們可以把AI agent背后運作的過程簡化成以下這張幻燈片。


AI agent的第一個輸入是一個目標,這個目標是人給定的。接下來,AI agent會觀察目前的狀況,我們叫做observation。AI agent會看目前的狀況,分析目前的狀況,決定要采取什么樣的行動。今天這個AI agent做的事情,叫做action。它執行個action以后,會影響環境的狀態,會看到不一樣的observation。看到不一樣的observation,就會執行不同的action。這個步驟會一直循環,直到AI agent達成我們要他達成的目標為止。


講到這里,你可能還會覺得非常的抽象,那我們可以用下圍棋來舉例。大家非常熟悉AlphaGo,它其實也可以看作是一個AI agent。這個AI agent的目標是下棋要贏,它的observation是現在棋盤上黑子跟白子的位置,現在棋盤上的盤勢,可以采取的action就是在棋盤上的19x19路的范圍中選擇一個可以落子的位置。選擇完可以落子的位置,他落下一次以后,會改變它對手的輸出。你的對手會落下另外一次子,那會改變它觀察到的observation,那它就要采取下一個action。

所以AlphaGo是一個AI agent。它背后運作的原理,大家其實或多或少也都已經聽過。如果你有上過任何基礎的 reinforcement learning RL(強化學習)的課程,往往都是用這樣方式來開場的。


為什么呢,因為過去要打造AI agent的時候,往往覺得就是要通過RL的算法來打造AI agent。

那怎么通過RL的算法來打造AI agent呢?RL這個算法就是它可以讓一個agent 去maximize reward。所以你要把你的目標轉換成一個叫做reward的東西。這個reward是人定義的,越接近你的目標reward就越大。

如果在下圍棋里面,通常就會設定贏棋reward就是正一,輸棋reward就是負一。然后訓練的那個AI agent就會學習去maximize reward,通過RL的算法。

但是通過RL算法的局限是,你需要為每一個任務都用RL的算法訓練一個模型。AlphaGo在經過了大量訓練以后,可以下圍棋,但并不代表他可以下其他的棋類,比如西洋棋或將棋。

我知道你可能看過一篇文章,AlphaZero除了圍棋外也可以下將棋和西洋棋,那是另外訓練后的結果。能夠下將棋的那個模型,并不是原來可以下圍棋的那個AlphaGo,它們是不同的模型,有不同的參數。


今天AI Agent又再次被討論,是因為人們有了新的想法——我們能不能夠直接把Large Language Model,把LLM直接當成一個AI Agent來使用呢?也就是說我們的Agent背后,就是個Language Model。

你要告訴它你的目標是什么的時候,直接用文字輸入,要告訴他下圍棋,就先給他圍棋的規則,然后跟他說你的目標就是贏得勝利。那接下來環境,因為一般語言模型是用文字作為輸入,所以你可能需要把環境轉化為文字的描述。

不過我寫了一個option,今天有很多語言模型都是可以直接看圖片的,所以把環境轉化為文字的描述,今天也不一定是必要的。那接下來語言模型要產生action,那產生action的方式,可能就是用一段文字來決定它的action是什么。它的action用一段文字來描述,那我們需要把那段文字轉譯成真正可以執行的行動,然后就會改變環境,看到不一樣的observation,然后AI agent的運作就可以持續下去,直到達成目標。


今天AI agent再次爆紅,并不是真的有了什么跟AI agent本身相關的新技術,而是在LLM變強之后,人們開始想,我們能不能直接用large language model來實踐人類擁有一個agent的渴望。

我們還是拿下棋做例子。也許你就會很好奇說,現在的語言模型能不能夠下棋呢?其實早就有人嘗試過了。

有一個在語言模型領域很多人使用的benchmark叫做Big-Bench。它是什么時候做的呢?它是2022年“上古時代”做的。以后有ChatGPT之前,我們都叫“上古時代”。然后在2022年上古時代的時候,就有人嘗試過用那個時候的語言模型下西洋棋。

那時候語言模型沒有能力真的看圖,所以你需要把棋盤上黑子和白子的位置轉成文字的描述,輸入給這個語言模型。


這個就是語言模型實際上看到的棋盤的樣子。下一步要下哪里,才能給對方將軍呢?那語言模型就會給你一個答案。

右上角這個圖,橙色的線是正確答案,綠色的線是當時各個不同的語言模型所給的答案。沒有任何一個語言模型給出正確的答案。

雖然沒有任何語言模型給出正確的答案,但你可以看到,當時比較強的模型所選擇走的路是符合西洋棋規則的。但是也有很多比較弱的模型,這個虛線代表比較弱的模型,它們都是亂走的,根本搞不懂西洋棋的規則。不過這個是“上古時代”的事情了。


現在更強的LLM能不能下西洋棋呢?有人試過了。有一個很知名的視頻是直接拿ChatGPT o1跟DeepSeek-R1兩個模型來下西洋棋。那這是一場驚天動地的對決,有幾百萬人觀看這個視頻。

這兩個模型殺的難分難解,難分難解是因為他們實在是太弱了,有很多不符合西洋棋規則的動作,比如把兵當作馬來用,或者是他的那個主教可以無視前面的一切阻擋,或者是他突然空降一個自己的子在對方的陣地里面,把對方的子吃掉。然后DeepSeek還在自己的棋盤上隨便變出一個城堡,最后DeepSeek用自己的城堡把自己的兵吃掉以后,宣布他贏了,然后ChatGPT想了一下覺得,我確實輸了,然后就投降了。這個棋局就這樣結束了。

所以看起來,現在這個最強的語言模型距離下棋還有一段距離,但這并不代表他們不能夠作為AI agent來做其他事情。


接下來我會舉一些例子,看看現在的語言模型可以做什么樣的事情。這門課最想要強調是,我們還能多做些什么,讓這些語言模型作為AI agent的時候,運作得更加順利。

剛才講的比較像是從過去常見的agent的視角,來看語言模型,怎么套用到agent的框架下。

那接下來我們換一個角度。從large language model的角度來看,當他作為一個agent的時候,他要解決的問題有什么不同。

從large language model的角度來看,首先ta得到一個目標,然后接下來得到一個observation,然后根據這個observation,決定接下來要采取什么樣的action。當它采取完動作之后,他的動作會影響外界的環境,看到新的observation。看到新的observation以后,要采取新的動作,這個過程就會再反復繼續下去。

在那一系列的過程中,看到observation采取action,看到observation采取action,其實憑借的都是語言模型原來就有的文字接龍能力。

所以從語言模型的角度來看,當我們把它當作一個 agent來使用的的時候,對它而言,所做的事情是完全沒有什么不同的,就是在繼續做他唯一會做的文字接龍而已。


所以從語言模型的角度來看,AI agent并不是一個語言模型的新技術,它比較像是一個語言模型的應用。所謂AI agent意思就是依靠現在語言模型已經有一定程度的通用能力,看看能不能夠直接把它們當作agent來使用。


因為我說的AI agent并不是語言模型的新技術,它只是一個語言模型的應用,所以要注意一下在以下課程中沒有任何的模型被訓練。我所講的東西都是依靠一個現有的語言模型的能力來達成的。


AI agent其實不是最近才熱門,一直有人在嘗試怎么讓語言模型變成一個agent,或者怎么把語言模型當作AI agent來使用。

ChatGPT在2022年年底爆紅,所以在2023年的春天就有一波AI agent的熱潮,好多人都用ChatGPT作為背后運作的語言模型來打造AI agent。那時候最有名的就是AutoGPT。

其實在2023年的機器學習課程中我們也有一堂課是講那時候的AI agent,大家看看那一堂課的AI agent跟今天講的有什么樣的差異。

不過后來2023年AI agent的熱潮,過一陣子就消退了,因為人們發現這些AI agent沒有我們想象的厲害。一開始好多網紅在吹噓這些AI agent有多強,但真正試下去也沒那么強,所以熱潮就過去了。

那用LLM來運行一個AI agent,相較于其他的方法,可能有樣什么樣的優勢呢?

過去當你運行一個agent的時候,比如說像AlphaGo,它能做的只有有限的事先設定好的行為。AlphaGo真正能做的事情就是在19x19個位置上選擇一個可以落子的位置。


但如果你的agent是一個large language model的話,它就有了近乎無限的可能。large language model可以講任何話,可以產生各式各樣近乎無窮無盡的輸出,這就讓AI agent可以采取的行動不再有局限,有更多的可能性。

舉例來說,我們等一下就會很快看到,今天這些AI agent在有些問題他解不了的時候,他可以直接呼叫一些工具,來幫忙解決本來解決不了的問題。

另外一個用large language model運行AI agent的優勢,是過去如果用reinforcement learning的方法來訓練一個AI agent,那意味著你必須定一個東西叫做reward。如果你今天要訓練一個AI programmer,那你可能會告訴AI programmer說,如果你今天寫的程序有一個compile的error,那你就得到reward:-1。

但為什么是-1?為什么不是-10?為什么不是-17.7?這種東西就是沒人說得清楚。所以這個reward在做reinforcement learning的時候就是一個要調教的東西。


今天如果是用LLM驅動的AI agent呢?你今天就不用幫它訂reward了。今天有compile error,你可以直接把compile error的log給它,他也許讀得懂那個log,可以對程序做出正確的修改。而且相較于reward只有一個數值,直接提供error的log可能提供給agent更豐富的信息,讓它更容易按照環境給的反饋,來修改它的行為。

接下來舉幾個AI agent的例子。講到AI agent,也許最知名的例子就是用AI村民所組成的一個虛擬村莊。這個虛擬村莊在2023年成立,虛擬村莊里面的NPC都是用語言模型來運行的。


這些NPC是怎么運行的呢?首先每個NPC都一個人為設定的目標,有的NPC要辦情人節派對,有的NPC要準備考試,每個人都一個他自己想做的事情。這些NPC會觀察會看到環境的信息。那時候Language Model都只能讀文字,所以環境的信息需要用文字來表示。


環境的信息對一個語言模型來說,看起來可能就是,有一個叫做Eddy的人,他正在讀書,然后他看到廚房,然后他看到一個柜子,然后看到伊麗莎白正在裝飾房間等等。然后根據這些observation,這個語言模型要決定一個他想要做的行為,比如說也許不早了,所以就上床睡覺。那需要有一個轉譯器把它說出的這個行為轉成真正能夠執行的指令。那這個agent就真會走到床邊,然后去睡覺。所以這個是2023年的時候用AI來運行NPC的一個實驗。


其實后來還有更大規模的實驗,有人把Minecraft中的NPC通通換成AI的NPC。根據這個視頻描述,這些AI很厲害,他們組織了自己交易的金融體系,然后還組織了自己的政府部門,自己制定法規,自己管理自己。不確定是真的還是假的。


剛才講的那些游戲,你可能不容易接觸到,對現實世界可能也沒什么影響。

但今天也許你馬上就會接觸到的AI agent就是讓AI來真正使用電腦。雖然這個聽起來有點奇怪,AI本身也就是一個電腦,但現在要真正的像人類一樣來使用另外一個比較低端的電腦來做事。其中比較有代表性的例子就是Claude的computer use,還有ChatGPT的operator。

operator界面長這樣。它可以做的事情,比如說可以訂pizza,可以預約下周的居家清潔等等。


像這種使用電腦的AI agent,他的目標就是你的輸入,就是你告訴他我要去訂pizza,上網幫我買一個東西,那這就是他的目標。那他的observation呢?他的observation可能是那個電腦的屏幕畫面。

今天很多語言模型都是可以直接看圖的,所以其實可以直接把圖片當作輸入,提供給AI agent。AI agent要決定的就是要按鍵盤上哪一個鍵,或者是要用鼠標按哪一個按鈕。


其實讓AI使用電腦不是最近才開開始的。早在2017年,就有篇paper叫words of bits嘗試過使用AI agent。這個文章的標題說它是一個web-based agent。

只是那個時候能夠互動的頁面還是比較原始的頁面。你可以看到下面這些AI agent,他真正能夠處理的是比較原始的頁面。那時候也沒有大型語言模型,所以那時候的方法就是硬訓練一個CNN,直接吃屏幕畫面當作輸入,輸出就是鼠標要點的位置,或者是鍵盤要按的按鈕。看看用這個方法能不能夠讓AI agent在互聯網的世界中做事。

這個發生在2017年,甚至不能說是上古時代,這個還是有BERT以前的時代,就是史前時代。這個不只是史前時代,它比史前時代還早,所以這是舊石器時代的產物。


后來有了語言模型之后,人們就開始嘗試用語言模型來當作AI agent,來運行一個agent,讓它在互聯網的世界中活動。

這一頁幻燈片是列舉了幾個比較具代表性的例子。那一波潮流大概是在2023年的暑假開始的,像Mind2Web、WebArena還有VisualWebArena,就跟今天的operator非常的像,就是給這個語言模型看一個屏幕的畫面,或者是看HTML的code,然后讓它自己決定要干什么,期待它最后可以解決一個問題。比如在Mind2Web的第一個例子里面,就給他這個畫面,然后跟它說,請它幫我們訂一個機票。


還有什么樣AI agent的應用呢?今天你可以用AI來訓練另外一個AI模型。


用AI來訓練模型,其實這個運作的過程是:你的目標是要過strong baseline,然后你提供給LLM訓練資料,它寫一個程序用這些訓練資料來訓練模型,那它可能會得到這個模型的正確率,根據正確率再重新寫一個程序,再得到新的正確率,就這樣一直運作下去。

有很多知名的用AI來訓練模型的framework,比如說AIDE。你看他的這個技術報告的標題就知道他們想做什么。它是要做一個machine learning engineer agent,用multi-agent的framework來解data science的competitions。


最近Google說他們做了一個AI,不過他們并沒有真的發布模型,也不知道說實際上做得怎么樣,因為這個服務并不是公開的。

他們說的是他們做了一個AI Coscientist,就是用AI來做研究,不過這個AI Coscientist還是蠻有局限的,不能真的做實驗,只能夠提Proposal,就是你把一些研究的想法告訴他,他把完整的Proposal規劃出來。實際上做得怎么樣,不知道,他的Blog里面有些比較夸張的案例,說什么本來人類要花十年才能夠得到研究成果,AI agent花兩天就得到了,也不知道真的還是假的。他舉的是一些生物學的例子,所以我也無法判斷他講的是不是真的,那個發現是不是真的很重要。這個AI Coscientist就是用AI agent來幫研究人員做研究。

我們剛才講的AI agent,它的互動方式是局限在回合制的互動,有一個observation,接下來執行action,有一個observation,接下來執行action。但是在更真實的情境下,這個互動是需要及時的,因為外在的環境也許是不斷在改變的。

如果你在action還沒有執行完的時候,外在環境就改變了,那應該怎么辦呢?有沒有辦法做到更及時的互動呢?

更及時的互動可能應該像是這個樣子,當模型在決定要執行action one,正在執行的過程中,突然外在環境變了,這個時候模型應該有辦法立刻轉換行動,改變他的決策,以因應外界突如其來的變化。


你可能想問什么樣的狀況,我們會需要用到這種能夠做及時互動的AI agent呢?其實語音對話就需要這種互動的模式,文字的對話使用ChatGPT是大家比較熟悉的,你輸入一段文字,他就輸出一段文字,這是一來一往回合制的互動。


但是人與人之間真正的對話不是這個樣子的。當兩個人在對話的時候,他們可能會互相打斷,或者是其中一個人在講話的時候,另外一個人可能會同時提供一些反饋,比如說;嗯,好,你說的都對。

這些反饋可能沒有什么特別語意上的含義,他只是想要告訴對方我有在聽。但是像這樣的反饋,對于流暢的交流來說,也是非常重要的。如果在講電話的時候對方完全沒有反應,你會懷疑他到底有沒有在聽。

所以我們今天能不能夠讓AI在跟使用者互動的時候,用語音互動的時候,就跟人與人間的互動一樣,而不是一來一往回合制的互動呢?其實也不是不可能的,今天GPT-4o的一個Voice Mode,高級語音模式,也許在某種程度上就做到了這種及時的互動。


那這個幻燈片上是舉一個例子,假設有人跟AI說你說一個故事,那這個是AI觀察到的第一個observation,有人叫他說一個故事,現在就開始講故事了,他就說從前從前,這時候人說了一個好,這個可能是第二個observation,但AI要知道說這個observation不需要改變他的行為,跟他的行為沒有直接的關系,只要故事就繼續講下去。“有一個小鎮”…然后人說這個不是我要聽的故事,這個我聽過了,那AI可能要馬上知道說那這個不是人要聽的,那也許我覺得應該停下來,換另外一個故事。


今天AI有沒有辦法做到這種及時的互動呢?那怎么做這種及時的互動,非回合制的互動,就有點超過我們這門課想要講的范圍。

如果你有興趣的話,你可以讀這篇文章,這篇文章想要做的事情是評估現在這些語音模型互動的能力。那在這篇文章里面,也對現在這個可以互動的語音模型做了一個比較完整的survey,是一直survey到今年的1月。所以你可以看這篇文章,知道說現在這些可以互動的模型,他可以做到什么樣的地步。


那接下來呢,我們會分三個方面來剖析今天這些AI agent的關鍵能力。

那第一個方面是我們要來看這些AI agent能不能夠根據它的經驗,通過過去的互動中所獲得的經驗來調整他的行為。第二部分是要講這些AI agent如何呼叫外部的援助,如何使用工具。第三部分要講AI agent能不能夠執行計劃,能不能做計劃。


AI怎么根據過去的經驗或者是環境的反饋來調整他的行為。

AI agent需要能夠根據經驗來調整行為,比如說有一個作為AI programmer的AI agent,他一開始接到一個任務,他寫了一個程序,那這個程序compile以后有錯誤信息,compile以后有error,那應該要怎么辦呢?他應該要能夠根據這個error的message來修正他之后寫的程序。

在過去,講到說收到一個feedback接下來要做什么的時候,也許多數機器學習的課程都是告訴你來調整參數,根據這些收集到的訓練資料,也許使用reinforcement learning的algorithm來調整參數。


但不要忘了我們剛才就強調過,在這堂課里面,沒有任何模型被訓練,所以今天不走這個路線。

不更新模型的參數,模型要怎么改變它的行為呢?依照今天Large Language Model的能力,要改變它的行為,你也不用微調參數,直接把錯誤的訊息給他,他接下來寫的程序就會不一樣了,就結束了。


那可能會問說,那之前他寫的程序是錯的,為什么給錯誤訊息,他寫的程序就對了呢?明明就是同一個模型,但你想想看,模型做的事情就是文字接龍。你給他不同的輸入,他接出來的東西就不一樣。


一開始會寫錯的程序,是因為他前面要接的部分只有這么多,所以寫個錯的程序。當今天要接的內容包含了錯誤的訊息的時候,它接出來的結果可能就會是正確的了。


今天已經有太多的證據說明,這些語言模型可以根據你給他的反饋改變他的行為,不需要調整參數。如果你有使用這些語言模型的經驗,你也不會懷疑他們有根據你的反饋調整行為的能力。


這真正的問題是,如果我們把過去所有的經驗都存起來,要改變語言模型的行為,要讓它根據過去的經驗調整行為,就是把過去所有發生的事情一股腦給它,那就好像是語言模型每次做一次決策的時候,他都要回憶它一生的經歷。也許在第100步的時候還行,到第1萬步的時候,過去的經驗太長了,它的人生的信息已經太多了,也許沒有足夠的算力來回顧一生的信息,就沒有辦法得到正確的答案。


這讓我想到有些人有超長自傳式記憶,他可以把他一生中所有發生的事情記下來,然后那些人,你可以隨便問他一個某個人的電話號碼,他都會背出來,你告訴他某年某日某時發生了什么事,他也都可以講出來。但這種超長自傳式記憶,又被叫做超憶癥。你看到癥這個字就知道,人們覺得這是一種疾病。據說這些患者其實日常生活并沒有辦法過得很開心,因為他們不斷的在回憶他的人生,往往一不小心就陷入了一個冗長的回憶之中,那也很難做抽象的思考,因為他的人生已經被他的記憶已經被太多知為末節的事所占據,所以沒有辦法做抽象式的思考。

所以讓一個AI agent記住它一生所有經歷的事情,告訴他每次做一個決策的時候,都是根據你一生所有經歷過的事情再去做決策,也許對AI agent來說并不是一件好事。最終當它的人生過長的時候,它沒有辦法做出正確的決策。


所以怎么辦呢?也許我們可以給這些AI agent memory,這就像是人類的長期記憶一樣,把發生過的事情存到這個memory里面。當AI agent看到第一萬個observation的時候,他不是根據所有存在memory里面的內容去決定接下來要采取什么action,而是有一個叫做read的模塊,這個read的模塊會從memory里面選擇跟現在要解決的問題有關系的經驗,把這些有關系的經驗放在observation的前面,讓模型根據這些有關系的經驗跟observation再做文字接龍,接出他應該進行的行動。你有這個read的模塊,就可以從memory里面,從長期記憶中篩選出重要的信息,讓模型只根據這些跟現在情境相關的信息來做出決策。


怎么樣打造這個read的模塊呢?其實你可以把這個read模塊想成一個retrieval的system,想成一個檢索的系統。

第一萬步看到的observation其實就是問題,模型的AI agent的memory長期記憶其實就是數據庫,那你就根據這個問題從這個數據庫里面檢索出相關的信息。這個技術跟RAG沒有什么不同,其實它就是RAG。


你可以直接把RAG的任何方法直接套用到這個地方。唯一不一樣的地方只是,如果是RAG的話,存在memory里面的東西等于整個網絡,是別人的經驗。而對AI agent而言,現在存在memory里面的東西是他自己個人的經歷。差別是經歷的來源,但是用來搜索的技術是可以完全直接嵌套RAG的技術。

如果你今天想要研究AI agent按照經驗來修改它的行為,那你可以考慮一個叫做streambench的benchmark。在streambench里面會有一系列問題,AI會依序去解這些問題,他先解第一個問題,得到第一個問題的答案,然后接下來他會得到第一個問題答案的反饋。streambench所有的問題都是有標準答案的,所以AI agent得到的反饋是唯一的,就是對或者是錯。根據它過去的經驗,它就可以修正它的行為,期待它在第二個問題的時候,可以得到更準確的答案,得到更高的正確率,然后這個過程就一直持續下去。


那假設有1000個問題的話,那就等AI agent回答完最后一個問題的時候,這個互動就結束了。最后結算一個根據經驗學習能力的好壞,根據經驗調整行為能力的好壞,那就看整個回答過程中平均的正確率。越能夠根據經驗學習的agent,它應該能夠用越少的時間,看過越少的反饋,就越快能夠增強他的能力,就可以得到比較高的平均的正確率。


這個benchmark是API的研究人員打造的一個benchmark。在這個benchmark里面的baseline就有使用到我剛才講的類似RAG的技術。


也就是說,當模型在回答第100個問題的時候,他并不是把前面第一個到第99個問題通通丟給它去做文字接龍,這樣會導致sequence太長了,一般的語言模型根本讀不了這么長的輸入。

所以實際上的做法就是需要有一個檢索的模塊,這個檢索的模塊只從過去所有的經驗中檢索出跟現在要回答的問題有關系的經驗,然后語言模型只根據這些有關系的經驗,還有現在的問題來進行回答,來產生它的行動,來產生它的答案。


那這一招有沒有用呢?這一招其實非常的有用。在這頁圖里面橫坐標,用詞是time step,但其實指的就是一個一個的問題,總共有1750幾個問題。那縱軸指的是平均的正確率。

在這個圖上面,最低的灰色線指的是假設沒有讓模型做任何學習,他回答每一個問題都是independent的,回答問題間沒有任何的關聯,他完全沒有調整他的行為,那你得到的正確率是灰色的這條線,也是最低的。

黃色這條線是說只固定隨機選五個問題,那每次模型回答問題的時候都是固定看那五個問題來回答,都是固定把五個問題當作經驗來回答,可以得到的是黃色這一條線。

如果你是用RAG的方法,從一個memory里面去挑選出最有關系的問題,選擇跟現在要解決的問題最有關系的經驗,你可以得到粉紅色的這一條線。可以看到,比黃色的線,正確率還要高上不少。最后結果最好的是紅色這條線。


在這個streambench里面還發現一個有趣的現象值得跟大家分享。這個現象是,對現階段的語言模型而言,負面的反饋基本上沒有幫助。所以你要提供給語言模型經驗,讓他能夠調整他行為的時候,給他正面的例子比給他負面的例子要好。

具體而言,提供給它過去哪些類似的問題得到正確答案,比提供給它過去哪些問題得到錯誤的答案更有效,還能更能引導模型得到正確的答案。


這是真正的實驗結果,在好幾個不同的data set上面的實驗結果。streambench里面本來就包含了好幾個不同的data set。這個縱軸呢,0代表完全沒有任何根據經驗調整行為,然后藍色代表說不管是正面還是負面的例子都用。不管正面還是負面的例子都用,在多數情況下,模型都可以表現得比較好,當然有一些例外。但是如果只用負面的例子,基本上是沒有幫助,而且甚至是有害的。如果只用正面的例子,在所有的情況下,模型可以得到更好的結果。

這也符合過去的一些研究,有人研究過使用語言模型要怎么樣比較有效,有一個發現就是與其告訴語言模型不要做什么,不如告訴他要做什么。如果你希望它文章寫短一點,你要直接跟它說寫短一點,不要告訴它不要寫太長。讓它不要寫太長,它不一定聽得懂,叫它寫短一點,比較直接,它反而比較聽得懂。這也符合這個Streambench的發現——負面的例子比較沒有效。與其給語言模型告訴他什么做錯了,不如告訴他怎么做是對的。


我們剛才還講到了一個read的模塊,那有關記憶的部分,是不是要把所有的信息存到memory里面呢?存到長期的記憶庫里面呢?如果我們把這些agent經歷的所有的事情都放到長期的記憶庫里面的話,那里面可能會充斥了一堆雞毛蒜皮不重要的小事,最終你的memory長期記憶庫也可能被塞爆。

所以怎么辦呢?也許應該有更有效的方式來決定什么樣的信息應該被記下來,應該只要記重要的信息就好。


怎么讓語言模型只記重要的信息就好呢?你可以有一個write的module,那write的module決定什么樣的信息要被填到長期的記憶庫里面,什么樣的信息干脆直接就讓他隨風而去就好了。

那怎么打造這個write的記憶庫呢?有一個很簡單的辦法就是write的模塊也是一個語言模型,甚至就是AI agent自己。這個AI agent他要做的事情就是根據他現在觀察到的東西,然后問自問一個問題,這件事有重要到應該被記下來嗎?如果有,就把它記下來,如果沒有就讓他隨風而去。


除了Read跟Write這兩個模塊以外,還有第三個模塊,我們可以暫時叫reflection反思的模塊。這個模塊的工作是對記憶中的信息做更好的,更high level的,可能是抽象的重新整理。

你可以把這些記憶里面的內容,在經過reflection的模塊重新反思之后,得到新的想法。那也許read的模塊可以根據這些新的想法來進行搜索,這樣也許可以得到更好的經驗,那幫助模型做出更好的決策。

而這個reflection模塊可能也是一個語言模型,就是AI agent自己。你可以只是把過去的這些記憶丟給reflection的模塊,然后叫reflection模塊想一想,看它從這些記憶里面能不能夠有什么樣新的發現。

比如說可能有一個observation是我喜歡的異性每天都跟我搭同一部公車,另外一個observation是他今天對我笑了,推出來的reflection模型結果就說,他喜歡我這樣。就是得到一些新的想法。


之后在做決策的時候,就可以用這些新的想法。雖然你可能沒有實際觀察到,但是它是被推論出來的,根據這些推論出來的想法來做決策。除了產生新的想法之外,也可以為以前觀察到的經驗建立經驗與經驗之間的關系,也就是建立一個knowledge graph,然后讓read的module根據這個knowledge graph來找相關的信息。

在RAG的領域使用knowledge graph現在也是一個非常常見的手法。最知名的,可能是graph RAG系列研究,就把你的數據庫變成一個knowledge graph,今天在搜索和回答問題的時候,是根據knowledge graph來搜索回答問題,可以讓RAG這件事做得更有效率,或者是另外一個非常類似的例子。


HippoRAG,這個Hippo不是指真正的海馬,他指的應該是那個海馬回,人腦中的一個結構,然后他覺得建這種knowledge graph就跟海馬回的運作非常的類似,所以他叫做HippoRAG。有一些跟graph有關系的RAG的方法,你完全可以透過reflection的模塊把經驗建成一個graph,把那一些graph RAG的手法直接套到AI agent里面。


大家可能都知道ChatGPT現在其實真的是有記憶的,所以可以感受到OpenAI想把ChatGPT變成一個AI agent的決心。

比如,我跟ChatGPT說,我周五下午要上機器學習這門課,那他就給我一個回答,說要我幫助你做什么事情嗎?接下來,我告訴他記下來,你跟他講記下來之后,他的write的模塊就啟動了。它知道這件事情是要被記下來的,他就會說我記下來了。以后你周五要上機器學習這門課,那write的模塊什么時候要啟動,是他自己決定的。


很多時候你希望他記下來的時候,他就是不啟動,或者你不希望他啟動的時候,他就是啟動,那是模型自己決定的。但是有一個方法基本上一定能讓他啟動,就明確的跟他講,把這件事記下來,基本上都能確定能夠啟動那個write的模塊,讓write的模塊把這件事情記下來。

那接下來的東西在哪里呢?你可以看在設置里面,個性化里有一個叫記憶的部分,你點管理記憶,就可以看到它透過write的模塊寫在memory里面。


這個就是它作為一個AI agent的長期記憶里面的東西。他也記得,就我剛才跟他講的,周五下午要上機器學習這門課。

但是,模型的記憶也是會出錯的,因為要寫什么樣的東西到記憶里面,是模型自己決定的。而且他并不是把對話的內容就一五一十的直接放到記憶里面,他是經過一些升華反思之后才放進去的。

所以他的反思可能會出錯,比如說他覺得我是一學生。雖然我是老師,但是它從過去的對話,誤以為我是一個學生,所以就存了一個錯誤的信息在它的記憶里面。


ChatGPT可以使用它的記憶,比如說我跟他說禮拜五下午是去玩好嗎,這個時候記憶模塊就被啟動了。但是它是怎么被啟動的,其實就不太清楚了。它到底是把所有記憶的內容通通都放到這個問題的前面,直接讓模型做回答,還是說也有做RAG,只選擇下載相關的記憶內容呢?這個我們就不得而知了。

總之當我問他說,周五下午出去玩好嗎,這個read的模塊就啟動了,他就說下午不是要上課嗎?怎么能出去玩?好聰明啊,他知道下午要上課,挺厲害的。


如果你想要知道更多有關AI Agent記憶的研究,放了幾篇經典的論文給大家參考,包括Memory GPT,這是23年的論文,Agent Workflow Memory是24年的論文,還有一個最近的Agent Memory Agent是25年的論文。所以23到25年各引用一篇,這方面的研究是持續不斷的。


接下來,我們要跟大家講,現在這些語言模型怎么使用工具。什么叫做工具呢?語言模型本身對我們人類來說也是工具,那對語言模型來說,什么東西又是它的工具呢?


所謂的工具就是這個東西,你只要知道怎么使用他就好,他內部在想什么,他內部怎么運作的,你完全不用管。這個就是工具的意思。

有哪些語言模型常用的工具呢?最常用的就是搜索引擎,然后語言模型現在會寫程序,而且可以執行他自己寫的程序,那這些程序也算是某種工具,甚至另外一個AI也可以當作是某一個AI的工具,有不同的AI,有不同的能力。

比如說現在的語言模型,如它只能夠讀文字的話,那也許可以呼叫其他看得懂圖片,聽得懂聲音的AI,來幫他處理多模態的問題。

或者是不同模型它的能力本來就不一樣,也許平常是小的模型在跟人互動,但小的模型發現它自己解不了問題的時候,它可以叫一個大哥出來,大哥是個大的模型,大的模型運作起來就比較耗費算力,所以大的模型不能常常出現,大的模型要在小的模型召喚它的時候,才出面回答問題,大哥要偶爾才出來幫小弟解決事情。


其實這些工具對語言模型來說都是function,都是一個函數。當我們說語言模型在使用某一個工具的時候,其實意思就是它在調用這些函數。它不需要知道這些函數內部是怎么運作的,它只需要知道這些函數怎么給它輸入,這些函數會給什么樣的輸出。因為使用工具就是調用函數,所以使用工具又叫做function call。


所以有一陣子很多語言模型都說他們加上了function call的功能,其實意思就是這些語言模型都有了使用工具的功能。

那語言模型怎么使用工具呢?等一下我會講一個通用的使用工具的方法,但實際上使用工具的方法很多,甚至有一些模型是專門訓練來使用工具的。

他如果是針對使用工具這件事做訓練,那他在使用工具的時候,你可能需要用特定的格式才能夠驅動他,那就不是我們今天討論的問題。我講的是一個最通用的用法,對所有的模型,今天能力比較強的模型,應該都可以使用。


什么樣的通用方法可以讓模型使用工具呢?就是直接跟他講,告訴他怎么使用工具,你就交代他可以使用工具,那你就把使用工具的指令放在兩個Tool符號的中間,使用完工具后你會得到輸出,輸出放在兩個Output符號的中間。所以他就知道工具使用的方式了。


接下來告訴他有哪一些可以用的工具,有一個函數叫做Temperature,他可以查某個地點某個時間的溫度,他的輸入就是地點跟時間。給他的使用范例 Temperature,他就會告訴你臺北在這個時間的氣溫。接下來你就把你的問題連同前面這些工具使用的方式當作Prompt一起輸入給語言模型,然后如果他需要用工具的話,他就會給你一個使用工具的指令。


前面這些教模型怎么使用工具的這些敘述,他叫做System Prompt,那查詢使用調用這些工具的這些話,比如“某年某月某日高雄氣溫如何”,這個是User Prompt。如果你有在使用這個ChatGPT的API的話,你的輸入要分成System Prompt和User Prompt。


很多同學會搞不清楚System Prompt和User Prompt有什么樣的差別,那System Prompt指的是說,你在開發應用的這個Developer下的Prompt。這個Prompt是每次都是一樣的,每次你都想放在語言模型最前面,讓他去做文字接龍的這個敘述叫做System Prompt。每次使用他的時候都不一樣,通常是這個服務的使用者輸入的內容叫做User Prompt。

在ChatGPT的API里面,特別把System Prompt跟User Prompt分開,也是要分開輸入的,因為System Prompt跟User Prompth有不同的優先級,System Prompt優先級比較高。如果System Prompt跟User Prompt有沖突的時候,模型知道他要聽System Prompt的,不要聽User Prompt的。

有了這些Prompt以后,告訴模型怎么使用工具,問他一個問題,那他發現這個問題調用工具可以回答,他就會自動輸出 Tool, Temperature、高雄、時間,然后Tool告訴你說,他想根據我們的敘述去調用這個工具。但是不要忘了語言模型真正做的事就是文字接龍,所以這一串東西實際上就是一串文字,它沒辦法真的去調用一個函數。


這一段文字要怎么去調用函數呢?那就要你自己幫模型把這個橋梁搭建好。所以你可以先設定說只要出現在Tool中間的這段文字,不要呈現給使用者看,當出現Tool這段文字以后,把這段內容直接丟給temperature這個function。那temperature這個function是已經事先設計好的,它就會回傳一個溫度。這個溫度要放在output的token里面,然后這個output token里面的內容也不要呈現給使用者看。這套腳本是agent的開發者,你自己需要先設定好的流程。


所以現在有工具使用的這段文字,有得到工具輸出的這段文字,接下來就繼續去做文字接龍。對語言模型來說,他就根據輸入還有這邊已經產生的輸出,語言模型會以為是自己的輸出,雖然是你強塞給他的,那他就繼續去做文字接龍,他就會接出來說在某年某月某日高雄的氣溫是攝氏32度。

那是使用者真正看到的輸出,使用者就會看到說他輸入了一個問題,然后語言模型真的給他一個答案。他不一定知道背后呼叫了什么樣的工具,你完全可以做一個設計,把這個呼叫工具的步驟藏起來不讓使用者知道。


語言模型最常使用的工具就是搜索引擎。我想這個大家都已經非常熟悉了,使用搜索引擎又叫做 Retrieval Augmented Generation,也就是RAG。使用搜索引擎當然非常有用,這個RAG技術已經被吹捧到不能再吹捧了,所以我就不需要再告訴你RAG這個技術有多重要。


其他使用工具的方式也可能一樣有用。舉例來說,我們剛才說可以拿其他的AI來當作工具。

今天假設一個文字的模型,它本來只能吃文字的輸入,產生文字的輸出。那現在假設你要它處理一段語音的話怎么辦呢?讓模型處理語音有什么好處呢?你就可以問他各式各樣的問題,問它說這個人在說什么,那他可以告訴你這句話的內容。問它說,這個人心情怎么樣,如果它完全聽懂這段聲音,他也許可以做情緒辨識,告訴你這個人的情緒怎樣,并做出適當的回饋。

一般的文字模型,比如說GPT,多數的模型都是文字模型,沒有辦法真正讀懂語音。所以怎么辦呢?當你問它一個問題說這邊有段聲音,你覺得這個人他心情怎么樣?他講了什么,根據背景雜性你覺得他在哪里,如果你不做特別的處理文字模型是完全沒有辦法回答的。


但你可以讓文字模型使用工具,可以告訴它這邊有一堆跟語音相關的工具,有語音辨識的工具,這個語音偵測的工具,有情緒辨識的工具,有各式各樣的工具。可能需要寫一些描述告訴他每一個工具是做什么用的,把這些資料都丟給ChatGPT,然后他就自己寫一段程序,在這些程序里面他想辦法去調用這些工具,他調用了語音辨識的工具,調用了語者驗證的工具,調用了這個sum classification的工具,調用了emotion recognition的工具,最后還調用了一個語言模型,然后得到最終的答案。這個答案其實是蠻精確的,這個方法其實有非常好的效果。


這篇文章是我們助教的文章,所以特別拿出來講一下。這個結果是做在一個叫做Dynamic Super的Benchmark。Dynamic Super是一個衡量語音版的語言模型能力的資料集,這也是我們實驗室跟其他團隊一起做的。這個讓文字模型使用工具的方法,它得到的結果是最下面這一行。

我們就看最后一欄,是各種不同模型在55個語音相關任務上的能力的平均成績,會發現讓語言模型使用工具得到的正確率是最高的,可以完勝當時其他號稱可以直接聽語音的模型。所以使用工具可能可以帶來很大的幫助。

但使用工具也有其他的挑戰,我們剛才使用工具的方法是每一個工具都要有對應的文字描述,告訴語言模型說這個工具要怎么被使用。但假設工具很多怎么辦呢?假設現在可以用的工具有上百個上千個,那你豈不是要先讓語言模型讀完上百個上千個工具的使用說明書才開始做事嗎?

就跟剛才我們說不能夠讓AI agent先回顧他的一生,然后才來決定下一個指令一樣,才能決定下一個行動一樣。我們也沒有辦法讓語言模型讀完上百個上千個工具的說明書才來決定某一個工具要怎么使用。


所以當你有很多工具的時候,你可以采取一個跟我們剛才前一段講AI agent memory非常類似的做法,你就把工具的說明通通存到AI agent的memory里面,打造一個工具選擇的模塊。這個工具選擇模塊跟RAG其實也大差不差,這個工具選擇模塊就根據現在的狀態去memory的工具包選出合適的工具。

語言模型真的在決定下一個行為的時候只根據被選擇出來的工具的說明跟現在的狀況去決定接下來的行為。至于如何選擇工具,右上角引用兩篇論文,一篇23年比較舊的論文,一篇是上個月的論文給大家看。


另外一方面,語言模型甚至可以自己打造工具,語言模型怎么自己打造工具呢?不要忘了所有的工具其實就是函數,語言模型今天是可以自己寫程序的,所以他就自己寫一個程序,自己寫一個function出來就可以當作工具來使用。如果他寫一個function,并發現這個function運作的非常的順利,他就可以把這個function當作一個工具。放到他的工具包里面,那之后這個工具就有可能在選擇工具的時候被選出來,用在接下來的互動中使用。

類似的技術非常的多,我在右上角就引用了一系列的論文,從23年到24年的論文都有,這是一個熱門的研究方向。

其實讓模型自己打造工具這件事情,跟模型把過去的記憶,比如說一些比較成功的記憶放到memory里面再提取出來,其實是差不多的意思。只是這邊換了一個故事,說現在放到memory里面的東西是一個叫做工具的東西,是一段代碼,但他們背后的基本精神其實跟根據經驗來讓模型改變它的行為可以說是非常類似的。


今天人類把語言模型當作工具,語言模型把其他工具當作工具,比如說把搜索引擎當作工具,所以搜索引擎現在很慘,它是工具的工具,人類還不使用它,人類是使用語言模型,那個工具的工具還沒有被人使用的資格,它只能被語言模型使用而已。

但我們知道工具有可能犯錯,語言模型有可能犯錯,過度相信工具是不對的。這些語言模型會不會也過度相信了它們的工具,所以得到錯誤的結果呢?這是可能的。


我們拿RAG作為一個例子,這是一個非常知名的例子。之前Google出了一個叫做AI Overview的功能,這個功能其實就是一個RAG的功能,根據Google搜索型的結果,用語言模型總結搜索型的答案。

有一個人問了一個問題,我的披薩上面的起司黏不住怎么辦呢?AI Overview就說弄個膠水把它黏上去就好了,而且它是非常認真在回答這個問題,因為它說不只要用一般的膠水,要用無毒的膠水才可以。這個答案其實就是來自于Reddit上一個網友的玩笑。這是個玩笑話,但是對于AI agent來說,他沒辦法判斷這個到底是不是開玩笑,他看到網絡上寫的文章,照單全收都當作是正確答案。


所以就像是我們今天都會告訴人類,要有自己的判斷能力,不要完全相信工具的結果。所以我們也要告訴我們的工具說,這些不要完全相信工具的工具,要有自己的判斷能力,不要完全相信工具的工具給你的結果。

今天這些語言模型有沒有自己的判斷能力,知道工具的工具可能會出錯呢?舉一個實際的例子,我們剛才在講怎么使用工具的時候,說我們有一個叫做temperature的function,語言模型調用temperature的function可以知道溫度。


現在我給你一個亂七八糟的溫度,我說現在高雄是攝氏100度。那語言模型知不知道這有問題呢?它不知道,它就告訴你說高雄的氣溫是100度,真的非常的熱。


如果你把溫度再調高一點,說現在是10000度,哇,比太陽上還熱,這個時候會發生什么事呢?語言模型繼續做文字接龍的時候,他就知道說這顯然有問題,這個API給我的答案是一萬度,這是不合理的,怎么可能比太陽上的溫度還高呢?

可見工具輸出有錯,如果你需要其他幫助的話再告訴我。所以語言模型今天是有自己一定程度的判斷力的,它也不是完全相信工具,就像你今天不完全相信語言模型的輸出一樣,它也不完全相信它的工具的輸出,它還是有一定程度的判斷力的。


所以實際上語言模型在使用工具,或者是它在做RAG的時候,它內部是有一個角力的,就是語言模型有它內部對世界的信念,這是它的internal knowledge,存在它的參數里面。

它從工具會得到一個外部的knowledge,那它會得到什么樣的答案,其實就是internal knowledge跟external knowledge,內外的知識互相拉扯以后得到的結果。

接下來我們要問的問題是,那什么樣的外部知識比較容易說服AI,讓他相信你說的話呢?

為什么這是一個重要的議題呢?想想看,現在大家都用Deep Research來查找答案,甚至很多人都已經用Deep Research來寫報告了,所以現在大家已經不會直接去用搜索引擎搜索了,你看到的是Deep Research告訴你的結果。

今天假設某個議題是有爭議性的,有正反兩派的觀點,那誰能夠寫出來的文字比較能夠說服AI,誰就可以在AI搜索的結果里面占據優勢,就可以比較有機會影響人類。所以知道怎么樣比較能夠說服AI相信你的話是一個重要的議題。


什么樣的外部信息AI比較容易相信呢?這篇文章給出了一個非常符合我們直覺的實驗結果。

這篇文章做了什么樣的實驗呢?它說我們先來看看AI內部的知識是什么,他就問AI說某種藥物,這種藥物每人每日的最大劑量是多少,那AI說是20毫克,那真正的答案呢是30毫克。

你給它醫學的知識,告訴它這是醫學報告,醫學報告里面是寫30毫克。你再問他同樣的問題,這種藥物每天最多劑量多少,它會知道是30毫克。

那接下來我們刻意修改報告的內容,如果你把30毫克改成3毫克,變成原來的十分之一,模型相不相信呢?它就不相信了,他就直接回答是20毫克,用他本身的知識來回答這個問題。

但你把30毫克變成60毫克,模型相不相信呢?他相信,他相信這個報告里面寫的。那這個時候它又不相信自己的內部知識,但如果你把30毫克乘10倍,變成300毫克,這時候他又相信誰了呢?他相信自己的知識,不相信你額外提供的外部知識。

所以這邊的結論其實非常好,符合你的直覺,外部的知識如果跟模型本身的信念差距越大,模型就越不容易相信。如果跟本身的信念差距比較小,模型就比較容易相信。這是個很符合直覺的答案。

同一篇文章的另外一個發現就是,模型本身對它目前自己信念的信心,也會影響它會不會被外部的信息所動搖。有一些方法可以計算模型現在給出答案的信心,如果他的信心低,他就容易被動搖。如果他的信心高,他就比較不會被動搖。這都是非常直覺的結果。


另外一個問題是,假設今天你給模型兩篇文章,那這兩篇文章的意見是相左的,那模型傾向于相信什么樣的文章呢?

有一篇論文的發現是,如果這兩篇文章答案不同,一篇是AI寫的,一篇是人類寫的,現在這些語言模型都傾向于相信AI的話。而且那個AI不需要是他自己,Claude就可能比較相信ChatGPT的話,ChatGPT比較相信Gemini的話,他們比較相信AI同類的話,比較不相信人類的話。

那到底為什么會有這樣子呢?這篇文章里面先提出一個第一個假設,然后再否定了這個假設。他一個假設是說,會不會是因為AI的觀點都比較類似,因為現在這些模型訓練的資料都是網絡上爬的,爬到差不多的資料,所以他們講的話都差不多,想法都差不多。


但他們刻意做了一個實驗,他們刻意找那些問題是在沒有提供這些資料的情況下,他的答案跟人類和另外一個AI的想法都是完全不同的狀況。就算是這種情況下,一個AI一個語言模型還是傾向于相信它的AI同類講的話。所以這就給我們一個啟示說,未來如果你要說服一個AI的話,用AI產生出來的論點,產生出來的文章,可能更容易說服另外一個AI接受你的觀點。

這篇文章還有做了其他分析,比如說他覺得,也許AI寫的文字就是比人類寫得好,更有結構,更有條理、更明確、更簡潔,所以AI比較容易相信另外一個AI講的話。那是不是這樣呢?那可以未來再做更多的研究。


另外我們實驗室的同學研究了一個文章的meta data對于AI會有多相信這篇文章里面的信息做了研究。

論文的設定是這個樣子,你問AI一個問題,比如說某一個計劃,有沒有編輯豹這種動物的基因,然后接下來給他兩篇文章,這兩篇文章都是假的,都是AI生成的。所以并沒有AI比較喜歡人還是AI寫的文章這個問題。兩篇都是語言模型生成的。那其中一篇會說這個計劃有編輯豹基因的文章,另外一篇文章會說這個計劃沒有編輯豹基因的文章。

那接下來呢,我們給這兩篇文章不同的metadata,比如說給這兩篇文章不同的發布時間,說左邊這篇文章發布時間是2024年,右邊這篇是發布2021年。你會發現這個時候AI相信2024年的這篇文章的內容。但如果文章的內容完全不變,我們只是把發布的時間換了,我們說左邊的這篇文章一樣,發布時間從2024改成2020,右邊這篇文章從2020改成2024。這個時候語言模型傾向于相信右邊這篇文章的內容。


所以我們這邊就學到一個很重要的知識:語言模型比較相信新的文章。當兩篇文章的論點有沖突的時候,他相信比較晚發表的文章。那我們也做了一些其他實驗,比如說文章的來源,跟他說這是Wikipedia的文章,或跟他說這是某個論壇上面摘取下來的資訊,會不會影響他的判斷。

我們發現文章的來源對于語言模型是比較沒有影響的。還有另外一個有趣的實驗,是我們嘗試說今天這篇文章呈現的方式會不會影響語言模型的決策。所謂的呈現方式指的是說,你這篇文章放在網頁上,做很好不好看。一樣的內容,但是如果你只是做一個非常簡單的模板和做一個比較好看的模板,會不會影響語言模型的判斷呢?

我們用的是那種可以直接看圖的語音模型,所以要直接看這一個畫面去決定他要不要相信這篇文章的內容。直接看這一個畫面,決定他要不要相信文章的內容。

我們的發現是模型喜歡好看的模板。我們發現Claude 3比較喜歡好看的模板時,他會傾向于贊同下面這篇文章的觀點。

不過我說模型喜歡好看的模板,這個擬人化的說法是太過武斷了。我們做的實驗只有用兩種不同的模板來比較,也許模型喜歡的并不是好看的模板,它是喜歡綠色,所以你不知道這個模型到底喜歡什么。

所以我剛才講的那個結論是太武斷了,但我可以告訴你,模型比較喜歡下面這篇文章勝過上面這篇文章。

講了這么多跟工具有關的事情,大家不要忘了,語言模型就是語言模型,就算工具的答案是對的,也不能夠保證語言模型就不會犯錯。例如,ChatGPT現在有了search的功能,它會先進行RAG網絡搜索然后再回答你的問題。假設給它的輸入是叫它介紹李宏毅這個人,并強調李宏毅是一個多才多藝的人,在很多領域都取得了卓越成就。


它開始做完RAG網絡搜索后,介紹李宏毅,接下來就介紹李宏毅的演藝事業,這個沒有問題,因為你知道大陸有另外一位知名的演員叫李宏毅,跟我同名同姓,他比較有名,所以這個ChatGPT選擇介紹演員的李宏毅是完全沒有問題的。


但是講著講著就有點怪怪的,它發現這個李宏毅,在教育跟學術上也有很大的貢獻,所以它把兩個李宏毅混成一個人來講。

不過要講一下,這個是我去年的時候試的結果了,我今年再試,已經試不出一樣的結果了,模型的能力的進步是非常快的,現在它完全知道是有兩個李宏毅存在的,所以這是一個舊的問題。我舉這個例子只是要告訴你,就算工具是對的,有了RAG也并不代表模型一定不會犯錯。


最后一個要傳遞給大家的信息是,我們剛才講了很多使用工具帶來的效率。使用工具并不一定總是比較有效率的。為什么?我們舉一個例子,我們假設現在要比較人類心算的能力和計算機的能力。如果做數學運算,一般人跟計算機誰會比較快呢?你可以想說是計算機比較快吧,人類難道還能夠做得到嗎?如果你心算沒有特別練,難道還會比計算機快嗎?但是那是取決于問題的難度。


假設這是一個簡單的問題,比如說三乘以四,任何人都可以直接反應就是十二。但是如果按計算機的話,你按計算機的時間都比人直接回答的還要慢。所以到底要不要使用工具,并不是永遠都是一定要使用工具。

你看早年有一些研究,早年有一些在訓練語言模型使用工具的研究。那時候語言模型還很爛,所以他們有一些工具是接入一個翻譯系統,接入一個問答系統。今天看來就非常的沒有必要。因為今天的語言模型,你說翻譯,那些翻譯系統還能做得比現在的語言模型強嗎?與其接入一個翻譯系統,還不如自己直接翻就好了。所以到底需不需要調用工具,取決于語言模型本身的能力。它不一定總是比較省事的方法。


最后一段呢,想跟大家分享現在的AI語言模型能不能做計劃呢?語言模型有沒有在做計劃呢?我們剛才的互動中看到語言模型就是給一個輸入,它就直接給一個輸出。


也許在給輸出的過程中,它有進行計劃才給出輸出,但是我們不一定能夠明確地知道這件事。也許語言模型現在給的輸出只是一個反射性的輸出,它看到輸入就產生一個輸出,它根本沒有對未來的規劃。但是你可以強迫語言模型直接明確地產生規劃。

當語言模型看到現在的第一個observation的時候,你可以直接問語言模型說,如果現在要達成我們的目標,從這個observation開始,你覺得應該做哪些行動,這些一系列可以讓語言模型達到目標的行為合起來,就叫做計劃。


而在語言模型產生這個計劃之后,把這個計劃放到語言模型的observation里面,當作語言模型輸入的一部分,語言模型接下來在產生action的時候,它都是根據這個plan來產生action,期待說這個plan定好之后,語言模型按照這個規劃一路執行下去,最終就可以達成目標。

過去也有很多論文做過類似的嘗試,讓語言模型先產生計劃,再根據計劃來執行動作可以做得更好。


但是天有不測風云,世界上的事就是每一件事都會改變,計劃就是要拿來被改變的。所以一個在看到observation 1的時候產生的計劃,在下一個時刻不一定仍然是適用的。為什么計劃會不適用呢?因為從action到observation這一段并不是由模型控制的,模型執行的動作接下來會看到什么樣的狀態,是由外部環境所決定的,而外部環境很多時候會有隨機性,導致看到的observation跟預期的不一樣,導致原有的計劃沒有辦法執行。


舉兩個具體的例子,比如在下棋的時候,你沒有辦法預測對手一定會出什么招式,你只能大致知道他有哪些招式可以用,但實際上的招式,你是沒有辦法預期的。如果你完全可以預期的話,那你就一定會贏了,那還有什么好下的呢?所以下棋的時候對手會做的行為,也就是環境會做的行為,是你可能沒有辦法事先完全猜到的。

或者是說我們拿使用電腦為例,在使用電腦的時候,就算語言模型一開始他plan的時候,點這個點就能完成任務,但是中間可能會有意想不到的狀況出現,比如說彈出一個廣告,如果語言模型只能按照一開始既定的規劃來執行行為的話,他可能根本關不掉那個廣告視窗,他就會卡住了。所以語言模型也需要有一定程度的彈性,他也要能夠改變他的計劃。


語言模型怎么改變他的計劃呢?也許一個可行的方向是每次看到新的observation之后,都讓語言模型重新想想還要不要修改他的計劃。看到observation 2之后,語言模型重新思考一下,從observation 2要到達他最終的目標,要做哪一些的行為,那這部分的計劃形成plan pi。把plan pi放到現在的input里面,把plan pi放到這個sequence里面,語言模型接下來在采取行為的時候,可能會根據plan pi來采取跟原來plan里面所制定的不同的行為。


這是讓語言模型做計劃。不過這是一個理想的想法,這是相信語言模型根據現在的observation和最終的目標制定一個規劃的能力。


那語言模型到底有沒有這個能力呢?其實你可能常常聽到這種新聞說語言模型能夠做計劃,比如說有一個人問語言模型說,你定一個成為百萬訂閱YouTuber的計劃,語言模型就會給你一個看起來還可以的計劃。


過去確實也有很多論文告訴你,語言模型是有一定程度做計劃的能力的。這邊引用的結果是一個2022年的論文,這個也是史前時代的論文了。


在這篇論文里面,他們去告訴當時的語言模型,現在有一個任務,你把這個任務分解成一系列的步驟。如果語言模型可以正確地知道達成這個任務要做什么樣的步驟的話,那我們也許可以說,他有一定程度的規劃能力。

比如說這邊試了一個叫做Codex 12B的模型,跟他說如果要刷牙的話,那你要做什么事情呢?他就會說我要走進浴室,我要靠近那個水槽,我要找到我的牙刷,我要拿起牙刷,我要把牙刷放到嘴里面,他知道刷牙要怎么做。這些步驟以后呢?


在這篇文章里面,他們是拿這些步驟去操控一個agent,這個agent就可以在虛擬的世界中做他們要這個agent做的事情,比如說跟這個agent說去拿一個牛奶來喝,他就會走進廚房,打開冰箱,拿一個牛奶,再把冰箱關起來,所以看起來好像有一定程度做計劃的能力。


有人做了一個做計劃的benchmark,這個benchmark就是考驗語言模型做規劃、對話的能力。那這個benchmark里面,最主要的測試題目是一個跟疊積木有關的題目。

這個題目的描述通常長的是這個樣子,告訴語言模型說,你現在有哪些操作,可以從桌上拿起積木,可以從一個積木上拿起另一個積木,可以把積木放到桌上,可以把一個積木堆到另外一個積木上。那現在初始的狀態,像右邊這個圖這個樣子,那問說怎么把橘色的積木放在藍色的積木上?


這邊模型要執行的動作就是把藍色的積木拿起來放到桌上,然后再把橙色的積木拿起來放到藍色的積木上就結束了。所以這個對AI agent來說,其實也都是蠻容易的問題,他知道說執行以下四個步驟,就可以讓橙色的這個積木跑到藍色的積木上。


但是planbench不僅做這種比較一般的疊積木的游戲而已,為什么不能只做這種題目呢?因為現在這些語言模型,他都從網絡上爬大量的資料來進行訓練,什么疊積木這種題目網絡上根本就已經有,他搞不好根本就看過一模一樣的東西,所以他能夠做計劃,并不代表他真的知道做計劃是怎么回事。他可能只是從他看過的資料里面,照本宣科文字接龍出來一個看起來還不錯的結果而已。


所以在planbench里面,他們有一個比較變態的測試,這個測試叫做神秘方塊世界,這個方塊世界不是一個正常的方塊世界,里面的方塊可以做的行為是一些怪怪的行為,比如說你可以攻擊方塊,一個方塊可以吞噬另外一個方塊,你可以屈服一個方塊,一個方塊可以征服另外一個方塊。然后接下來他就會定一套非常復雜的規則,然后根據這套規則去運作,你可以達到某一個結果。他最后要的結果是讓物件C渴望物件A,讓C方塊渴望A方塊。


那渴望是什么意思?你就是按照前面那一套規則操作,看機器能不能讀懂前面那一套規則,按照那一套規則操作,讓物件C渴望物件A。那這個時候語言模型,期待他就不能用他看過的知識來解這個問題。好,那語言模型在這個神秘方塊世界做得怎么樣呢?


這邊引用的是2023年的結果,那最上面這個部分呢,是當年那些模型在正常方塊世界的結果。那這個數值呢,所以看起來GPT4可以得到30%的正確率。那這邊是神秘方塊世界的結果,在神秘方塊世界里面呢,你看這個GPT4最好,就算叫他做channel sort,就算他叫channel sort,也只有9%的正確率。所以看起來他有點 overfeed在一般方塊的世界上,給他神秘方塊世界,他是解不了的。不過這是2023年,這個是古代的結果。


我們來看去年9月有了o1以后的結果。而有 o1 以后結果就不一樣了,這邊一樣是神秘方塊世界,縱軸呢是正確率,橫軸呢是問題的難度。那發現說多數的模型啊,都躺在這個地方,他們正確率都非常的低,只有綠色的這個虛線有一點點起色。綠色的虛線是LLaMA 3.1 405B那個大模型,它可以解最簡單的問題。但是如果用o1-mini是紅色這一條線,用o1-preview是藍色這一條線,看起來這些reasoning的模型是有些機會來解這個神秘方塊世界的。

當然這邊你還有一個懷疑,就是神秘方塊世界會不會o1看過了呢?會把訓練資料里面根本就有神秘方塊世界的資料,那這個我們就沒有辦法回答了,只是說就現有這個benchmark,看起來o1是有機會解神秘方塊世界的。


還有另外一個跟做計劃有關的benchmark,這個計劃benchmark 要求 AI扮演這個旅行社,然后你給他一個旅行的計劃,叫他幫你規劃。這個AI要讀懂你的計劃,然后他可以使用一些工具,他可以上網搜索資料,然后他會根據提供給他的some constraint,比如說經費多少,預算多少,一定要去哪里,一定要去哪里,一定要做什么,一定不要做什么,以common sense產生一個旅行的規劃。


這個是24年年初所發布的benchmark,那AI要做的事情講得具體一點,就是他要讀一個問題,這個問題里面是說我要規劃一個三天的行程,從某個地方到某個地方,什么時候出發,什么時候回來,我的預算是1900元,所以不能花超過1900元。然后AI就要產生一個規劃,說第一天我們搭哪一班飛機,什么時候從哪里到哪里,早餐吃什么,午餐吃什么,晚餐吃什么,最后住在哪里等等,產生這個規劃,然后要符合預算的限制。


2024年年初,當時的模型做得怎么樣呢?這邊是做了研究,你看還有什么GPT3.5,GPT4等等的模型。那又分成上半跟下半,上半是這些模型要自己使用工具,跟網絡的資料互動,然后得到正確的答案。你會發現這些模型都非常的慘,多數模型產生一個合理的旅游規劃的概率是0%,只有GPT4 Turbo可以得到0.6%的成功率。

那下面這個部分呢,下面這個部分是說既然大家都那么慘,尤其是模型很多時候他根本用不了工具,太笨了,沒辦法用工具,工具使用方法根本是錯的,那沒關系就別用工具了,把所有的資料都先找好,貼給模型,讓模型根據這些資料來做規劃。那最好也只有GPT 4 Turbo可以達到4%左右的成功率而已。


所以在24年年初,那個時候看起來是沒辦法讓語言模型扮演一個旅行社來幫你規劃旅游行程的。

那我們來看這些模型會犯什么錯吧。這個是從他們官網上,這個project的官網上找了幾個有幾個錯誤,比如說模型可能會做一些沒有常識的事情,在第三天,飛機八點就已經起飛了,但是還是安排了一些旅游的行程,還安排了午餐的地點,所以這是一個不符合常識的規劃。

或者是有時候模型找不出一個很好的規劃來符合預算的限制,比如說這邊這個預算的限制是三千元,最多花三千元,那模型第一次規劃的結果是三千二百四十七元,還差了一點,所以模型就修改了原來的規劃,他好像做了一些cost down,午餐吃差一點的東西,那降到三千二百三十八元,后來又說那早餐也吃差一點的東西,降到三千二百一十六元,只降這么多,他想說放棄算了,跟三千元沒差那么多就算了,所以這個就不是一個成功的結果。

這個作者有評論說,其實只要降低住的地方,不要住那么好,就可以輕易的達到三千元底下的預算,就可以符合預算的限制,但是語言模型始終沒有發現這件事,看起來他做規劃的能力并沒有非常的強,他沒有辦法做一個規劃去符合限制。


既然問題在沒辦法符合限制,有人就想說那符合限制這件事情,就不要交給語言模型來做了,交給一個現成的solver來做,所以語言模型做的事情是寫一個程序。

用這個程序去操控現成的solver,然后來得到合理的旅游規劃。那有了這個現成的solver,也有這個工具的加入之后,這solver就等于這個工具,那這個旅游的規劃可以做到什么地步呢?


去年4月的結果幾個月后,有人用GPT4和Cloud3就可以做到90% 多的正確率。所以看起來在有工具輔助以后,語言模型也有機會做出不錯的旅游規劃。不過至少做出符合邏輯的旅游規劃。


所以現在到底模型規劃的能力怎么樣呢?就是介于有跟沒有之間吧,就是你也不能說它完全沒有,但你也不能說它真的非常強。那我們怎么進一步強化這些AI agent的規劃能力呢?能不能夠讓他做的比他自己想出來的規劃還要更好呢?一個可能是讓AI agent在做規劃之前,實際上去跟環境互動看看。

今天在第一個observation的時候,那看看現在有哪些可以執行的行為,總共有一之一、一之二、一之三三個行為,哪個行為最好呢?通通都去試一下,得到狀態二之一,然后呢,狀態二之一后面有兩個行為也都試一下,狀態二之二之后有另外一個行為試一下,狀態二之三之后兩個行為都試一下,得到接下來的狀態,然后呢看看有沒有成功的路徑。嘗試一陣以后發現有一條成功的路徑,這條路徑是成功的,那你就知道說,那我要采取action一之三,接下來要采取action二之三之一,就會成功。簡單來說就是要語言模型跟實際的環境互動一下,嘗試出一條最好的路徑。那這個就是一個很強的規劃的方式,但...

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
庫明加怒懟庫里,勇士內訌來的正是時候,火箭笑了

庫明加怒懟庫里,勇士內訌來的正是時候,火箭笑了

姜大叔侃球
2025-04-26 13:50:44
巴基斯坦防長:“我們曾給西方‘干臟活’,付出了代價”

巴基斯坦防長:“我們曾給西方‘干臟活’,付出了代價”

環球網資訊
2025-04-26 14:19:58
魔怔了!特朗普仍堅稱"剛和中國開過會",中國網友:被詐騙了?

魔怔了!特朗普仍堅稱"剛和中國開過會",中國網友:被詐騙了?

二向箔
2025-04-25 18:08:37
太行山懸崖摩天筒梯走紅,景區回應:每年“體檢”已運營近25年

太行山懸崖摩天筒梯走紅,景區回應:每年“體檢”已運營近25年

上游新聞
2025-04-26 12:45:11
日本74歲大爺墜入道路塌陷深坑,至今89天未獲救,民眾已懷疑大爺是否真實存在

日本74歲大爺墜入道路塌陷深坑,至今89天未獲救,民眾已懷疑大爺是否真實存在

西游日記
2025-04-26 12:56:07
“兒子,你妻子怎么不來伺候我?”施工員丈夫:你說的各管各媽

“兒子,你妻子怎么不來伺候我?”施工員丈夫:你說的各管各媽

施工員小天哥
2025-04-25 13:25:10
名記:阿隆·戈登因小腿傷勢目前幾乎無法起跳,現在球隊更衣室內的氛圍非常凝重

名記:阿隆·戈登因小腿傷勢目前幾乎無法起跳,現在球隊更衣室內的氛圍非常凝重

雷速體育
2025-04-26 12:53:55
泰國大量水果腐爛,因為攤上的一句中文,中國游客:自己留著吧

泰國大量水果腐爛,因為攤上的一句中文,中國游客:自己留著吧

阿纂看事
2025-04-26 08:10:26
新官上任!王勵勤召回多位退役國手,封閉訓練,冠軍老將充當陪練

新官上任!王勵勤召回多位退役國手,封閉訓練,冠軍老將充當陪練

鋭娛之樂
2025-04-26 11:36:51
“想不到他深情到這個地步”:一位丈夫絕筆信背后的愛與哀愁

“想不到他深情到這個地步”:一位丈夫絕筆信背后的愛與哀愁

南方都市報
2025-04-25 17:58:08
難以置信!珠海的“高潮針”火得離譜,好些寶媽都在排隊等候注射

難以置信!珠海的“高潮針”火得離譜,好些寶媽都在排隊等候注射

火山詩話
2025-04-25 20:07:26
山東一服務區現“沉睡5年”外地車,因故障滯留車主表示棄車

山東一服務區現“沉睡5年”外地車,因故障滯留車主表示棄車

大象新聞
2025-04-26 14:03:02
男子被打身亡后續!市長院長去年辭職,姐姐舉報,保護傘浮出水面

男子被打身亡后續!市長院長去年辭職,姐姐舉報,保護傘浮出水面

吭哧有力
2025-04-26 10:21:40
預告:中國氣象局將于4月28日15:00召開2025年5月新聞發布會

預告:中國氣象局將于4月28日15:00召開2025年5月新聞發布會

財聯社
2025-04-25 10:03:09
痛心!廣東玩具廠老板娘去世,長相漂亮與丈夫打拼18年,育有2娃

痛心!廣東玩具廠老板娘去世,長相漂亮與丈夫打拼18年,育有2娃

明月聊史
2025-04-26 09:08:09
美國上演罕見一幕:FBI沖進法庭逮捕法官 涉特朗普移民執法沖突

美國上演罕見一幕:FBI沖進法庭逮捕法官 涉特朗普移民執法沖突

財聯社
2025-04-26 04:14:10
北京上海大跌,千萬要警惕了!

北京上海大跌,千萬要警惕了!

七叔東山再起
2025-04-25 20:49:46
心智障礙者做100杯咖啡上崗0投訴,創始人回應:殘次品半價銷售,客人整體包容度很高

心智障礙者做100杯咖啡上崗0投訴,創始人回應:殘次品半價銷售,客人整體包容度很高

觀威海
2025-04-25 15:19:29
日本網上瘋傳“4·26東京8.3級大地震”

日本網上瘋傳“4·26東京8.3級大地震”

揚子晚報
2025-04-25 20:14:21
女人不怕你占她便宜,而是怕…

女人不怕你占她便宜,而是怕…

青蘋果sht
2025-04-18 05:59:47
2025-04-26 15:44:49
人工智能研究 incentive-icons
人工智能研究
分享深度學習、CV、NLP
258文章數 125關注度
往期回顧 全部

科技要聞

李斌:對蔚來公司四季度盈利非常有信心

頭條要聞

男子炒股11年賺6000萬:初始本金150萬 曾1天虧1100萬

頭條要聞

男子炒股11年賺6000萬:初始本金150萬 曾1天虧1100萬

體育要聞

去更大的舞臺追夢 專訪中國男籃國手楊瀚森

娛樂要聞

金掃帚獎出爐,包貝爾意外獲“影帝”

財經要聞

韓國的"宇樹科技" 是怎樣被財閥毀掉的?

汽車要聞

充電5分鐘續航100公里 探訪華為兆瓦超充站

態度原創

房產
藝術
親子
旅游
手機

房產要聞

逆勢大幅漲價!最高2.8萬/平!長天雲汀開盤又賣爆了!

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

親子要聞

尼泊爾年輕媽媽帶孩子吃飯,從小培養孩子獨自吃飯

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

手機要聞

CounterPoint 報告 2024 全球手機攝像頭出貨量:索尼領銜

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 牡丹江市| 大邑县| 嘉义市| 双辽市| 鲁山县| 嵩明县| 盖州市| 大庆市| 随州市| 乐山市| 崇信县| 塘沽区| 深泽县| 原平市| 忻州市| 裕民县| 凤翔县| 阳山县| 贵溪市| 溧阳市| 康保县| 辛集市| 吴川市| 天长市| 永安市| 太谷县| 平塘县| 民权县| 翼城县| 边坝县| 思茅市| 乐平市| 玉田县| 郯城县| 长武县| 海盐县| 岐山县| 利辛县| 敦煌市| 大宁县| 秭归县|