在文章開始前,有個小任務需要你幫我完成!
那就是追蹤我的 FB、IG 和我的 threads 以及加入我的會員。加入會員不用錢。
文章看完以後,如果你喜歡今天的內容按讚跟留言讓我知道,這將是我持續創作的動力。
你可能已經用 ChatGPT、Claude、Gemini 好一陣子了。你問它們問題,它們回答。有時候很準,有時候答非所問,有時候聽起來很有道理但仔細想根本在亂講。
但你曾想過一個問題嗎:
這些東西到底是怎麼學會的?
在講 LLM 怎麼訓練之前,我們先來搞懂機器學習跟傳統程式有什麼不一樣。
傳統程式是這樣的:你寫規則,電腦照做。如果你告訴電腦「當溫度超過 30 度就顯示很熱」,它就會乖乖照做。
但問題來了:如果你要寫一個程式來判斷一張照片裡面有沒有貓,你怎麼寫?你要寫說「這張照片座標 (x,y) 的地方顏色是 #FFFFFF 嗎」?不可能。貓有無限多種姿態、顏色、光影。這種組合可能有上千萬種,甚至更多,工程師根本寫不出來。
所以我們換了一個思考方向:
我們不給規則,我們給經驗。
我們告訴機器:「這一萬張圖是貓,這一萬張圖不是,你自己去歸納。」機器看完之後,下次看到一張新照片,它就能判斷裡面有沒有貓。
這就是機器學習的本質。
LLM 的訓練
現在的 LLM 訓練流程大致分三段。
第一階段:預訓練
這個階段的目標非常單純,就是讓模型學會文字接龍。
做法很暴力:把網路上能找的文字全部丟進去:書籍、論文、維基百科、Reddit 討論串、GitHub 程式碼。然後讓它反覆做同一件事:
給你前半段句子,猜下一個字。
比如給它「我今天中午吃」,它要猜下一個字是「飽了」還是「飯」還是「什麼」。猜錯了就調整參數,猜對了就記住。就這樣重複幾百億次。
你可能會想:這方法聽起來也太笨了吧?但結果就是它在這過程中不知不覺把文法、詞彙搭配、語境全學起來了。它知道「法蘭克福」通常接「機場」不接「游泳池」,不是因為查過百科,而是從幾百億次接龍裡歸納出來的。
但這個階段的模型有個問題:它會接話,但不會回答問題。就像一個讀完整個圖書館的人:你問它「台中哪裡有燒肉」,它會繼續把這句話接完,而不是像正常人一樣回答你。因為它學的是接龍,不是對話。
第二階段:監督式微調(SFT)
所以第二階段要解決這個問題:讓模型學會人類的對話方式。
做法是找人寫一大堆問答範例:
問:台中哪裡有推薦的燒肉?
答:推薦屋馬燒肉,公益路上的那間評價很高。
模型看了幾萬組這種配對之後,慢慢學會一件事:人類用問句跟它說話時,它應該給一個有用的回答,而不是繼續預測下一個字。
這階段的資料量比第一階段少很多(幾萬筆而已),但品質要求極高。因為這些範例直接決定了模型以後回答問題的風格跟態度。如果這階段餵它廢文,它以後回答就是廢文。
第三階段:RLHF
前兩階段結束後,模型已經能回答問題了,但品質不穩定:有時候正確但很囉嗦,有時候答非所問,有時候看起來合理其實是錯的。
第三階段換了一個做法:不讓模型猜字了,改讓真人對它的輸出打分數。
流程是這樣:
- 同一個問題,讓模型產生好幾個不同版本的答案
- 真人把這些答案排序:A 比 B 好,B 比 C 好
- 用這些排序資料訓練一個評分員,專門判斷哪個回答比較好
- 用這個評分員去引導模型,讓它傾向產生高分答案
這一步的效果非常明顯。同樣的模型參數,有做 RLHF 和沒做的回答品質差很多,前者更簡潔、更準確、更像你想要的回答。
ChatGPT 在 2022 年爆紅的其中一個關鍵,就是第一個在大規模產品中把 RLHF 做好。
你可能想問
LLM 有記憶嗎?它會不會記得我看過的每一篇文章?
不會。這是最多人誤解的一點。LLM 的參數在訓練完成後就固定了,它沒有把原始文章存起來,而是把歸納出來的特徵壓進參數裡。
這也是為什麼 LLM 會產生幻覺。它不是去資料庫翻答案,而是根據學過的模式去猜一個最合理的回答。當學到的模式不完整的時候,它就理直氣壯地亂講。
訓練一個 LLM 要花多少錢?
GPT-4 等級的預訓練需要數千張 GPU 跑好幾週,成本幾百萬到上千萬美元。後面兩個階段便宜很多,但 RLHF 需要大量人工標註,有時候人力成本比算力還高。
所以下次有人問「為什麼 ChatGPT 不免費」?不是 OpenAI 很小氣,是背後的訓練成本(電力、算力跟評分成本)真的很高。
結語
- 預訓練 = 讀了很多書
- SFT = 學會怎麼跟人對話
- RLHF = 學會在不同場合講最得體的話
你不會讓一個只讀過書但沒跟人講過話的人去主持會議。LLM 也是一樣的道理。
延伸學習:LLM














