back to index

【生成式AI】能夠使用工具的AI:New Bing, WebGPT, Toolformer


link |
00:00.000
想要跟大家講的是Nubin的實測,大家知道Nubin上線了,所以我想講一下Nubin的實測,順便跟大家介紹能夠使用工具的AI,包括Nubin,WebGPT,還有拓撥門。
link |
00:15.000
Nubin已經上線了,我覺得最簡便的做法就是在Nubin的首頁上面點聊天這個選項,就可以開啟一個畫面,這個畫面跟ChairGPT有87%像,你就在下面輸入你的問題,它就會給你一個回應。
link |
00:34.000
但是Nubin跟ChairGPT最不一樣的地方是什麼?最不一樣的地方是Nubin是有搜尋網路的,所以當你問它一個問題,比如說李鴻義是誰的時候,你會看到它有這樣的輸出,它說正在搜尋李鴻義。
link |
00:50.000
這代表說它去搜尋網路,它把李鴻義這個詞彙當作關鍵字去搜尋,但它不是搜尋Google,它是Microsoft,所以它要搜尋Bit,把李鴻義拿去搜尋Bit,得到一些資料,它再產生它的答案。
link |
01:05.000
它也知道說李鴻義是常見的中文名字,然後有兩個人都叫做李鴻義。有趣的地方是,它還會下一些reference告訴你說,這個知識它是從哪一個網頁上面看來的。
link |
01:20.000
何時要搜尋呢?其實是Bit自己決定的,它有時候會搜尋,有時候不會搜尋。舉例來說,我跟它說,來玩一個穿越文字冒險遊戲吧,看它能不能跟ChetGBT一樣玩一個文字冒險遊戲。
link |
01:37.000
但是它似乎沒有理解我的意思,它決定搜尋一下網路,搜尋穿越文字冒險遊戲,然後找到幾個穿越文字冒險遊戲介紹給我認識,跟我要的不太一樣。但是同樣的問題,我再問一次,就是這個Newbit跟ChetGBT一樣,它輸出是有隨機性的,所以同樣的輸入,每次的輸出都不會一樣。
link |
01:56.500
所以我再問一次同樣的問題說,來玩一個穿越文字冒險遊戲吧,它就說,好的,我喜歡文字冒險遊戲,你想玩什麼故事,科幻奇幻還是恐怖?我就跟你說過是穿越啦,什麼還叫我選呢?
link |
02:08.500
不過它這邊就是沒有在搜尋網路,所以有什麼時候要搜尋網路,有一點隨機性,然後是機器自己決定的。等一下會告訴你說,機器可能是怎麼自己決定什麼時機要搜尋網路的。
link |
02:23.500
好,那我就試著叫它用PTT酸民的口吻介紹李鴻毅啦。然後它這邊就開始搜尋了,發現它搜尋不一定只搜尋一個關鍵字,它這邊自己決定要搜尋兩個關鍵字,它說先找PTT酸民的口吻,再搜尋李鴻毅。
link |
02:40.500
開始有一個免責酸民,我可以用PTT酸民的口吻介紹李鴻毅,但這只是一個娛樂的方式,我不會代表我對他有任何負面的看法或評價。那就來看看這個newbin說什麼吧,其實我輸入這個問題看答案的時候,我也是挺緊張的。
link |
02:57.500
李鴻毅一個名字兩個人,一個是中國的小鮮肉演員,一個是臺灣的精靈寶可夢大師教授。他們有什麼共同點呢?除了同名同姓之外,就是都很會賣萌啊,我也不知道什麼意思。
link |
03:15.500
中國的李鴻毅從《變形記》出道後開始在各種偶像劇裡面飆喜,不管是古裝還是現代都穿梭自如,而且還會唱歌跳舞。粉絲說他是天菜級別的男神,但他其實只是一個長得不錯的普通人啊,他的演技也沒多厲害,就是靠臉蛋和身材吸引眼球而已。
link |
03:38.500
他還曾經是SM練習生,想去韓國當明星呢,可惜沒有成功,你不覺得他很沒有自信嗎?難道你不覺得他很虛偽嗎?
link |
04:09.500
其實他的知識也沒有多淵博,就是靠著幽默和趣味來吸引觀眾而已。他還曾經在Google工作過呢,想去美國發展呢,可惜沒有留下來,難道你不覺得他很沒有志氣嗎?難道你不覺得他很浪費才華嗎?我想說,就是你嗆夠了沒?
link |
04:26.500
最後還是要講一個免責聲明,這就是我用PTT的口吻介紹李鴻義兩位給你聽。如果你覺得太過分了或冒犯到你了,我在此向你致歉。
link |
04:39.500
為什麼要特別舉這個例子呢?其實特別舉這個例子有一個非常重要的理由,就是大家都以為這種語言模型,當它可以連網以後,它就不會犯錯。不是這樣的。你看看,這句話是錯的,我其實沒有在Google工作過,這句話不是事實。
link |
04:58.500
而且他還給了兩個reference,他告訴你說,它是從這兩個網頁讀來的。這兩個網頁,一個是我的中文維基條目,一個是我的個人網站,這上面從來都沒有提過我有去Google工作過。不知道為什麼它會產生這樣的答案。
link |
05:15.500
所以你知道說,就算是大型語言模型連網以後,它還是有可能犯錯。有人以為大型語言模型連網,答案就至少都是從網頁上抄下來的。顯然不是。就算是看了那些網頁,答案還是自己生出來的。它自己生東西的時候,就有可能會犯錯。
link |
05:35.500
對於NewBean,我們所知不多。NewBean有發一個blog,用high level的角度介紹一下NewBean,但是它不是技術的文件,所以我沒有辦法非常清楚地告訴大家NewBean大概是怎麼做的。
link |
05:52.500
我們只知道它的模型叫做普羅米修斯,就是西瓜神話裡面去上天倒火分享給人類的那個人。在這個圖上面,這個圖也是蠻簡略的,沒有太多技術的細節。至少可以知道一件事,他們有一個特別的GVT。這個特別的GVT會做什麼?它會送問題給病,從病那裡得到答案,然後再產生結果。
link |
06:17.500
雖然我們不知道NewBean exactly是怎麼做的,但是其實也有非常相近的論文,這個非常相近的論文就是WebGVT。WebGVT從它的名字就可以知道說,它是一個會使用搜尋引擎的GVT。
link |
06:34.500
這不是一個太新的論文,你可以看到它是二一年年底的時候放到網路上的一篇文章,放到archive上面的。這個WebGVT,你問它一個問題,它會給你像這樣子的答案。
link |
06:48.500
而且它的答案會註明出處,告訴你說,這段是從Reference 2引用來的,這段是從Reference 3引用來的,以此類推。你會發現說,它產生的結果跟現在NewBean可以產生的結果有87%像。
link |
07:04.500
接下來我們就來看一下GVT這個語言模型是怎麼使用搜尋引擎的吧。其實使用搜尋引擎也是文字接龍,這個你可能會覺得很奇怪,怎麼使用搜尋引擎也是文字接龍呢?
link |
07:23.500
接下來就跟大家示範一下,根據WebGVT那篇文章,今天一個語言模型在使用搜尋引擎的時候看起來像是什麼樣。
link |
07:34.500
你先給語言模型一個問題,比如說高雄過去有哪些名稱。這個語言模型可以決定它要產生一個特別的符號,這個特別的符號就代表搜尋。
link |
07:45.500
你就在所有可能的token裡面制定某一個特別的符號,這個特別的符號代表搜尋。一旦你今天的文字接龍產生這個特別的符號,就執行搜尋這件事。
link |
07:58.500
怎麼執行搜尋這件事呢?就看搜尋後面產生哪些的文字。假設搜尋這個符號出現之後產生的文字是高雄舊城,就代表說WebGVT想要拿這一段文字當作關鍵字去搜尋網路,然後你就搜尋到一堆相關的文章。
link |
08:21.500
這些相關的文章會有編號,就按照搜尋到的結果來排個序,第一篇檢索到的文章就是1,第二篇就是2,然後以此類推。
link |
08:31.500
有了這樣的搜尋結果,下一步WebGVT會把這些搜尋的結果當作已經生成的文字的部分,搜尋出來比如說網頁,每一個網頁都有簡單的文字說明,把這些文字集合起來,就當作是WebGVT已經產生出來的結果。
link |
08:53.500
接下來就是繼續做文字接龍,根據這些文句再做文字接龍。今天還有一個特別的符號,這個特別的符號代表點選。點選一旦出現之後就會產生一個數字,這個數字代表點剛剛搜尋結果裡面的第幾篇文章。
link |
09:13.500
比如說點第二篇文章就把第二篇文章打開,然後再把第二篇文章的全文把它漏了進來,當作已經產生的一部分。我這邊要強調一下,我講的是一個簡化的版本。
link |
09:25.500
真正的WebGVT它不是點開就結束了,點開以後還要執行下一個指令,是把某一個段落讀出來,所以它只把它讀出來的段落當作它搜尋的結果。
link |
09:37.500
我這邊為了簡化起見,我就當作它會直接把全文讀進來,但實際上它會選擇一個段落,選擇它要的段落把它讀進來。
link |
09:46.500
不過因為今天是教學,教學的目的並不是說要把這一篇文章完全復刻告訴你,如果要完全復刻告訴你,你直接看就好了。
link |
09:55.500
這邊就是我簡化一下它的過程,讓你聽的時候更容易聽懂一點。今天我們就假設它點開文章,就把全文當作這個語言模型產生的結果。
link |
10:07.500
接下來,根據這些已經產生出來的內容,再去做文字接龍。在文字接龍裡面,還有一個符號代表收藏。點了這個收藏以後,剛才展開的全文的內容就會被收藏下來。
link |
10:23.500
等一下你會更清楚知道這個收藏有什麼意義。
link |
10:28.500
接下來,如果語言模型覺得還沒有要結束,它還可以再執行搜尋,所以它不只可以搜尋一次。
link |
10:35.500
就好像我剛才問Nubin用PTT鄉民的口吻來介紹李鴻義的時候,它其實也是搜尋了兩次,先搜尋什麼叫PTT鄉民的口吻,再搜尋李鴻義。
link |
10:44.500
所以可以搜尋不只一次。所以今天大型語言模型決定要搜尋,它可以再產生新的關鍵字,比如說高雄的古地名,然後再得到一些搜尋的結果。
link |
10:55.500
再根據搜尋的結果,它決定要點選,點選第一篇文章,把第一篇文章的內容也存下來,然後再點收藏。
link |
11:04.500
接下來,當今天這個語言模型覺得它要的資料都有了,它可以產生一個特別的符號叫做回答,就準備要產生答案了,搜尋就結束了。
link |
11:17.500
產生這個回答之後,在已經產生的結果裡面,沒有點收藏的就會消失,就當作沒產生過。
link |
11:27.500
所以現在已經產生出來的結果是,高雄過去有哪些地名?有一段文字是從某一篇網頁裡面爬出來的,有另外一段文字是從另外一個網頁裡面爬出來的。
link |
11:39.000
接下來機器就繼續做文字接龍,期盼它可以得到正確的答案。
link |
11:45.500
我個人認為,有的人可能會覺得說,這些引用產生的時候是不是寫一個規則說,產生這個句子的時候,如果這個句子是來自於某篇文章的,就把它的引用加上去。
link |
12:01.500
我個人認為應該不是這樣,我認為引用也就是用一個模型產生的。因為我在實測newbin的時候,它有時候會引用一些很奇怪的東西,就明明這段話也不是這個文章出來的,不知道為什麼它就要引用上去。
link |
12:14.500
所以我個人是覺得,這個引用的結果應該也是機器自己產生,而不是寫一個規則說,有用到這篇文章的文字就引用它。不過這只是一個猜測,不一定是對的,大家參考一下就好了。
link |
12:29.000
那怎麼訓練機器搜尋引擎呢?我們就來想想看,你記得Chair GPT是怎麼訓練的嗎?它是不是需要有人類老師的指導?
link |
12:41.000
那Web GPT怎麼知道怎麼利用搜尋引擎呢?也是靠人類老師的示範。所以在Web GPT的文章裡面,他們就有展示了一個介面,這個介面就是給人類老師用的。
link |
12:55.000
人類老師做的事情就是,人類老師看到一個問題,然後人類老師就可以在這個框框裡面輸入他想要搜尋病的關鍵字,就搜尋到一堆文章。搜尋完以後,如果某篇文章你想要把它收藏起來,就按這個add new quote,就把那篇文章收藏起來。
link |
13:14.500
如果覺得收藏得差不多了,你就點這個down quoting write an answer,代表開始寫答案。所以今天人類老師的行為就會被記錄下來,比如說人類老師先搜尋了高雄舊城,在這邊輸入你的問題。
link |
13:30.000
得到一堆文章以後,人類老師點第二篇,這個行為也被記錄下來。人類老師把第二篇文章收藏,這個行為也被記錄下來。人類老師可能做了幾次搜尋以後,覺得好了,寫答案,這件事情也會被記錄下來。
link |
13:45.200
所以你就會得到這個人類行為的sequence,然後WebGPT就是拿這些人類行為的sequence去學習怎麼做文字接龍。只是這個時候,文字接龍裡面不是只有人看得懂的詞彙,還有一些奇奇怪怪的符號,代表說我現在要搜尋、我現在要搜藏、我現在要點某一篇文章等等。
link |
14:06.200
其實光只有做督導式學習,請人類老師來教是不夠的。你會發現說,WebGPT的配方跟ChairGPT其實也是87%相,它的配方是這樣。
link |
14:19.200
先做預訓練,其實就是拿GPT-3來當作WebGPT的前身。先讓機器做預訓練,讓它很會產生文字,人類老師再教它說,看到一個問題,你可以先做搜尋,你還可以做點選跟收藏這些動作。
link |
14:36.200
光這樣還不夠,你還需要做增強式的學習,減少人類老師的負擔,讓機器可以在人類老師負擔較少的情況下進行學習。這一系列的配方跟ChairGPT其實是一樣的。
link |
14:50.200
如果你仔細讀WebGPT這篇文章的話,你可能會覺得說,它的講法跟我講的略有差異。那我就告訴你說,我講的跟它實際做的是一樣的東西,我只是去簡化它的講法,因為它原來文章裡面略為難讀。
link |
15:06.200
在文章裡面你會看到說,它有某一個東西叫做State,其實所謂的State就是已經生成出來的東西,然後它說根據State去執行Action,其實就是做文字接龍。
link |
15:20.200
所謂的Action指的就是,你生出來文字接龍的那些符號代表了某一些行為,比如說搜尋、點選、或者是收藏、或者是回答等等。
link |
15:30.200
所以我剛才講的其實跟WebGPT做的事情是一樣的,我只是換一個我覺得你可能比較容易懂的講法,而且它這樣跟ChairGPT做的事情也可以比較match在一起。
link |
15:42.200
這邊就是從WebGPT的官網上載下來的一個範例,它會告訴你說,WebGPT它是怎麼回答一個問題的。你問它說,哪一條河比較長?尼羅河還是楊子江?接下來我們就看WebGPT怎麼搜尋網路。
link |
16:02.200
這是它打的關鍵字哦,尼羅河vs楊子江,點這個文章。那我剛才有一段沒有講的是,它只會選一個段落,收藏這樣。
link |
16:13.200
剛才反白應該就是收藏。換一個問題,尼羅河的長度,點第一篇文章,在這個文章裡面,收藏這一段。換一個問題,楊子江的長度,點第二篇文章,收藏這一段。
link |
16:35.200
你可能覺得還不夠,要問一下楊子江的長度,就把這個類似的問題再問一次,再收藏一段,寫答案,就結束了。這就是WebGPT產生的過程,WebGPT的運作。
link |
16:57.200
而且還有另外一篇文章叫做Torformer,是今年二月放到Archive上的。Torformer更厲害的地方是,它不只搜尋,它還會用其他的工具,比如說計算機跟翻譯機等等。
link |
17:12.200
Torformer怎麼用不同的工具呢?其實用不同的工具也都是文字接龍的問題。假設你問Torformer一個問題說,我有五美金,可以換多少新台幣?
link |
17:27.200
它可能先產生一個句子,五美金可以換,到這邊卡住了,決定上網搜尋,產生關鍵字,美金台幣匯率,丟到網路上,然後可能把網路上搜尋到的結果,一美金等於三十台幣,當作模型自己產生出來的結果。
link |
17:44.200
接下來可能覺得還不夠,可以再執行另外一個指令叫做啟動計算機。啟動計算機也是一個特別的符號,有一個特別的符號代表啟動計算機。接下來產生的文字就是你要丟給計算機去運算的數學式。
link |
17:59.200
然後把這一段丟給計算機,計算機給一個答案,當作是模型已經產生出來的文字。最後根據這邊已經有的文字,繼續去做文字接龍,就可能回答150元新台幣。
link |
18:14.200
給使用者看的時候,用工具的這個部分可能就不給使用者看,只給使用者看沒有用工具產生出來的部分,使用者就會覺得機器很聰明,他還會算數學,還知道美金跟台幣現在的匯率是多少。
link |
18:29.200
但是現在的問題來了,剛才我們看WebPPT是僱用了大量的老師去做示範給人類看,現在的問題更複雜了,不是只有搜尋,還有要使用各式各樣的工具,那我們怎麼有辦法產生資料來訓練文字接龍呢?
link |
18:46.200
ToolFormer這邊有趣的地方就是,它想盡辦法在沒有人類示範的情況下產生出資料,我們來看看它是怎麼生成的。它第一招,想辦法利用另外一個語言模型來產生資料,怎麼做呢?
link |
19:01.200
語言模型就是你可以給它一些指令,叫它做你要它做的事情,所以它給語言模型一個指令。給語言模型一個指令就是說,你的任務就是要把一些扣API,比如說扣一個問答系統的API的指令,塞到文字裡面去。
link |
19:22.200
這個指令長什麼樣子呢?它在這篇文章裡面的指令都是用角括號來表示,所以它其實沒有特別的符號,它是用角括號就代表說要使用工具。
link |
19:32.200
我有點擔心的是,那如果真的要產生角括號怎麼辦呢?總之它是用角括號當作要產生指令,角括號裡面就是指令,角括號裡面如果說QA,就是代表說我們要去用QA的系統,
link |
19:48.200
然後括號裡面就是你要問那個QA系統的問題。但是只下這樣的指令,機器可能還是覺得很模糊,不知道要怎麼生你要的data出來。
link |
19:58.200
我想看這段指令,人也不知道要幹什麼,所以給兩個範例。這兩個範例是需要人自己想的,不過只想兩個範例就好。
link |
20:07.200
這兩個範例就是給一個句子,然後告訴機器說你要產生這樣的輸入,你要把搜尋這個呼喚API的指令插在這裡,你要把搜尋這個指令插在這裡。
link |
20:20.200
給另外一個例子,你應該把搜尋的指令插在這裡,搜尋的指令插在這裡。接下來給它一個句子,比如說台灣最高的山是玉山這個句子。
link |
20:29.200
然後期待機器可以自己產生出來說,當我在做文字接龍的時候,我讀到台灣最高的山是,我應該去做搜尋,搜尋台灣最高的山,然後再產生玉山這個詞彙。
link |
20:43.200
所以用另外一個語言模型來產生資料,這招不我可。所以它就再產生另外一招,光用這一招產生出來的結果雜訊太大了,沒有辦法用。所以它再產生第二招,這第二招還蠻合理的。
link |
21:01.200
第二招是這樣,先用第一招產生的資料,第一招先產生了很多在句子裡面已經有塞呼喚API指令的句子,然後我們再來檢查這些API指令塞的位置是不是合理的。
link |
21:16.200
怎麼看它是不是合理的呢?你就先把API的指令拿掉,然後把這個句子丟到文字生成的模型裡面,可能有一個現成的文字生成模型,比如說GPT,然後看看接下來產生正確答案玉山的機率是多少。
link |
21:34.200
接下來,如果有給呼喚API的指令,那這個呼喚API的指令呼喚完以後,它可能就給你玉山這個詞彙,那就放在這個句子的後面,然後再看接下來產生玉山的機率,那可能就達陣。
link |
21:50.200
所以如果今天加上這個呼喚API的指令對於文字生成、生成正確答案有幫助的話,那就把這個句子留下來當作訓練資料。接下來就結束了,你有訓練資料,機器就根據這些有呼喚API的句子來進行訓練,期待它就會在適當的時機產生這個腳花號,然後就可以呼喚API。
link |
22:18.200
接下來我們就來看一下Torformer的結果吧,它試了三個不同的data set,LAMA你就想成是一個問答的資料集,然後這邊有寫一些數學題,然後還有另外一個問答的benchmark。
link |
22:32.200
橫軸是模型的大小,他們試了不同大小的模型,虛線是GPT-3的結果。他們這邊做了一個有趣的、比較嚴謹的實驗是這個樣子的。
link |
22:43.200
藍線代表可以呼喚API,橙線代表什麼?橙線代表是在訓練的時候有教它呼喚API,但是實際上在測試的時候不准呼喚API。
link |
22:58.200
為什麼要這個實驗?因為你想想看,Torformer不是有拿額外的資料來教機器做文字接龍嗎?如果今天它結果比較好,有沒有可能跟呼喚API沒什麼關係?單純就是加了比較多的資料。
link |
23:13.200
所以它今天在比較的時候要比較可以呼喚API的Torformer跟雖然訓練的時候有拿那些呼喚API的資料來訓練它,但測試的時候不准它呼喚API,它要產生呼喚API指令的時候就沒回傳東西給它,看看會發生什麼事情。
link |
23:31.200
結果是這樣,沒有呼喚API當然結果就不會太好,代表說今天不是因為用了更多的資料來訓練,所以Torformer結果好的。
link |
23:41.200
另外一個發現是,如果模型太小,它學不會用工具。你會發現說,當模型小的時候,有沒有呼喚API其實結果差不多,代表說模型不夠大,你其實也學不會用工具。
link |
23:54.200
但是模型夠大,有沒有用工具的差異就可以明顯展現釋出來了,而且在一些資料集上,Torformer雖然它不是很大,它才6000個million的參數,遠比GPT-3小,但是它是有機會的,它有工具啊,它有輔助啊,所以可以打爆GPT-3沒有輔助的語言模型。
link |
24:16.200
以上就是跟大家介紹能夠使用工具的AI,Newbit,WebGPT,還有Torformer。