今天開始會從零分享關於大型語言模型 (Large Language Model, LLM) 的相關知識,雖然大型語言模型不外乎就是 Open API 的 ChatGPT 系列及 Gemini 系列,但深度探索,它會叫大型語言模型其實是因為它在當初訓練時是由大量的語塊資料訓練出來。就像我們讀書吸收知識,大型語言模型也是透過這樣的方式去訓練出來。
機器怎麼「讀書」?
差別在於,人類讀書是為了理解意義,機器「讀」的方式其實非常單純:它在做的事情,說穿了就是不斷練習「猜下一個字」。
舉例來說,如果給模型看到「今天天氣很」,它會根據看過的大量文章,去計算接下來最有可能出現的字是「好」、「熱」還是「差」,然後給每一種可能性一個機率分數,選出機率最高的字接下去。這個過程不斷重複,一個字接著一個字,就變成了一整句、一整段看起來通順又合理的文字。
為什麼「大型」這兩個字很重要? 因為資料和參數量都很大。
資料量大:訓練用的文本涵蓋書籍、網頁、論文、程式碼等,數量以兆(trillion)級別的文字單位(token)計算。
參數量大:模型內部用來儲存「語言規律」的參數,動輒數十億到數千億個,可以想像成大腦裡的神經連結,數量越多,能捕捉的語言細節與知識就越豐富。
大型語言模型的養成,大致可以分成兩個階段:
預訓練(Pre-training)
預訓練(Pre-training) 這是「大量讀書」的階段,模型會不斷閱讀網路上蒐集來的文字,練習預測下一個字,藉此學會文法、常識、邏輯關係,甚至一部分的世界知識。這個階段完全不需要人工標註答案,模型是從文字本身的規律中自我學習。
對齊與微調(Alignment / Fine-tune)
對齊與微調(Alignment / Fine-tune) 只會「接龍」的模型還不能直接拿來當助理,因為它不見得知道怎麼回答問題、怎麼拒絕不當請求。這個階段會透過人類標註的問答範例,以及人類回饋強化學習(RLHF)等技術,讓模型學會「像在對話」,並且更貼近人類期待的回答方式。
至於人類回饋強化學習(RLHF)是讓語言模型從「會接龍」進化成「像在對話」的關鍵技術。大致可以拆成三個步驟:
收集人類偏好資料
針對同一個問題,讓模型產生好幾個不同的回答,再請標註員依照「有幫助、正確、安全」等標準,把這些回答排出好壞順序(例如 A 比 B 好、B 比 C 好)。
訓練「獎勵模型」(Reward Model)
用上一步收集到的排序資料,訓練出另一個模型,專門用來幫任何一段回答「打分數」——分數越高,代表越符合人類偏好。這個獎勵模型等於是把人類的喜好,轉換成一個機器可以理解、可以計算的分數標準。
用強化學習微調原本的語言模型
讓語言模型繼續產生回答,再由獎勵模型即時給分,接著用強化學習演算法(常見的像是 PPO)去調整模型參數,讓它朝著「能拿到更高分數」的方向持續優化,也就是越來越常產出人類覺得好的回答。
我們平常使用的 ChatGPT、Gemini,其實都是經過這兩個階段訓練後的成品。
為什麼它「看起來」很聰明?
訓練資料量夠大、參數夠多,模型在「猜下一個字」這件事情上,準確度高到足以模擬出邏輯推理、摘要整理、甚至寫程式碼的能力。但要特別提醒的是,它本質上仍然是根據機率在生成文字,並不是真的「理解」內容,這也是為什麼它偶爾會一本正經地講錯話(也就是常聽到的「幻覺」現象)。
理解了「為什麼叫大型語言模型」之後,接下來我會依序分享: