說明:
這文章其實也是李宏毅老師 2023 年機器學習課程的個人一些學習整理,李老師上課的內容&口吻很精彩,很建議大家直接看李老師的課程影片:
完整的所有課程在這裏
ChatGPT 是什麼
ChatGPT 是一個 底層使用 GPT 技術的(文字接龍)對話機器人,它可以讓你使用你熟悉的自然語言來與它互動,例如,你可以直接請它來幫你規劃你的課程大綱。
它甚至可以知道和你對話的前後文來與你對話。
ChatGPT 不是什麼
因為這麽神奇的功能,所以最近各路人馬都對它有各種的想像,例如,它這麽會回答問題,是不是被裝了很多的罐頭文?
不過其實不是! 你實際要它說幾個笑話給你,你會發現有很多的笑話的笑點根本不是正常人的笑點。
又,這樣 ChatGPT 回答你的,是不是網路上搜尋後的回覆?
也不是! ChatGPT的答案不是從網路上搜尋而來的,它其實是一個經過使用大量網路語料訓練後的大型語言模型。
ChatGPT 的原理
基本上 ChatGPT就是一個大型的語言模型,而它做的事情其實就是文字接龍。
文字接龍是什麼意思?
例如,你詢問它【什麼是機器學習?】它就會透過它的語言模型來判斷接下來的字有哪些,以及每個字的正確機率是多少,然後再經過某種判斷機制選擇最有可能的字來回覆你。
ChatGPT 的關鍵技術
ChatGPT 裏面的 GPT 就是 Generative Pre-trained Transformer 的縮寫。
而 ChatGPT 的關鍵技術,Pre-trained,又叫做自監督式學習(Self-supervised Learning),也因為對於一般大眾比較好理解,所以也常被稱為基石模型(Foundation Model)
那 ChatGPT 那文字接龍的能力是怎麼被訓練出來的呢?
ChatGPT 成體的運作機制,簡單來說,我們可以將它想像成一個就像數學函數的大黑盒。當使用者跟 ChatGPT 對話時,就像我們把對話內容輸入給這個黑盒,這黑盒子就挑選最有可能的字,然後一一(吐出)回覆。
而這個神奇的函數,則是由大量的網路資料以及人類指導老師來訓練並且調教出來的。
所謂的由大量的網路資料來訓練是什麼意思呢?我們使用傳統英翻中的機器學習為例:
傳統的機器學習需要蒐集大量成對的中英文成對例句來餵給機器,讓機器自己尋找那個可能的函式,當機器透過這樣的學習後,例如它已經學會了:
I = 我, You = 你, apple = 蘋果, orange = 橘子
然後我們將【You eat an apple】輸入到機器,機器則會回覆【你吃蘋果】給我們
但是使用這種方式,需要準備大量的資料,所以在人力有限的狀況下,我們用這種方式來窮舉所有人們可能詢問的問題簡直是不可能的。
所以就有了自督導式學習(Self-supervised Learning)這種方式來幫我們無痛製造成對資料。
使用自督導式學習,網路上的每一段文字都可以自動化來拆解成前後兩段文字來訓練機器做文字接龍,例如
世界第一高峰是喜馬拉雅山,可拆解為【世界第一高峰是】【喜馬拉雅山】
今天天氣真好,我要出去玩,可拆解為【今天天氣真好】【,我要出去玩】
上面第二句的拆解不是筆誤,常常使用 ChatGPT 的朋友有時會發現它的回答為什麼開頭第一個字是逗點?
其實就是因為這樣預訓練的原因。
大型語言模型
而這樣的訓練方式要訓練成 ChatGPT 到底需要多少資料呢? 其實在 ChatGPT 之前,GTP 已經有很多代的演進。從2018年的第一代 GPT,模型參數數量為117M 個,資料量只有 1GB。GPT-2 的1542M 個模型參數到 GPT-3 的 175B 個模型參數, 570GB 的資料量,這差異性到底是有多大? 我們直接按照比例放大給大家看:
這是 GPT VS GPT-2,GTP-2 與 GTP 相比,模型參數量與資料量夠大吧!?
GTP-2 VS GTP-3 的比例更驚人! GTP-3 訓練的資料量換算成哈利波特全集的話,大概是閱讀哈利波特全集 30 萬遍這麽多。
而且 GTP-3 這 570GB 資料量,還是所有 45T 的網絡資料優化篩選出來的,最精華的 570GB。
然而,GPT 在經過這麽大量資料以及這麽多參數的學習後,它在問答功能上的成效如何呢?
上圖是 GTP-2 模型與其他模型/人類的比較,縱軸上的 F1 大家可以簡單把它看作正確率。
從這圖表可以看出,GTP-2 與一些其他模型比較,的確還不錯,可以證明只是簡單從網路上的資料訓練出來的語言模型,已經可以勝過例如 PGNet, DrQA 這類模型了。只是當然跟人類的正確率相比,GTP-2 的正確性還是很不堪入目。
那 GTP-3 呢?
上圖是從 GTP-3 的論文截取出來的圖表, GTP-3 選擇出來 42 類問題來做問答正確率的分析圖表,橫軸上代表的參數數量,可以看出來,參數量越大,模型的正確性的確越高,但是大家可以看出即使連 GTP-3 這麽大的模型,似乎它的正確性也比亂猜(50%)好一點而已。所以當初甚至也有一些人看衰大型語言模型,它即使使用了這麽大的運算資源做訓練,好像也是白做工。
不過也多虧有人不灰心繼續進化,所以最後也才有了,最近驚呆了全世界的 ChatGTP(GTP 3.5)的出現,至於 ChatGTP 的訓練還有什麼其他的關鍵技術?
我們下回再跟大家介紹~
很感謝李宏毅老師無私的分享以及同意使用。