這是一張看起來蠻驚悚的圖片,卻是 ChatGPT 的成長之旅,以下就讓我們來講講 ChatGPT 運作原理的基本知識。
1. 無監督學習(unsupervised learning) - 自己亂讀書
一開始,ChatGPT 採用的是預先訓練的語言模型 GPT-3.5,GPT-3.5 訓練的方式,就是在給非常少量先備知識下,一遍又一遍讓它自己在非常大量的文字內容中自問自答,在餵了大量文字數據後語言模型就會非常擅長預測下一個詞。
這種方法稱之為無監督學習(unsupervised learning),因為這些大量的文字資料(可能來自於網路上、書本、論壇、個人部落格等等),都是屬於『雜亂的原始資料』,這些資料並沒有經過結構化處理(資料結構化就是指把資料整理成有規則、組織的方式,常見的 excel 就是一種資料結構化的方法)。
無監督學習白話來說,就像是一個沒有老師的學生,他只能自己看書本,然後試著理解書本上的內容。但是他沒有辦法知道自己理解得對不對,也沒有辦法知道自己學得好不好。
他可能會看到書本上沒有的東西、或是錯過書本上有的東西。他也可能會發現自己的書本和別人的書本不一樣,或者自己的書本和考試的題目不一樣,這些都會影響他的學習效果,所以部分場景下無監督學習的效果才會不佳。
為了讓訓練方式更有效,微調(fine-tuning)這個方法出現了。
2. 監督式微調(supervised fine-tuning) - 選擇題對答案
為了確保這個學生能正確學習,我們需要透過微調(fine-tuning)來教會這個學生。而微調就是規定多組『輸入-輸出』配對的資料,讓機器可以快速理解學習。
以識別圖片為例,要讓 ChatGPT 學會辨識圖片動物,我們就將每張照片貼上對應的標籤,像是:
A 圖 - 柴犬
B 圖 - 波斯貓
C 圖 - 哈士奇
又或者要請 ChatGPT 學會翻譯時,給它:
蘋果 - apple
書 - book
火山矽肺症 - Pneumonoultramicroscopicsilicovolcanoconiosis
這樣 ChatGPT 就能在大量閱讀對應資料的情況下,有更好的學習狀況。就像學生寫了大量的選擇題後,越來越抓的到問題對應的答案。
監督式微調(supervised fine-tuning)的概念就是,在大量的數據中,挑選大量具有代表性的資料集,並且手動標註每筆資料集的輸入和輸出結果,讓模型可以從這些資料中進行微調,以達到更好的預測效果。
ChatGPT 的學習採用了這種方法,藉由拿採用無監督學習訓練好的 GPT-3.5 模型, 後續再透過少量精選資料進行監督式微調,讓 ChatGPT 可以更好地理解並預測人類語言的使用方式。
3. 基於人類回饋的強化學習(RLHF) - 老師跟你說哪個答案更好
Reinforcement Learning from Human Feedback 簡稱 RLHF。在微調之後,模型就會有一定的成效,但是距離完美可能還會有落差,這時候就需要靠大量的人來告訴 ChatGPT 『哪些答案是人類喜歡的』、『哪些答案是人類不喜歡的』。
舉例來說,今天 ChatGPT 已經學會了如何預測下一個詞,當你問他『今天晚餐吃什麼?』時,請他列出 4 個選項:
(A)吃屎吧
(B)吃鱔魚意麵
(C)不知道耶
(D)要不要跟我說說你喜歡吃麵還是飯,我再跟你推薦
這時候人類就會將答案進行排序,(D)>(B)>(C)>(A)。
這邊就像是學生在寫應用題,一次請學生寫下多個答案,並由大量的老師來對答案進行排序。
在大量的人告訴 ChatGPT 人所偏好的答案後,ChatGPT 就學會了『如何迎合人類喜好』這件事,不知道大家有沒有注意到,每次答案右邊都會有個讚以及倒讚,這也是一種 RLHF 方法。
▎總結
希望透過白話文的方式,讓大家快速理解 ChatGPT 的原理及訓練過程,光看我所寫內容可能還稍微模糊,這邊也推薦一些非常棒的資料能讓大家更深入理解 ChatGPT。
推薦資料:
GPT 社會化的過程
詳解 ChatGPT 是怎麼變「聰明」
口氣搞清楚ChatGPT
圖片來源: https://stratechery.com/2023/from-bing-to-sydney-search-as-distraction-sentient-ai/
讚