back to index

【生成式AI】GPT-4 來了! GPT-4 這次有什麼神奇的能力呢?


link |
00:00.000
我們來講這個GPT-4,大家都知道說GPT-4之前就一直有各式各樣的謠言說GPT-4要來了,現在它真的來了,那我們來看看GPT-4有什麼樣特別的地方吧。
link |
00:16.000
這是GPT-4的Technical Report,將近一百頁,論文的連結就放在這邊。GPT-4一開始沒有列作者有誰,它只說作者就是OpenAI。
link |
00:32.000
裡面有誰呢?哇靠,作者群長達三頁啊!你可以了解說今天要做這麼大的Project,動用的人力跟資源真的是不可思議,作者群長達三頁。
link |
00:47.000
我們對於GPT-4有什麼已知的事情呢?基本上就是一無所知啊,它提供的技術的細節就只有這樣子而已,其他都是展現它有多屌。
link |
01:02.000
它裡面就是告訴我們說,反正就是個Transformer Style的Model,還不說一定是Transformer,它說Transformer Style。然後它Portrait的時候會Predict Next Token,用了一些Public Available的Data,比如說網路上的Data。
link |
01:21.000
也用了一些從第三方那邊取得授權的Data,然後訓練的時候有用Reinforcement Learning from Human Feedback,RLHF這個縮寫,今天大家都很熟悉了。
link |
01:33.000
其他就是不爽告訴你就這樣,沒了!沒了!就只知道這麼多事情而已。當然從論文上看起來,GPT-4跟原來的Chair-GPT或GPT-3.5比起來有很多很厲害的地方。
link |
01:52.000
第一個最厲害的地方就是GPT看得見了,然後你可以去看這個GPT-4 OpenAI的Blog裡面有很多有趣的Demo,我這邊只是舉其中一個Demo。
link |
02:05.000
這個Demo就是給GPT看一個梗圖,然後問說解釋這個梗圖好笑在哪裡,而且這邊有個重點,它說Finger Power Step by Step,這就是我們講過的Chain of Thought,告訴它要Chain of Thought,慢慢想這個梗圖到底好笑在哪裡。
link |
02:26.000
然後接下來它確實就會開始講說,這個梗圖就是在講Deep Learning跟一般的Statistical Machine Learning的差異,然後這個梗圖其實在講說這個是Statistical Machine Learning的專家,常常會告訴你說很容易Overfitting,怎樣怎樣。
link |
02:45.000
這是做Deep Learning的,就是說反正就是疊比較多層,就結束了,就這樣,這個就是這個梗圖。事實上,GPT可以輸入影像這個功能目前應該是沒有開放,所以我並沒有做任何的測試,也找不到地方可以測試。
link |
03:04.000
但是講到GPT沒辦法讀圖片這件事情,我倒是想到過去有一個謠言,有人說GPT其實可以讀圖片連結,確GPT其實可以讀圖片連結,這是真的嗎?
link |
03:20.000
比如說你可以做這樣子的一個實驗,你給他一張圖片的連結,這個圖片是man.png,問他你看到什麼,他說根據圖片,我看到的是一個人的手拿著一個物體,該物體似乎是一個手槍,手槍看起來比較老舊,可能是一個經典的手槍。
link |
03:36.000
難道他真的去讀了這張圖片,難道確GPT過去其實就已經有GPT4的功能,他可以讀圖片嗎?大家要不要想一想,為什麼他可以讀這張圖片?
link |
03:52.000
有同學說他看到man.png就給我一個回應,我比較同意他看到man.png就會給一個回應,為什麼呢?因為這張圖片根本就不存在啊,這是一個我隨便亂打的網址。
link |
04:08.000
而且我發現,你只要換了這個圖片的名字,比如說把man.png改成girl.png,他就改成說,我看到了一個穿校服的女孩子,女孩子的頭髮很長,披在肩上,她的臉朝向觀察者,眼睛很大,嘴巴微微張開,似乎正在微笑著說話。
link |
04:28.000
我想說,你怎麼看得到那麼多東西?根本就沒有這張圖片。GPT4跟GPT3.5都去參加了一系列的考試。GPT3.5得到的分數,其實這邊不是用分數來算,這邊是看你在所有考生裡面排名的百分比。
link |
04:48.000
這個縱軸是在不同考試裡面,所有考生裡面排行的百分比。藍色是GPT3.5的結果,我們就可以把它想成缺GPT。GPT4有兩個版本,一個是有讀圖的,一個是沒有讀圖的,基本上都可以屌打GPT3.5。
link |
05:08.000
沒有讀圖跟讀圖是什麼樣的差別呢?因為很多考試裡面是有配圖的,沒有讀圖的意思就是沒把那些圖給GPT4,有讀圖的就是有把圖給GPT4,當然可以得到比較好的結果。
link |
05:23.000
進步最多的看起來是這個,就我所知好像是律師考試吧,原來GPT3.5在律師考試裡面只能夠排最後10%,GPT4在律師考試裡面可以排前10%,感覺還蠻猛的。
link |
05:42.000
另外有一個進步很多的看起來是微積分,最後這個是微積分,GPT3.5幾乎沒辦法回答任何問題,GPT4還在考生裡面可以排個前60%,感覺還蠻厲害的。
link |
05:58.000
那我就試著問GPT4那個雞兔銅龍的問題,你還記得我們上週問的雞兔銅龍的問題嗎?但我有說,如果只有雞跟兔,你是考不到雀GPT的,更考不到雀GPT4,所以你要問他三隻動物,看看三隻動物他能不能夠得到正確的答案。
link |
06:18.000
看起來就還是不行啦,列完式子以後最後還是算錯了。但是我發現GPT4有一個跟雀GPT蠻不一樣的地方,就是我覺得GPT4的答案變得比較固定。
link |
06:32.000
我就讓GPT4做同樣的題目做三次,第一次他列出三個式子,然後開始解,可惜最後解錯了,但是式子是對的。然後第二次再做一次一樣的題目,這是他列的式子。
link |
06:48.000
你發現第一次列式跟第二次列式根本就是87%像,唯一不一樣的地方只是他可以直接把雞、鴨、兔就當作是未知數來直接進行運算。
link |
07:02.000
再做一次,得到的結果是這樣,也是87%像,只是沒有把1、2、3列出來而已。所以我發現說,現在看起來GPT4也許他的多樣性沒有那麼多了,也許他是收斂到一個更標準、更固定的答案。
link |
07:20.000
如果你比較確GPT的話,一模一樣的問題,這是第一次問他的時候列的式子,第二次問他列的式子,第三次問他列的式子,你發現三次的答案其實都蠻不一樣的。
link |
07:33.000
確GPT他看起來輸出多樣性是比較多的,然後GPT4好像多樣性是稍微少一點,也許是因為這樣所以他才能夠得到更精確的答案吧,這只是個猜測,但是只有一個例子,也不好說他實際上變成什麼樣子。
link |
07:48.000
那GPT4另外一個標榜的神奇的能力就是他會更多語言了,尤其是會很多沒有那麼多人講的所謂的低資源的語言。
link |
08:01.000
在這一張投影片裡面,橫軸你就想成是正確率,他們的Benchmark Purpose叫做NNLU,大家有興趣在自己研究NNLU是什麼。如果隨機猜,在NNLU上面,你的正確率是25%。
link |
08:18.000
然後如果是Chinchilla,我們剛才有介紹過Chinchilla,就是一個小模型大資料的,67%的正確率,PALM結果更好,GPT3.5更好,但是確GPT才是最強的。
link |
08:29.000
接下來他們把這個Benchmark Purpose翻譯成各式各樣的語言,本來這個Purpose是只有英文版,他把它翻譯成各種語言去測試GPT4,然後發現GPT4在各種不同語言上也都有蠻高的正確率,包括一些可能沒有使用的那麼廣泛的語言。
link |
08:51.000
接下來我就想要知道說,那他能不能夠看得懂閩南語呢?給他台羅拼音啊,看看他能不能看得懂啊。
link |
09:02.000
我們就來看一下GPT4的解釋吧。這句話是用閩南語台語表達的,翻譯成中文是,做人不要翻臉,一世人不忘本。英文翻譯是,as a person, don't turn your back on others, never forget your roots throughout your life。
link |
09:21.000
倒是我們說,做人要有原則,不要隨便改變態度,要自己記得出身跟根本,尊重和感激過去,看起來還蠻像回事的。不過後來查了一下,這句話的意思其實就是,如果做人很懶惰的話,一世人不忘本,就是這樣,要告訴人要勤奮,所以意思跟GPT4講的還是不太一樣。
link |
09:41.000
但我想知道說,確GPT看不看得懂台羅拼音呢?我就直接把一樣的句子丟給確GPT,然後就說我很抱歉,我不知道你在說什麼,看起來你用的是一個不是拉丁語系的語言,看不太懂。
link |
10:00.000
但是我在想說,假設我換一個問法,強制告訴他說這就是台羅拼音,我發現他居然看懂了。確GPT其實也看得懂台羅拼音,只是你要告訴他說這是台羅拼音。
link |
10:13.000
他講的是什麼?他說這句話的意思是,做人要平等,一世人要情善,一世人就是系狼的意思。意思就是,做人應當要平等,與一起四個人相處,要友好相待。這個就是實測一下確GPT跟GPT4的台語能力。
link |
10:35.000
我們剛才不是看到這個奇妙的大模型反而會答錯的問題嗎?這個就是問你說某一個賭局合不合算的問題。
link |
10:45.000
過去在這些比較小的模型一直到GPT3.5,對於這個題型都是越做越差的,但是到GPT4終於反轉了,它在這個變態的題型上可以達到將近100%的正確率。GPT4不會被這個題型裡面奇怪的敘述所欺騙,它不會一知半解吃大虧,它可以得到正確的結果是比GPT3.5還要更強一點。
link |
11:14.000
另外,GPT4知道自己不知道嗎?我們在前一段課程裡面講了Calibration這個概念,機器在胡言亂語的時候,它是不是心裡有一點心虛呢?
link |
11:28.000
看起來GPT4蠻知道自己不知道的。在這個圖上面的橫軸是它回答問題的時候,它的答案的信心程度,縱軸是它回答出來的答案真正是正確的機率。
link |
11:44.000
你發現非常明顯,如果它信心很高,那它的答案就非常可能是正確的。如果它本身講的時候都很心虛,那答案就非常有可能是錯的。這邊同樣算了一個ECE的值,你可以想成就是這一條斜線跟這一個長條圖之間的差異。
link |
12:04.000
另外一個有趣的現象,其實這個過去也有論文已經有講過了,就是做完人類的feedback以後,看起來GPT4反而不知道自己不知道。
link |
12:15.000
這是做完RLHF,做完跟人類做reinforcement learning以後得到的calibration的結果。看起來跟人類做一下互動,從人類那邊學習以後,GPT4反而失去了calibration的能力,這是一個小發現。
link |
12:35.000
接下來就是最關鍵的,怎麼輸入影像呢?這個部分所知也是幾乎沒有講它是怎麼輸入影像的,只知道說它可以輸入用任意方式排列的影像跟文字。
link |
12:54.000
我猜測說它的影像不一定要出現在整個輸入的最前面或最後面,在中間也可以,甚至搞不好可以輸入不只一張圖片也說不定。
link |
13:06.000
但是要怎麼讓一個language model可以讀一張圖片呢?這邊有幾個可能的不負責任的猜想。
link |
13:15.000
有什麼樣的方法把一張圖片可以讓語言模型看得懂呢?其實我覺得有一些非常簡單的方法。舉例來說,直接做一個caption generation。
link |
13:26.000
其實有很多現存的caption generation的model,這種caption generation的model就是給它一張圖,然後它就會開始敘述它在圖上看到什麼。
link |
13:35.000
比如說給它這張圖,也許它就可以描述說看到兩個人,然後他們前面都有個黑板等等等等之類的。或者是另外一個可能是,也許需要搭配OCR,光學文字檢測。
link |
13:49.000
也許需要透過光學文字檢測才可以看出這張圖片裡面有什麼樣的文字。當然還有其他的方法。
link |
13:57.000
舉例來說,把這張圖片丟給一個image的encoder,讓它輸出representation。輸出representation又有兩種可能性。
link |
14:06.000
第一種可能性是一整張圖片就指出一個向量,一整張圖片用一個向量來表示。比如說clip這個模型,它裡面就有一個image的encoder,給它一張圖片輸出一個向量。
link |
14:19.000
當然也可以用一堆向量來表示這張圖片,你可以把這張圖片切成一個一個小塊,每一個小塊用一個向量來表示。
link |
14:29.000
那你可能會問說,那前面兩個輸出,我們都很容易理解怎麼把它丟到語言模型裡面。
link |
14:37.000
因為語言模型本來就是吃文字的啊,那如果你可以把影像轉成文字,語言模型直接吃進去就結束了。
link |
14:45.000
但是如果今天我們是把影像表示成向量的話,一個語言模型是怎麼把向量讀進去的呢?
link |
14:55.000
這邊又有兩個不同的方式,第一個方式是把這些向量做quantization,把這些向量做離散化。
link |
15:05.000
然後每一個離散後的code用一個符號來表示它,就把影像當作是一種全新的語言,它用的是過去人類語言所沒有的全新的符號。
link |
15:19.000
這是一個可能性,其實在文獻上也有看過這樣的做法。
link |
15:23.000
另外一個更有可能的方法也許就是仿造Microsoft的Cosmo,其實我會覺得在這些方法裡面,如果你想要猜測說GPT-4實際上用的是什麼方法,
link |
15:38.000
那我其實會賭說應該就是跟Cosmo比較類似吧,那我們今天其實就沒有打算要講Cosmo,也許我們之後有時間我們再來講Cosmo是怎麼做的。
link |
15:51.000
那裡面就會告訴你說怎麼把圖片變成embedded,變成向量,而一個language model是怎麼把向量讀進去的。
link |
16:01.000
如果你想知道細節,你可以看這個language is not all you need,aligning perception with language model,這是Microsoft在非常最近,應該是幾週前才釋出的論文。